From 81c3796b260edc0eba9cb697d562031c2f0ca48f Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 3 Jun 2022 13:42:29 +0500 Subject: [PATCH 01/52] . --- package-lock.json | 17312 +------------------------------------------- 1 file changed, 43 insertions(+), 17269 deletions(-) diff --git a/package-lock.json b/package-lock.json index 930972111..bd480e4c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17210 +1,8 @@ { "name": "openapi-typescript-codegen", - "version": "0.22.0", - "lockfileVersion": 2, + "version": "0.23.0", + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "openapi-typescript-codegen", - "version": "0.22.0", - "license": "MIT", - "dependencies": { - "camelcase": "^6.3.0", - "commander": "^9.3.0", - "fs-extra": "^10.1.0", - "handlebars": "^4.7.7", - "json-schema-ref-parser": "^9.0.9" - }, - "bin": { - "openapi": "bin/index.js" - }, - "devDependencies": { - "@angular-devkit/build-angular": "13.3.7", - "@angular/animations": "13.3.10", - "@angular/cli": "13.3.7", - "@angular/common": "13.3.10", - "@angular/compiler": "13.3.10", - "@angular/compiler-cli": "13.3.10", - "@angular/core": "13.3.10", - "@angular/forms": "13.3.10", - "@angular/platform-browser": "13.3.10", - "@angular/platform-browser-dynamic": "13.3.10", - "@angular/router": "13.3.10", - "@babel/cli": "7.17.10", - "@babel/core": "7.18.2", - "@babel/preset-env": "7.18.2", - "@babel/preset-typescript": "7.17.12", - "@rollup/plugin-commonjs": "22.0.0", - "@rollup/plugin-node-resolve": "13.3.0", - "@rollup/plugin-typescript": "8.3.2", - "@types/cross-spawn": "6.0.2", - "@types/express": "4.17.13", - "@types/fs-extra": "^9.0.13", - "@types/glob": "7.2.0", - "@types/jest": "27.5.1", - "@types/node": "17.0.38", - "@types/node-fetch": "2.6.1", - "@types/qs": "6.9.7", - "@typescript-eslint/eslint-plugin": "5.27.0", - "@typescript-eslint/parser": "5.27.0", - "abort-controller": "3.0.0", - "axios": "0.27.2", - "codecov": "3.8.3", - "cross-spawn": "7.0.3", - "eslint": "8.16.0", - "eslint-config-prettier": "8.5.0", - "eslint-plugin-prettier": "4.0.0", - "eslint-plugin-simple-import-sort": "7.0.0", - "express": "4.18.1", - "form-data": "4.0.0", - "glob": "8.0.3", - "jest": "28.1.0", - "jest-cli": "28.1.0", - "node-fetch": "2.6.7", - "prettier": "2.6.2", - "puppeteer": "14.1.2", - "qs": "6.10.3", - "rimraf": "3.0.2", - "rollup": "2.75.4", - "rollup-plugin-terser": "7.0.2", - "rxjs": "7.5.5", - "ts-node": "10.8.0", - "tslib": "2.4.0", - "typescript": "4.6.4", - "zone.js": "0.11.5" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@angular-devkit/architect": { - "version": "0.1303.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.7.tgz", - "integrity": "sha512-xr35v7AuJygRdiaFhgoBSLN2ZMUri8x8Qx9jkmCkD3WLKz33TSFyAyqwdNNmOO9riK8ePXMH/QcSv0wY12pFBw==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "13.3.7", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/build-angular": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.7.tgz", - "integrity": "sha512-XUmiq/3zpuna+r0UOqNSvA9kEcPwsLblEmNLUYyZXL9v/aGWUHOSH0nhGVrNRrSud4ryklEnxfkxkxlZlT4mjQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1303.7", - "@angular-devkit/build-webpack": "0.1303.7", - "@angular-devkit/core": "13.3.7", - "@babel/core": "7.16.12", - "@babel/generator": "7.16.8", - "@babel/helper-annotate-as-pure": "7.16.7", - "@babel/plugin-proposal-async-generator-functions": "7.16.8", - "@babel/plugin-transform-async-to-generator": "7.16.8", - "@babel/plugin-transform-runtime": "7.16.10", - "@babel/preset-env": "7.16.11", - "@babel/runtime": "7.16.7", - "@babel/template": "7.16.7", - "@discoveryjs/json-ext": "0.5.6", - "@ngtools/webpack": "13.3.7", - "ansi-colors": "4.1.1", - "babel-loader": "8.2.5", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "^4.9.1", - "cacache": "15.3.0", - "circular-dependency-plugin": "5.2.2", - "copy-webpack-plugin": "10.2.1", - "core-js": "3.20.3", - "critters": "0.0.16", - "css-loader": "6.5.1", - "esbuild-wasm": "0.14.22", - "glob": "7.2.0", - "https-proxy-agent": "5.0.0", - "inquirer": "8.2.0", - "jsonc-parser": "3.0.0", - "karma-source-map-support": "1.4.0", - "less": "4.1.2", - "less-loader": "10.2.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.0", - "mini-css-extract-plugin": "2.5.3", - "minimatch": "3.0.5", - "open": "8.4.0", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "6.0.1", - "piscina": "3.2.0", - "postcss": "8.4.5", - "postcss-import": "14.0.2", - "postcss-loader": "6.2.1", - "postcss-preset-env": "7.2.3", - "regenerator-runtime": "0.13.9", - "resolve-url-loader": "5.0.0", - "rxjs": "6.6.7", - "sass": "1.49.9", - "sass-loader": "12.4.0", - "semver": "7.3.5", - "source-map-loader": "3.0.1", - "source-map-support": "0.5.21", - "stylus": "0.56.0", - "stylus-loader": "6.2.0", - "terser": "5.11.0", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "tslib": "2.3.1", - "webpack": "5.70.0", - "webpack-dev-middleware": "5.3.0", - "webpack-dev-server": "4.7.3", - "webpack-merge": "5.8.0", - "webpack-subresource-integrity": "5.1.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "optionalDependencies": { - "esbuild": "0.14.22" - }, - "peerDependencies": { - "@angular/compiler-cli": "^13.0.0 || ^13.3.0-rc.0", - "@angular/localize": "^13.0.0 || ^13.3.0-rc.0", - "@angular/service-worker": "^13.0.0 || ^13.3.0-rc.0", - "karma": "^6.3.0", - "ng-packagr": "^13.0.0", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.4.3 <4.7" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "karma": { - "optional": true - }, - "ng-packagr": { - "optional": true - }, - "protractor": { - "optional": true - }, - "tailwindcss": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/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/@angular-devkit/build-angular/node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/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/@angular-devkit/build-angular/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1303.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.7.tgz", - "integrity": "sha512-5vF399cPdwuCbzbxS4yNGgChdAzEM0/By21P0uiqBcIe/Zxuz3IUPapjvcyhkAo5OTu+d7smY9eusLHqoq1WFQ==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1303.7", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/core": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.7.tgz", - "integrity": "sha512-Ucy4bJmlgCoBenuVeGMdtW9dE8+cD+guWCgqexsFIG21KJ/l0ShZEZ/dGC1XibzaIs1HbKiTr/T1MOjInCV1rA==", - "dev": true, - "dependencies": { - "ajv": "8.9.0", - "ajv-formats": "2.1.1", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.6.7", - "source-map": "0.7.3" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/schematics": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.7.tgz", - "integrity": "sha512-6TKpFMwiiXmPhiVdbkSJrkBXj8n7SVVhsHl2GodDLVTb8OT3fxYIB9EU8Il07AMfDcjpydOcJduCFPOsQYd7BA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "13.3.7", - "jsonc-parser": "3.0.0", - "magic-string": "0.25.7", - "ora": "5.4.1", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular/animations": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.3.10.tgz", - "integrity": "sha512-V/0h3xepWPBRjWroFXYrNIE3iZPREjv0hiB3gskF/2KLlx5jvpUWlaBx0rEYRa8XXIPJyAaKBGwWSBnT/Z88TQ==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/core": "13.3.10" - } - }, - "node_modules/@angular/cli": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.7.tgz", - "integrity": "sha512-XIp0w0YOwhHp4Je3npHAs0W4rjHvFnG2w/lDO2M/UNp5634S4PRMFmVVMt6DQBj1cbffYVKFqffqesyCqNuvAQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@angular-devkit/architect": "0.1303.7", - "@angular-devkit/core": "13.3.7", - "@angular-devkit/schematics": "13.3.7", - "@schematics/angular": "13.3.7", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "4.3.3", - "ini": "2.0.0", - "inquirer": "8.2.0", - "jsonc-parser": "3.0.0", - "npm-package-arg": "8.1.5", - "npm-pick-manifest": "6.1.1", - "open": "8.4.0", - "ora": "5.4.1", - "pacote": "12.0.3", - "resolve": "1.22.0", - "semver": "7.3.5", - "symbol-observable": "4.0.0", - "uuid": "8.3.2" - }, - "bin": { - "ng": "bin/ng.js" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/common": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.10.tgz", - "integrity": "sha512-KWw91QzmCDZ6uq1Z58v7vQQ57Ux7A2UkPdIBOyvpOgtQPTvlvKsePkUVCC+dum+W9mOy4kq2falO5T7Gi7SJgw==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/core": "13.3.10", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/compiler": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.3.10.tgz", - "integrity": "sha512-DEtdso89Q9lAGkSVpSf2GrMtGVTnCnenCwLhubYaeSaj4iA/CAnUfNlaYBf9E92ltuPd85Mg9bIJKaxYCRH8RQ==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - } - }, - "node_modules/@angular/compiler-cli": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.3.10.tgz", - "integrity": "sha512-cGFQyUOxOLVnehczdP4L7KXbKQTe/aQgbXmacQYgqcP/AnpJs7QfZbw1/k1wJtXrhzbGBh3JSWnpme74bnF3dQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.17.2", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.11.0", - "magic-string": "^0.26.0", - "reflect-metadata": "^0.1.2", - "semver": "^7.0.0", - "sourcemap-codec": "^1.4.8", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, - "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/main-ngcc.js" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/compiler": "13.3.10", - "typescript": ">=4.4.2 <4.7" - } - }, - "node_modules/@angular/compiler-cli/node_modules/magic-string": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", - "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular/core": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.10.tgz", - "integrity": "sha512-7jH1a5wZdE6Ki2Dow7s6v1/5SfUcXsjAu3n523QSDlM078QG0p95npcqPseO9mNftG9MfRqBE7sl1Nb+ZK7eBg==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4" - } - }, - "node_modules/@angular/forms": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.3.10.tgz", - "integrity": "sha512-2cREi8nvCdspYHk6KJ5xjIgq8Dgh/kfwPIVjpLQBZFNC03Q6GvOLVoVm8ye6ToOpQFjvjpjndqU93JXSLMANgA==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/common": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/platform-browser": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.10.tgz", - "integrity": "sha512-zi0FrA8zZRiHLBfKlfIxikG06wMF2KcSp6oqrIblrc1VrHgPRVRABz8vryH84lasDssjYdIS9AvbQnCCdgCzJA==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/animations": "13.3.10", - "@angular/common": "13.3.10", - "@angular/core": "13.3.10" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.10.tgz", - "integrity": "sha512-hygsEjTaS+VDUrBZZiRJFo5J7AHCS/EcAc1IWvb69EnVqA9RwqM4hWbuy3y/cmLEeHLLmRldIlS6xRPt8fTNQg==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/common": "13.3.10", - "@angular/compiler": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10" - } - }, - "node_modules/@angular/router": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.10.tgz", - "integrity": "sha512-neGaeiHravXlCbNbyGJecwQyu/91Pj/E9/ohVFzBBE4V9BrNx9v7Ntc4ugqgpnrV2wtonPP7TQDqXxrPk4QVfg==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/common": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser/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/@apidevtools/json-schema-ref-parser/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/@assemblyscript/loader": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", - "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", - "dev": true - }, - "node_modules/@babel/cli": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.17.10.tgz", - "integrity": "sha512-OygVO1M2J4yPMNOW9pb+I6kFGpQK77HmG44Oz3hg8xQIl5L/2zq+ZohwAdSaqYgVwM0SfmPHZHphH4wR8qzVYw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.8", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/cli/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@babel/cli/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/@babel/cli/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/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", - "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/core/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/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", - "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/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/@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", - "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/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/@babel/helper-environment-visitor": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", - "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", - "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", - "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", - "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", - "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", - "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", - "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", - "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", - "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", - "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", - "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", - "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", - "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", - "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", - "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", - "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", - "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "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-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", - "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "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-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-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "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.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", - "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", - "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", - "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", - "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-replace-supers": "^7.18.2", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", - "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", - "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", - "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", - "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", - "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", - "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", - "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.18.2", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz", - "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", - "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", - "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", - "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", - "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", - "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "regenerator-transform": "^0.15.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", - "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", - "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/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/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", - "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", - "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", - "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", - "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-typescript": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", - "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-async-generator-functions": "^7.17.12", - "@babel/plugin-proposal-class-properties": "^7.17.12", - "@babel/plugin-proposal-class-static-block": "^7.18.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.17.12", - "@babel/plugin-proposal-json-strings": "^7.17.12", - "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.18.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-private-methods": "^7.17.12", - "@babel/plugin-proposal-private-property-in-object": "^7.17.12", - "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.17.12", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.17.12", - "@babel/plugin-transform-async-to-generator": "^7.17.12", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.17.12", - "@babel/plugin-transform-classes": "^7.17.12", - "@babel/plugin-transform-computed-properties": "^7.17.12", - "@babel/plugin-transform-destructuring": "^7.18.0", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.17.12", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.18.1", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.17.12", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.18.0", - "@babel/plugin-transform-modules-commonjs": "^7.18.2", - "@babel/plugin-transform-modules-systemjs": "^7.18.0", - "@babel/plugin-transform-modules-umd": "^7.18.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", - "@babel/plugin-transform-new-target": "^7.17.12", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.17.12", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.18.0", - "@babel/plugin-transform-reserved-words": "^7.17.12", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.17.12", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.18.2", - "@babel/plugin-transform-typeof-symbol": "^7.17.12", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.2", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", - "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", - "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/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/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", - "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", - "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.18.0", - "@babel/types": "^7.18.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "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/@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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz", - "integrity": "sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3", - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "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" - } - }, - "node_modules/@eslint/eslintrc/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/@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.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "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/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/@eslint/eslintrc/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/@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/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "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", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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/@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": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.0.tgz", - "integrity": "sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.0", - "jest-util": "^28.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/core": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.0.tgz", - "integrity": "sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.0", - "@jest/reporters": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.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": "^28.0.2", - "jest-config": "^28.1.0", - "jest-haste-map": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.0", - "jest-resolve-dependencies": "^28.1.0", - "jest-runner": "^28.1.0", - "jest-runtime": "^28.1.0", - "jest-snapshot": "^28.1.0", - "jest-util": "^28.1.0", - "jest-validate": "^28.1.0", - "jest-watcher": "^28.1.0", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core/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/@jest/core/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/@jest/core/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/@jest/core/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/@jest/environment": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.0.tgz", - "integrity": "sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "jest-mock": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.0.tgz", - "integrity": "sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA==", - "dev": true, - "dependencies": { - "expect": "^28.1.0", - "jest-snapshot": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.0.tgz", - "integrity": "sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.0.tgz", - "integrity": "sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "@sinonjs/fake-timers": "^9.1.1", - "@types/node": "*", - "jest-message-util": "^28.1.0", - "jest-mock": "^28.1.0", - "jest-util": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.0.tgz", - "integrity": "sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.0", - "@jest/expect": "^28.1.0", - "@jest/types": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.0.tgz", - "integrity": "sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.0", - "@jridgewell/trace-mapping": "^0.3.7", - "@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-util": "^28.1.0", - "jest-worker": "^28.1.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/schemas": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", - "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.23.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.0.2.tgz", - "integrity": "sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.7", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.0.tgz", - "integrity": "sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz", - "integrity": "sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-sequencer/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/@jest/transform": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.0.tgz", - "integrity": "sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.0", - "@jridgewell/trace-mapping": "^0.3.7", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.0", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/types": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", - "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "@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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" - }, - "node_modules/@ngtools/webpack": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", - "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^13.0.0", - "typescript": ">=4.4.3 <4.7", - "webpack": "^5.30.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": 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/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/git": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", - "dev": true, - "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "installed-package-contents": "index.js" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", - "dev": true - }, - "node_modules/@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", - "dev": true, - "dependencies": { - "infer-owner": "^1.0.4" - } - }, - "node_modules/@npmcli/run-script": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", - "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", - "dev": true, - "dependencies": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^8.2.0", - "read-package-json-fast": "^2.0.1" - } - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", - "integrity": "sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "rollup": "^2.68.0" - } - }, - "node_modules/@rollup/plugin-commonjs/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/@rollup/plugin-commonjs/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^2.42.0" - } - }, - "node_modules/@rollup/plugin-typescript": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz", - "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0", - "tslib": "*", - "typescript": ">=3.7.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "node_modules/@schematics/angular": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.7.tgz", - "integrity": "sha512-OAny1e/yliku52xG7vfWs1hNYSgCNTPpMv9fS8zz9eF5/GrKv28WFSy20mUXqLZ91VsbGSs6X0mI6pdNnpVtJA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "13.3.7", - "@angular-devkit/schematics": "13.3.7", - "jsonc-parser": "3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.23.5", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", - "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@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.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cross-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.2.tgz", - "integrity": "sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.2.tgz", - "integrity": "sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "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": "27.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-fUy7YRpT+rHXto1YlL+J9rs0uLGyiqVt3ZOTQR+4ROc47yNl8WLdVLgUloBRhOxP1PZvguHl44T3H0wAWxahYQ==", - "dev": true, - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "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==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "17.0.38", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.38.tgz", - "integrity": "sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g==", - "dev": true - }, - "node_modules/@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dev": true, - "dependencies": { - "@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/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", - "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", - "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/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz", - "integrity": "sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.27.0", - "@typescript-eslint/type-utils": "5.27.0", - "@typescript-eslint/utils": "5.27.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.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/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/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.0.tgz", - "integrity": "sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.27.0", - "@typescript-eslint/types": "5.27.0", - "@typescript-eslint/typescript-estree": "5.27.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/parser/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/@typescript-eslint/scope-manager": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz", - "integrity": "sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.27.0", - "@typescript-eslint/visitor-keys": "5.27.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.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz", - "integrity": "sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "5.27.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/type-utils/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/@typescript-eslint/types": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.0.tgz", - "integrity": "sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==", - "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.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz", - "integrity": "sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.27.0", - "@typescript-eslint/visitor-keys": "5.27.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/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/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.0.tgz", - "integrity": "sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.27.0", - "@typescript-eslint/types": "5.27.0", - "@typescript-eslint/typescript-estree": "5.27.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "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/visitor-keys": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz", - "integrity": "sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.27.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/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "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/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "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==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/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==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/agentkeepalive/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "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": "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/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==", - "dev": true, - "engines": { - "node": ">=0.6.10" - } - }, - "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==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "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/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/babel-jest": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.0.tgz", - "integrity": "sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w==", - "dev": true, - "dependencies": { - "@jest/transform": "^28.1.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.0.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/babel-loader/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/babel-loader/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/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.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": "28.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz", - "integrity": "sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ==", - "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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/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/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.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": "28.0.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz", - "integrity": "sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^28.0.2", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "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/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dev": true, - "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.10.3", - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/bonjour/node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "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/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.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "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/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/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/cacache/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/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" - }, - "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": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001344", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", - "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "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/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/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "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/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", - "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", - "dev": true - }, - "node_modules/circular-dependency-plugin": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", - "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "webpack": ">=4.0.1" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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/codecov": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", - "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", - "deprecated": "https://about.codecov.io/blog/codecov-uploader-deprecation-plan/", - "dev": true, - "dependencies": { - "argv": "0.0.2", - "ignore-walk": "3.0.4", - "js-yaml": "3.14.1", - "teeny-request": "7.1.1", - "urlgrey": "1.0.0" - }, - "bin": { - "codecov": "bin/codecov" - }, - "engines": { - "node": ">=4.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": "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/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/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "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": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/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/compression/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/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/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "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==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/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==", - "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/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "dependencies": { - "is-what": "^3.14.1" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", - "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.7", - "glob-parent": "^6.0.1", - "globby": "^12.0.2", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 12.20.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/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/copy-webpack-plugin/node_modules/globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", - "dev": true, - "dependencies": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", - "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.22.7", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.7.tgz", - "integrity": "sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA==", - "dev": true, - "dependencies": { - "browserslist": "^4.20.3", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/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/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true - }, - "node_modules/critters": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", - "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "css-select": "^4.2.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "postcss": "^8.3.7", - "pretty-bytes": "^5.3.0" - } - }, - "node_modules/critters/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/critters/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/critters/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/critters/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/critters/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/critters/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/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "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/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", - "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.2.15", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true, - "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssdb": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", - "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==", - "dev": true - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "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/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/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/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/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "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/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/devtools-protocol": { - "version": "0.0.982423", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.982423.tgz", - "integrity": "sha512-FnVW2nDbjGNw1uD/JRC+9U5768W7e1TfUwqbDTcSsAu1jXFjITSX8w3rkW5FEpHRMPPGpvNSmO1pOpqByiWscA==", - "dev": true - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dev": true, - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", - "dev": true, - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "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/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=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==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.142", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.142.tgz", - "integrity": "sha512-ea8Q1YX0JRp4GylOmX4gFHIizi0j9GfRW4EkaHnkZp0agRCBB4ZGeCv17IEzIvBkiYVwfoKVhKZJbTfqCRdQdg==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "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/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "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==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", - "integrity": "sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "esbuild-android-arm64": "0.14.22", - "esbuild-darwin-64": "0.14.22", - "esbuild-darwin-arm64": "0.14.22", - "esbuild-freebsd-64": "0.14.22", - "esbuild-freebsd-arm64": "0.14.22", - "esbuild-linux-32": "0.14.22", - "esbuild-linux-64": "0.14.22", - "esbuild-linux-arm": "0.14.22", - "esbuild-linux-arm64": "0.14.22", - "esbuild-linux-mips64le": "0.14.22", - "esbuild-linux-ppc64le": "0.14.22", - "esbuild-linux-riscv64": "0.14.22", - "esbuild-linux-s390x": "0.14.22", - "esbuild-netbsd-64": "0.14.22", - "esbuild-openbsd-64": "0.14.22", - "esbuild-sunos-64": "0.14.22", - "esbuild-windows-32": "0.14.22", - "esbuild-windows-64": "0.14.22", - "esbuild-windows-arm64": "0.14.22" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.22.tgz", - "integrity": "sha512-k1Uu4uC4UOFgrnTj2zuj75EswFSEBK+H6lT70/DdS4mTAOfs2ECv2I9ZYvr3w0WL0T4YItzJdK7fPNxcPw6YmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.22.tgz", - "integrity": "sha512-d8Ceuo6Vw6HM3fW218FB6jTY6O3r2WNcTAU0SGsBkXZ3k8SDoRLd3Nrc//EqzdgYnzDNMNtrWegK2Qsss4THhw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.22.tgz", - "integrity": "sha512-YAt9Tj3SkIUkswuzHxkaNlT9+sg0xvzDvE75LlBo4DI++ogSgSmKNR6B4eUhU5EUUepVXcXdRIdqMq9ppeRqfw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.22.tgz", - "integrity": "sha512-ek1HUv7fkXMy87Qm2G4IRohN+Qux4IcnrDBPZGXNN33KAL0pEJJzdTv0hB/42+DCYWylSrSKxk3KUXfqXOoH4A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.22.tgz", - "integrity": "sha512-zPh9SzjRvr9FwsouNYTqgqFlsMIW07O8mNXulGeQx6O5ApgGUBZBgtzSlBQXkHi18WjrosYfsvp5nzOKiWzkjQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.22.tgz", - "integrity": "sha512-SnpveoE4nzjb9t2hqCIzzTWBM0RzcCINDMBB67H6OXIuDa4KqFqaIgmTchNA9pJKOVLVIKd5FYxNiJStli21qg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz", - "integrity": "sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.22.tgz", - "integrity": "sha512-soPDdbpt/C0XvOOK45p4EFt8HbH5g+0uHs5nUKjHVExfgR7du734kEkXR/mE5zmjrlymk5AA79I0VIvj90WZ4g==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.22.tgz", - "integrity": "sha512-8q/FRBJtV5IHnQChO3LHh/Jf7KLrxJ/RCTGdBvlVZhBde+dk3/qS9fFsUy+rs3dEi49aAsyVitTwlKw1SUFm+A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.22.tgz", - "integrity": "sha512-SiNDfuRXhGh1JQLLA9JPprBgPVFOsGuQ0yDfSPTNxztmVJd8W2mX++c4FfLpAwxuJe183mLuKf7qKCHQs5ZnBQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.22.tgz", - "integrity": "sha512-6t/GI9I+3o1EFm2AyN9+TsjdgWCpg2nwniEhjm2qJWtJyJ5VzTXGUU3alCO3evopu8G0hN2Bu1Jhz2YmZD0kng==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.22.tgz", - "integrity": "sha512-AyJHipZKe88sc+tp5layovquw5cvz45QXw5SaDgAq2M911wLHiCvDtf/07oDx8eweCyzYzG5Y39Ih568amMTCQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.22.tgz", - "integrity": "sha512-Sz1NjZewTIXSblQDZWEFZYjOK6p8tV6hrshYdXZ0NHTjWE+lwxpOpWeElUGtEmiPcMT71FiuA9ODplqzzSxkzw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.22.tgz", - "integrity": "sha512-TBbCtx+k32xydImsHxvFgsOCuFqCTGIxhzRNbgSL1Z2CKhzxwT92kQMhxort9N/fZM2CkRCPPs5wzQSamtzEHA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.22.tgz", - "integrity": "sha512-vK912As725haT313ANZZZN+0EysEEQXWC/+YE4rQvOQzLuxAQc2tjbzlAFREx3C8+uMuZj/q7E5gyVB7TzpcTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.22.tgz", - "integrity": "sha512-/mbJdXTW7MTcsPhtfDsDyPEOju9EOABvCjeUU2OJ7fWpX/Em/H3WYDa86tzLUbcVg++BScQDzqV/7RYw5XNY0g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-wasm": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.22.tgz", - "integrity": "sha512-FOSAM29GN1fWusw0oLMv6JYhoheDIh5+atC72TkJKfIUMID6yISlicoQSd9gsNSFsNBvABvtE2jR4JB1j4FkFw==", - "dev": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.22.tgz", - "integrity": "sha512-1vRIkuvPTjeSVK3diVrnMLSbkuE36jxA+8zGLUOrT4bb7E/JZvDRhvtbWXWaveUc/7LbhaNFhHNvfPuSw2QOQg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.22.tgz", - "integrity": "sha512-AxjIDcOmx17vr31C5hp20HIwz1MymtMjKqX4qL6whPj0dT9lwxPexmLj6G1CpR3vFhui6m75EnBEe4QL82SYqw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.22.tgz", - "integrity": "sha512-5wvQ+39tHmRhNpu2Fx04l7QfeK3mQ9tKzDqqGR8n/4WUxsFxnVLfDRBGirIfk4AfWlxk60kqirlODPoT5LqMUg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "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==", - "dev": true - }, - "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/eslint": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", - "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "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.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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", - "v8-compile-cache": "^2.0.3" - }, - "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-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", - "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-simple-import-sort": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", - "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", - "dev": true, - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.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/eslint/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/eslint/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/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/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/eslint/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/eslint/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/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/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/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/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.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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/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/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/eslint/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/eslint/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/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.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "dependencies": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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/esquery/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/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/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "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", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter-asyncresource": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", - "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", - "dev": true - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "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": "28.1.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.0.tgz", - "integrity": "sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^28.1.0", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-util": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/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/expect/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/expect/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/expect/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/expect/node_modules/diff-sequences": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", - "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/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/expect/node_modules/jest-diff": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", - "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.0.2", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/jest-matcher-utils": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", - "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.0", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/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/expect/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/expect/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/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "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.10.3", - "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/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/express/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/express/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==", - "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/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "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-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==", - "dev": true, - "dependencies": { - "punycode": "^1.3.2" - } - }, - "node_modules/fast-url-parser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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", - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-cache-dir/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/find-cache-dir/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/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/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.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "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/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", - "dev": true - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "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/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==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "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.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "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": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "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/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/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "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/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/globby/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/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "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/handlebars/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/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/hdr-histogram-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", - "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", - "dev": true, - "dependencies": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "node_modules/hdr-histogram-percentiles-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", - "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", - "dev": true - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", - "dev": true - }, - "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-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "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==", - "dev": true, - "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/http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "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/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.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==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "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", - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.2.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true - }, - "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-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "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-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-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "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/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "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-instrument/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/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-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "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/istanbul-lib-report/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/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.0.tgz", - "integrity": "sha512-TZR+tHxopPhzw3c3560IJXZWLNHgpcz1Zh0w5A65vynLGNcg/5pZ+VildAd7+XGOu6jd58XMY/HNn0IkZIXVXg==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.0", - "import-local": "^3.0.2", - "jest-cli": "^28.1.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz", - "integrity": "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.0.tgz", - "integrity": "sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.0", - "@jest/expect": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.0", - "jest-matcher-utils": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-runtime": "^28.1.0", - "jest-snapshot": "^28.1.0", - "jest-util": "^28.1.0", - "pretty-format": "^28.1.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/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/jest-circus/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/jest-circus/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/jest-circus/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/jest-circus/node_modules/diff-sequences": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", - "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/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/jest-circus/node_modules/jest-diff": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", - "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.0.2", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-matcher-utils": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", - "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.0", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/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/jest-circus/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-circus/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/jest-circus/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/jest-cli": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.0.tgz", - "integrity": "sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/types": "^28.1.0", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.0", - "jest-util": "^28.1.0", - "jest-validate": "^28.1.0", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-config": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.0.tgz", - "integrity": "sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.0", - "@jest/types": "^28.1.0", - "babel-jest": "^28.1.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": "^28.1.0", - "jest-environment-node": "^28.1.0", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.0", - "jest-runner": "^28.1.0", - "jest-util": "^28.1.0", - "jest-validate": "^28.1.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-config/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/jest-config/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-config/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/jest-config/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/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/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/jest-docblock": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.0.2.tgz", - "integrity": "sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.0.tgz", - "integrity": "sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.0", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/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/jest-each/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/jest-each/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/jest-each/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/jest-each/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/jest-each/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/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/jest-each/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-each/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/jest-environment-node": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.0.tgz", - "integrity": "sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.0", - "@jest/fake-timers": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "jest-mock": "^28.1.0", - "jest-util": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.0.tgz", - "integrity": "sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.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": "^28.0.2", - "jest-util": "^28.1.0", - "jest-worker": "^28.1.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz", - "integrity": "sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/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/jest-leak-detector/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/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/jest-message-util": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.0.tgz", - "integrity": "sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.0", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util/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/jest-message-util/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-message-util/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/jest-message-util/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/jest-mock": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.0.tgz", - "integrity": "sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "@types/node": "*" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.0.tgz", - "integrity": "sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.0", - "jest-validate": "^28.1.0", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz", - "integrity": "sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g==", - "dev": true, - "dependencies": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-runner": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.0.tgz", - "integrity": "sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.0", - "@jest/environment": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.0.2", - "jest-environment-node": "^28.1.0", - "jest-haste-map": "^28.1.0", - "jest-leak-detector": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-resolve": "^28.1.0", - "jest-runtime": "^28.1.0", - "jest-util": "^28.1.0", - "jest-watcher": "^28.1.0", - "jest-worker": "^28.1.0", - "source-map-support": "0.5.13", - "throat": "^6.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-runner/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/jest-runner/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/jest-runtime": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.0.tgz", - "integrity": "sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.0", - "@jest/fake-timers": "^28.1.0", - "@jest/globals": "^28.1.0", - "@jest/source-map": "^28.0.2", - "@jest/test-result": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-mock": "^28.1.0", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.0", - "jest-snapshot": "^28.1.0", - "jest-util": "^28.1.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-snapshot": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.0.tgz", - "integrity": "sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.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": "^28.1.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.0", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.0", - "jest-matcher-utils": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-util": "^28.1.0", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/node_modules/diff-sequences": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", - "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/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/jest-snapshot/node_modules/jest-diff": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", - "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.0.2", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", - "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.0", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/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/jest-snapshot/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-snapshot/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/jest-util": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.0.tgz", - "integrity": "sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-validate": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.0.tgz", - "integrity": "sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/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/jest-validate/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-validate/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/jest-watcher": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.0.tgz", - "integrity": "sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-worker": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.0.tgz", - "integrity": "sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "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-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.9" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "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/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "dependencies": { - "source-map-support": "^0.5.5" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/less": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", - "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", - "dev": true, - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^2.5.2", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", - "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", - "dev": true, - "dependencies": { - "klona": "^2.0.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/less/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==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/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/license-webpack-plugin": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", - "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", - "dev": true, - "dependencies": { - "webpack-sources": "^3.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-sources": { - "optional": true - } - } - }, - "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/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "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==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "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/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/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/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/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", - "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", - "dev": true, - "dependencies": { - "fs-monkey": "1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "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==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "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", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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/mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", - "dev": true, - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dev": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "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/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", - "dev": true - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "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/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "dev": true, - "optional": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "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==", - "dev": true, - "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/nice-napi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "!win32" - ], - "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" - } - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "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-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "dev": true, - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-gyp/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/node-gyp/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/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", - "dev": true - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", - "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", - "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", - "dev": true, - "dependencies": { - "glob": "^7.1.6", - "ignore-walk": "^4.0.1", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist/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/npm-packlist/node_modules/ignore-walk": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", - "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist/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/npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", - "dev": true, - "dependencies": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" - } - }, - "node_modules/npm-registry-fetch": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", - "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^10.0.1", - "minipass": "^3.1.6", - "minipass-fetch": "^1.4.1", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^8.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", - "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm-registry-fetch/node_modules/cacache": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.0.tgz", - "integrity": "sha512-Pk4aQkwCW82A4jGKFvcGkQFqZcMspfP9YWq9Pr87/ldDvlWf718zeI6KWCdKt/jeihu6BytHRUicJPB1K2k8EQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz", - "integrity": "sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "10.1.6", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.6.tgz", - "integrity": "sha512-/iKDlRQF0fkxyB/w/duW2yRYrGwBcbJjC37ijgi0CmOZ32bzMc86BCSSAHWvuyRFCB408iBPziTSzazBSrKo3w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.1.1", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen/node_modules/minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm-registry-fetch/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.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/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "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==", - "dev": true, - "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": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "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/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/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/ora/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/ora/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/ora/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/ora/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/ora/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/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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-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-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pacote": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz", - "integrity": "sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==", - "dev": true, - "dependencies": { - "@npmcli/git": "^2.1.0", - "@npmcli/installed-package-contents": "^1.0.6", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^2.0.0", - "cacache": "^15.0.5", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^3.0.0", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^12.0.0", - "promise-retry": "^2.0.1", - "read-package-json-fast": "^2.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.0" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "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": "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/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parse5-html-rewriting-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", - "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", - "dev": true, - "dependencies": { - "parse5": "^6.0.1", - "parse5-sax-parser": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dev": true, - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-sax-parser": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", - "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", - "dev": true, - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "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==", - "dev": true - }, - "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": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/piscina": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", - "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", - "dev": true, - "dependencies": { - "eventemitter-asyncresource": "^1.0.0", - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0" - }, - "optionalDependencies": { - "nice-napi": "^1.0.2" - } - }, - "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/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/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/portfinder/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dev": true, - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.2" - }, - "peerDependencies": { - "postcss": "^8.0.2" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz", - "integrity": "sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-custom-properties": { - "version": "12.1.7", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz", - "integrity": "sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.2" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", - "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", - "dev": true, - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-env-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", - "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-import": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", - "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-lab-function": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", - "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", - "dev": true, - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "dev": true, - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nesting": { - "version": "10.1.7", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.7.tgz", - "integrity": "sha512-Btho5XzDTpl117SmB3tvUHP8txg5n7Ayv7vQ5m4b1zXkfs1Y52C67uZjZ746h7QvOJ+rLRg50OlhhjFW+IQY6A==", - "dev": true, - "dependencies": { - "@csstools/selector-specificity": "1.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true, - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-preset-env": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", - "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", - "dev": true, - "dependencies": { - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001299", - "css-blank-pseudo": "^3.0.2", - "css-has-pseudo": "^3.0.3", - "css-prefers-color-scheme": "^6.0.2", - "cssdb": "^5.0.0", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-color-functional-notation": "^4.2.1", - "postcss-color-hex-alpha": "^8.0.2", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.2", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.3", - "postcss-double-position-gradients": "^3.0.4", - "postcss-env-function": "^4.0.4", - "postcss-focus-visible": "^6.0.3", - "postcss-focus-within": "^5.0.3", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.2", - "postcss-image-set-function": "^4.0.4", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.0.3", - "postcss-logical": "^5.0.3", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-overflow-shorthand": "^3.0.2", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.3", - "postcss-pseudo-class-any-link": "^7.0.2", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz", - "integrity": "sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true, - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/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/prettier": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", - "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "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/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==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "optional": true - }, - "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==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "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/puppeteer": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-14.1.2.tgz", - "integrity": "sha512-Nsyy1f7pT2KyBb15u8DHi4q3FfrIqOptAV0r4Bd1lAp2pHz8T0o4DO+On1yWZ7jFbcx1w3AqZ/e7nKqnc3Vwyg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.982423", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.6.0" - }, - "engines": { - "node": ">=14.1.0" - } - }, - "node_modules/puppeteer/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/puppeteer/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==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "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/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "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/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", - "dev": true - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "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-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", - "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/resolve-url-loader/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "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/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/rollup": { - "version": "2.75.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.4.tgz", - "integrity": "sha512-JgZiJMJkKImMZJ8ZY1zU80Z2bA/TvrL/7D9qcBCrfl2bP+HUaIw0QHUroB4E3gBpFl6CRFM1YxGbuYGtdAswbQ==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/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/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/rollup-plugin-terser/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/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass": { - "version": "1.49.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", - "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", - "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/sass-loader": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", - "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", - "dev": true, - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/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/schema-utils/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/schema-utils/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/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", - "dev": true, - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/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/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/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/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dev": true, - "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/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "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": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dev": true, - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/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/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "dev": true, - "dependencies": { - "stubs": "^3.0.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/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==", - "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/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==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", - "dev": true - }, - "node_modules/stylus": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", - "integrity": "sha512-Ev3fOb4bUElwWu4F9P9WjnnaSpc8XB9OFHSFZSKMFL1CE1oM+oFXWEgAqPmmZIyhBihuqIQlFsVTypiiS9RxeA==", - "dev": true, - "dependencies": { - "css": "^3.0.0", - "debug": "^4.3.2", - "glob": "^7.1.6", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", - "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.7", - "klona": "^2.0.4", - "normalize-path": "^3.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "stylus": ">=0.52.4", - "webpack": "^5.0.0" - } - }, - "node_modules/stylus/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/stylus/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/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/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/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/supports-hyperlinks/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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/teeny-request": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", - "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", - "dev": true, - "dependencies": { - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", - "dev": true, - "dependencies": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dev": true, - "dependencies": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/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/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "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==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-node": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.0.tgz", - "integrity": "sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==", - "dev": true, - "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": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - }, - "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/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "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", - "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==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-assert": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", - "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", - "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "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/urlgrey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", - "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", - "dev": true, - "dependencies": { - "fast-url-parser": "^1.1.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "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==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz", - "integrity": "sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.7", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "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/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "node_modules/webpack": { - "version": "5.70.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", - "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", - "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.2.2", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", - "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/serve-index": "^1.9.1", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", - "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^3.5.2", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "portfinder": "^1.0.28", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", - "webpack-dev-middleware": "^5.3.0", - "ws": "^8.1.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-subresource-integrity": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", - "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", - "dev": true, - "dependencies": { - "typed-assert": "^1.0.8" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", - "webpack": "^5.12.0" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } - } - }, - "node_modules/webpack/node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "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/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "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/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "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/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/ws": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", - "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "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": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "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.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/zone.js": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.5.tgz", - "integrity": "sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - } - } - }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", @@ -19077,8 +1875,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz", "integrity": "sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw==", - "dev": true, - "requires": {} + "dev": true }, "@discoveryjs/json-ext": { "version": "0.5.6", @@ -19815,8 +2612,7 @@ "version": "13.3.7", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", - "dev": true, - "requires": {} + "dev": true }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", @@ -20795,15 +3591,13 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} + "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": {} + "dev": true }, "acorn-walk": { "version": "8.2.0", @@ -21593,8 +4387,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true, - "requires": {} + "dev": true }, "cjs-module-lexer": { "version": "1.2.2", @@ -22101,8 +4894,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true, - "requires": {} + "dev": true }, "css-select": { "version": "4.3.0", @@ -22871,8 +5663,7 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "requires": {} + "dev": true }, "eslint-plugin-prettier": { "version": "4.0.0", @@ -22887,8 +5678,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", - "dev": true, - "requires": {} + "dev": true }, "eslint-scope": { "version": "5.1.1", @@ -23949,8 +6739,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} + "dev": true }, "ieee754": { "version": "1.2.1", @@ -25233,8 +8022,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "28.0.2", @@ -27417,8 +10205,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "dev": true, - "requires": {} + "dev": true }, "postcss-custom-properties": { "version": "12.1.7", @@ -27488,15 +10275,13 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true, - "requires": {} + "dev": true }, "postcss-gap-properties": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-image-set-function": { "version": "4.0.6", @@ -27522,8 +10307,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-lab-function": { "version": "4.2.0", @@ -27550,22 +10334,19 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true, - "requires": {} + "dev": true }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -27610,15 +10391,13 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "dev": true, - "requires": {} + "dev": true }, "postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-place": { "version": "7.0.4", @@ -27683,8 +10462,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-selector-not": { "version": "5.0.0", @@ -28352,8 +11130,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -28767,23 +11544,6 @@ "stubs": "^3.0.0" } }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -28805,6 +11565,23 @@ "strip-ansi": "^6.0.1" } }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -29061,8 +11838,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "has-flag": { "version": "4.0.0", @@ -29554,8 +12330,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -29819,8 +12594,7 @@ "version": "8.6.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "dev": true, - "requires": {} + "dev": true }, "y18n": { "version": "5.0.8", From 55995326b25b082621f94ffd7a6ac86f312e52ee Mon Sep 17 00:00:00 2001 From: Roman P Date: Wed, 8 Jun 2022 08:32:55 +0500 Subject: [PATCH 02/52] feat: add custom generator to generate only required url paths --- src/generateCustomSpec.ts | 88 + src/index.ts | 1 + test/index.js | 1 + test/spec/saddlebackApi.json | 80485 +++++++++++++++++++++++++++++++++ 4 files changed, 80575 insertions(+) create mode 100644 src/generateCustomSpec.ts create mode 100644 test/spec/saddlebackApi.json diff --git a/src/generateCustomSpec.ts b/src/generateCustomSpec.ts new file mode 100644 index 000000000..e22160c88 --- /dev/null +++ b/src/generateCustomSpec.ts @@ -0,0 +1,88 @@ +import { OpenApi } from './openApi/v3/interfaces/OpenApi'; +import { OpenApiMediaType } from './openApi/v3/interfaces/OpenApiMediaType'; +import { OpenApiOperation } from './openApi/v3/interfaces/OpenApiOperation'; +import { OpenApiParameter } from './openApi/v3/interfaces/OpenApiParameter'; +import { OpenApiSchema } from './openApi/v3/interfaces/OpenApiSchema'; +import { OpenApiServer } from './openApi/v3/interfaces/OpenApiServer'; +import { getOpenApiSpec } from './utils/getOpenApiSpec'; +import { Dictionary } from './utils/types'; + +export const generateCustomSpec = async (gen: any, input: string, output: string, config: Record) => { + const getSchemaRefFromContent = (content: OpenApiMediaType): string => { + let ref: string = ''; + + ref = content.$ref || content.schema?.$ref || content.schema?.items?.$ref || ''; + + return ref.split('/').slice(-1)[0]; + }; + + const list: OpenApi = await getOpenApiSpec(input); + + const requiredPathsList: string[] = ['/api/agreement', '/api/agreement/{id}']; + + const requiredPaths: OpenApi['paths'] = {}; + + for (const path in list.paths) { + if (requiredPathsList.some(it => it === path)) { + requiredPaths[path] = list.paths[path]; + } + } + + const requiredSchemasSet: Set = new Set(); + + for (const pathName in requiredPaths) { + const pathElement = requiredPaths[pathName]; + + const openApiPathValues = Object.values(pathElement) as ( + | OpenApiOperation + | OpenApiServer + | OpenApiParameter + | string + )[]; + + openApiPathValues.forEach(requestMethodData => { + if (typeof requestMethodData !== 'string') { + if (!('url' in requestMethodData)) { + if ('parameters' in requestMethodData) { + // add schemas from {apiPath}/{method}/parameters + requestMethodData.parameters?.forEach(parameter => + requiredSchemasSet.add(getSchemaRefFromContent(parameter)) + ); + } + if ('responses' in requestMethodData) { + const responsesCodeData = Object.values(requestMethodData.responses); + + responsesCodeData.forEach(response => { + const contentTypeData = Object.values(response.content ?? {}); + + // add schemas from {apiPath}/{method}/responses/{responseType}/content + contentTypeData.forEach(content => { + requiredSchemasSet.add(getSchemaRefFromContent(content)); + }); + }); + } + } + } + }); + } + + const requiredSchemas: Dictionary = {}; + + if (list && list.components && list.components.schemas) { + for (const schema in list.components.schemas) { + if (requiredSchemasSet.has(schema)) { + requiredSchemas[schema] = list.components.schemas[schema]; + } + } + } + + const listWithRequiredPaths: OpenApi = { + ...list, + paths: requiredPaths, + components: { + schemas: requiredSchemas, + }, + }; + + await gen(listWithRequiredPaths, output); +}; diff --git a/src/index.ts b/src/index.ts index ef7a8b1bf..0e50bba71 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,6 +9,7 @@ import { postProcessClient } from './utils/postProcessClient'; import { registerHandlebarTemplates } from './utils/registerHandlebarTemplates'; import { writeClient } from './utils/writeClient'; +export { generateCustomSpec } from './generateCustomSpec'; export { HttpClient } from './HttpClient'; export { Indent } from './Indent'; diff --git a/test/index.js b/test/index.js index 6d276c412..e45af4efb 100644 --- a/test/index.js +++ b/test/index.js @@ -59,6 +59,7 @@ const generateRealWorldSpecs = async () => { const main = async () => { await generate('./test/spec/v2.json', './test/generated/v2/'); await generate('./test/spec/v3.json', './test/generated/v3/'); + await OpenAPI.generateCustomSpec(generate, './test/spec/saddlebackApi.json', './test/generated/saddleback/'); // await generateRealWorldSpecs(); }; diff --git a/test/spec/saddlebackApi.json b/test/spec/saddlebackApi.json new file mode 100644 index 000000000..9a51e65a3 --- /dev/null +++ b/test/spec/saddlebackApi.json @@ -0,0 +1,80485 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "CM Core API", + "version": "v1" + }, + "paths": { + "/api/agreement": { + "get": { + "tags": [ + "Agreement" + ], + "summary": "Gets all Active Agreements", + "description": "**Data Access:**
\r\nREAD access to active Agreements", + "operationId": "GetAllActiveAgreements", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + } + } + } + } + } + } + }, + "/api/agreement/{id}": { + "get": { + "tags": [ + "Agreement" + ], + "summary": "Gets Agreement by its ID", + "description": "**Data Access:**
\r\nREAD access to the details of a single specified Agreement", + "operationId": "GetAgreementById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Agreement ID (integer)", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + } + } + }, + "404": { + "description": "Not Found" + } + } + }, + "put": { + "tags": [ + "Agreement" + ], + "summary": "Updates an Agreement (which creates a new version of it)", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n
\r\n**Data Access:**
\r\nWRITE access to the detals of a single specified Agreement\r\n\r\n**More Information:**
\r\nAnonymous access is allowed to support scenarios like consent via verification\r\ntoken \"workflow\" in which the agreement must be displayed to unauthenticated\r\nusers.", + "operationId": "UpdateAgreement", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/agreement/latest": { + "get": { + "tags": [ + "Agreement" + ], + "summary": "Gets the latest version of an Agreement as specified by its name", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nREAD access to the details of a single specified Agreement\r\n\r\n**More Information:**
\r\nAnonymous access is allowed to support scenarios like consent via verification\r\ntoken \"workflow\" in which the agreement must be displayed to unauthenticated\r\nusers.", + "operationId": "GetLatestVersionOfAgreementByName", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "Agreement name (string)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + } + } + } + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/connection-question/answer-source": { + "get": { + "tags": [ + "AnswerSource" + ], + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/rate-limit/client-options": { + "get": { + "tags": [ + "ApiRateLimit" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetClientRateLimit", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "ApiRateLimit" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "PostClientRateLimit", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ClientRateLimitOptions" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ClientRateLimitOptions" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ClientRateLimitOptions" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ClientRateLimitOptions" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/rate-limit/ip-options": { + "get": { + "tags": [ + "ApiRateLimit" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetIpRateLimit", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "ApiRateLimit" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "PostIpRateLimit", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IpRateLimitOptions" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IpRateLimitOptions" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IpRateLimitOptions" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IpRateLimitOptions" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/app-settings": { + "get": { + "tags": [ + "ApplicationSettings" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "Get", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/app-settings/{id}": { + "put": { + "tags": [ + "ApplicationSettings" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "Update", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ApplicationSettingsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ApplicationSettingsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ApplicationSettingsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ApplicationSettingsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/app-settings/logo-image": { + "post": { + "tags": [ + "ApplicationSettings" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "UploadDashboardImage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/app-settings/cke-comments-key": { + "get": { + "tags": [ + "ApplicationSettings" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetCKECommentsKey", + "parameters": [ + { + "name": "clientId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/basic-content/{contentId}": { + "get": { + "tags": [ + "BasicContent" + ], + "summary": "Returns Basic Content from provider by contenteId", + "operationId": "GetBasicContentByContentId", + "parameters": [ + { + "name": "contentId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/basic-content": { + "get": { + "tags": [ + "BasicContent" + ], + "summary": "Returns all Basic Content from provider for a given content type", + "operationId": "GetBasicContentsByContentType", + "parameters": [ + { + "name": "contentType", + "in": "query", + "description": "ContentType to retrieve contents for", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/basic-content/learn-more-menu": { + "get": { + "tags": [ + "BasicContent" + ], + "summary": "Returns all Basic Content from the CMS provider of type \"LearnMoreMenuContent\"", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetLearnMoreMenuContent", + "parameters": [ + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/bootstrap": { + "get": { + "tags": [ + "Bootstrap" + ], + "operationId": "GetBootstrap", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/enumerations": { + "get": { + "tags": [ + "Bootstrap" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetEnumerationsAsync", + "parameters": [ + { + "name": "expand", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/churchentity": { + "get": { + "tags": [ + "ChurchEntity" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "includeInactive", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "ChurchEntity" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ] + } + ] + } + } + }, + "/api/churchentity/{id}": { + "get": { + "tags": [ + "ChurchEntity" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "ChurchEntity" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ] + } + ] + } + }, + "delete": { + "tags": [ + "ChurchEntity" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ] + } + ] + } + } + }, + "/api/churchentity/{id}/reactivate": { + "put": { + "tags": [ + "ChurchEntity" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "MakeActive", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ] + } + ] + } + } + }, + "/api/churchentity/{id}/deactivate": { + "put": { + "tags": [ + "ChurchEntity" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "MakeInactive", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ] + } + ] + } + } + }, + "/api/church-entity-region": { + "get": { + "tags": [ + "ChurchEntityRegion" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "ChurchEntityRegion" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ChurchEntityRegion" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ChurchEntityRegion" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ChurchEntityRegion" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ChurchEntityRegion" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ] + } + ] + } + } + }, + "/api/church-entity-region/{id}": { + "get": { + "tags": [ + "ChurchEntityRegion" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "ChurchEntityRegion" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ChurchEntityRegion" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ChurchEntityRegion" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ChurchEntityRegion" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ChurchEntityRegion" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ] + } + ] + } + }, + "delete": { + "tags": [ + "ChurchEntityRegion" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ] + } + ] + } + } + }, + "/api/rate-limit/clients": { + "get": { + "tags": [ + "Client" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetClients", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "Client" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "PostClient", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Client" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Client" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Client" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Client" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/rate-limit/clients/{clientId}": { + "get": { + "tags": [ + "Client" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetClientsById", + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "Client" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "UpdateClientsById", + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Client" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Client" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Client" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Client" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/rate-limit/clients/{id}/policy": { + "get": { + "tags": [ + "Client" + ], + "operationId": "GetClientPolicyById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/rate-limit/clients/{clientId}/rules": { + "get": { + "tags": [ + "Client" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetRateLimitRuleByClientId", + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "Client" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "PostClientRateLimitRules", + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/rate-limit/clients/{clientId}/rules/{ruleId}": { + "put": { + "tags": [ + "Client" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "UpdateClientsRule", + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ruleId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Client" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "DeleteClientsRule", + "parameters": [ + { + "name": "clientId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ruleId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/communication-list/segment": { + "get": { + "tags": [ + "CommunicationListSegment" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "Get", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/communication-list/subscriber/{email}/segment": { + "get": { + "tags": [ + "CommunicationListSubscriber" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Person Email Subscriptions
\r\n", + "operationId": "Get", + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "text/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "302": { + "description": "Redirect" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Person Email Subscriptions" + ] + } + ] + } + } + }, + "/api/communication-list/subscriber/{personId}": { + "get": { + "tags": [ + "CommunicationListSubscriber" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Person Email Subscriptions
\r\n", + "operationId": "Get", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "excludeManagedSegments", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "text/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "302": { + "description": "Redirect" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Person Email Subscriptions" + ] + } + ] + } + } + }, + "/api/communication-list/subscriber": { + "post": { + "tags": [ + "CommunicationListSubscriber" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Email Subscriptions
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SubscriberSegmentUpdateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SubscriberSegmentUpdateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SubscriberSegmentUpdateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SubscriberSegmentUpdateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "text/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "302": { + "description": "Redirect" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Email Subscriptions" + ] + } + ] + } + }, + "delete": { + "tags": [ + "CommunicationListSubscriber" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Email Subscriptions
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SubscriberSegmentViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SubscriberSegmentViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SubscriberSegmentViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SubscriberSegmentViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "text/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "302": { + "description": "Redirect" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Email Subscriptions" + ] + } + ] + } + } + }, + "/api/communication-template/{id}": { + "get": { + "tags": [ + "CommunicationTemplate" + ], + "summary": "Gets Communication template by ID", + "description": "**Data Access:**
\r\nREAD Access to a single specified Communication templates.", + "operationId": "GetCommunicationTemplateById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Communication template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeThumbnail", + "in": "query", + "description": "Boolean flag indicating whether or not to include thumnail URL", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "keepRazorSyntax", + "in": "query", + "description": "Boolean flag indicating whether or not any Razor syntax in the Email Body Content Template\r\nneeds to be translated into UI-friendly markers.
\r\nShould be True if the caller wishes to keep the Email Body Content Template as Razor (i.e. to use the template to construct and send an email message).
\r\nShould be False (or omitted as this is the default) to translate the Razor syntax into UI-friendly markers (i.e. to fetch the template for editing in the UI, using a tool like CKEditor or Unlayer).", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Communication template." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + } + }, + "put": { + "tags": [ + "CommunicationTemplate" + ], + "summary": "Updates Communication template", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Communication Template, Update Event, Manage Follow Up Rules
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Communication Templates.\r\n\r\n**More Info:**
\r\nThis operation is presently restricted to callers with 'Manage Follow Up Rules' permission.\r\nAs of right now, building Follow Up Rules is the only feature that also requires updating\r\nCommunication Templates (e.g. being able to update the Email template associated to an Email Rule Action).\r\n\r\nIn a future iteration, Communication Template management will become a feature in its own right,\r\nand likely at this time, dedicated permissions for that feature will be utilized here.", + "operationId": "UpdateCommunicationTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Communication Template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Communication template Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_CommunicationTemplateDetailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CommunicationTemplateDetailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CommunicationTemplateDetailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_CommunicationTemplateDetailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Communication template." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Referenced Communication Template not found." + }, + "409": { + "description": "Updated Communication Template would conflict with a different one (violating a uniqueness constraint)." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Communication Template" + ] + }, + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + }, + "delete": { + "tags": [ + "CommunicationTemplate" + ], + "summary": "Deletes Communication template", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Communication Template, Update Event, Manage Follow Up Rules
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Communication templates.\r\n\r\n**More Info:**
\r\nThis operation is presently restricted to callers with 'Manage Follow Up Rules' permission, simply as a precaution.\r\nAs of right now, there is no use for this endpoint.\r\n\r\nIn a future iteration, Communication Template management will become a feature in its own right,\r\nand likely at this time, dedicated permissions for that feature will be utilized here.", + "operationId": "DeleteCommunicationTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Communication template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Communication template was deleted successfully." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Communication Template" + ] + }, + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/communication-template": { + "get": { + "tags": [ + "CommunicationTemplate" + ], + "summary": "Search/Browse Communications Templates", + "description": "**Data Access:**
\r\nREAD Access to Communication Templates.", + "operationId": "Search", + "parameters": [ + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "churchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isSystem", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "isEmail", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "isSms", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "isActive", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Communication templates list." + }, + "403": { + "description": "Not authorized." + } + } + }, + "post": { + "tags": [ + "CommunicationTemplate" + ], + "summary": "Creates Communication template", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Communication Template, Update Event, Manage Follow Up Rules
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Communication Templates.\r\n\r\n**More Info:**
\r\nThis operation is presently restricted to callers with 'Manage Follow Up Rules' or 'Update Events' permission.\r\nAs of right now, building Follow Up Rules and/or creating a Custom Registration Response Email Template are the only features that also require creation of\r\nnew Communication Templates.
\r\n\r\nIn a future iteration, Communication Template management will become a feature in its own right,\r\nand likely at this time, dedicated permissions for that feature will be utilized here.", + "operationId": "CreateCommunicationTemplate", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Communication Template Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_CommunicationTemplateDetailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CommunicationTemplateDetailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CommunicationTemplateDetailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_CommunicationTemplateDetailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Communication Template." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "409": { + "description": "New Communication Template conflicts with an existing one (violating a uniqueness constraint)." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Communication Template" + ] + }, + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/communication-template/name": { + "get": { + "tags": [ + "CommunicationTemplate" + ], + "summary": "Gets Communication Template by Name and Campus (Church Entity) ID", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD Access to a single specified Communication Templates.\r\n\r\n**More Info:**
\r\nThis operation is presently restricted to callers with 'Internal System' resource scope,\r\nas it is presently only used by REST SDK for obtaining Communication Templates in other Microservices.

\r\nCommunication Template Names are constrained to be unique per Campus (Church Entity), so Name + Church Entity ID is a unique key.", + "operationId": "GetTemplateByName", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "description": "Campus (Church Entity) ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Communication Template Name", + "schema": { + "type": "string" + } + }, + { + "name": "includeThumbnail", + "in": "query", + "description": "Boolean flag indicating whether or not to include thumnail URL", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "keepRazorSyntax", + "in": "query", + "description": "", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Communication template." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/communication-template/{communicationTemplateId}/embedded-image": { + "post": { + "tags": [ + "CommunicationTemplate" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Update Event, Manage Follow Up Rules
\r\n", + "operationId": "UploadEmbeddedImage", + "parameters": [ + { + "name": "communicationTemplateId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/communication-template/{communicationTemplateId}/attachment": { + "post": { + "tags": [ + "CommunicationTemplate" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Communication Template, Update Event, Manage Follow Up Rules
\r\n", + "operationId": "UploadEmailAttachment", + "parameters": [ + { + "name": "communicationTemplateId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Communication Template" + ] + }, + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/communication-template/attachment": { + "post": { + "tags": [ + "CommunicationTemplate" + ], + "summary": "Uploads attachment to temporary location", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Communication Template, Update Event, Manage Follow Up Rules
\r\n", + "operationId": "UploadEmailAttachment", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Communication Template" + ] + }, + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/communication-template/attachment/{uuid}": { + "delete": { + "tags": [ + "CommunicationTemplate" + ], + "summary": "Deletes temporary attachment", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Communication Template, Update Event, Manage Follow Up Rules
\r\n", + "operationId": "DeleteTempAttachment", + "parameters": [ + { + "name": "uuid", + "in": "path", + "description": "UUID part of Attachment ID to delete", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Communication Template" + ] + }, + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/communication-template/{id}/attachment/{attachmentId}": { + "delete": { + "tags": [ + "CommunicationTemplate" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Update Event, Manage Follow Up Rules
\r\n", + "operationId": "DeleteEmailTemplateAttachment", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "attachmentId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/connection-form/entry/{id}": { + "get": { + "tags": [ + "ConnectionFormEntry" + ], + "summary": "Gets Connection Form Entry by ID", + "description": "**Inline Authorization Checks:**
\r\nAccess to this resource is granted to:
\r\n* Callers with the \"Internal Systems\" API Resource Scope
\r\n* Callers with \"Read Connection Form Entries\" Permission with an applicable permission scope
\r\n* The \"Person Record Owner\" (the person to whom the Connection From Entry pertains is allowed to request his/her own data)\r\n\r\n**Data Access:**
\r\nREAD access to the details of a single Connection Form Entry", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Form Entry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Connection Form Entry.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Entity not found." + } + } + }, + "put": { + "tags": [ + "ConnectionFormEntry" + ], + "summary": "Updates a Connection Form Entry", + "description": "**Inline Authorization Checks:**
\r\nAccess to this resource is granted to:
\r\n* Callers with \"Update Connection Form Entry\" permission with an applicable permission scope
\r\n* The \"Person Record Owner\" (the person to whom the Connection Form Entry pertains is allowed to update his/her own data)\r\n\r\n**Data Access:**
\r\nWRITE (UPDATE) Access to the details of a single Connection Form Entry (form response).", + "operationId": "Update", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Connection form data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated Connection Form Entry.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + } + } + }, + "400": { + "description": "Invalid body." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found." + } + } + }, + "delete": { + "tags": [ + "ConnectionFormEntry" + ], + "summary": "Deletes Connection Form Entry", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Connection form entries", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form entry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection form entry was deleted successfully." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Entity not found." + } + } + } + }, + "/api/connection-form/entry": { + "get": { + "tags": [ + "ConnectionFormEntry" + ], + "summary": "Gets a filtered, paginated list of Connection Form Entries meeting the specified search criteria, suitable for \"Search & Browse\" type scenarios", + "description": "**Inline Authorization Checks:**
\r\nAccess to this resource is granted to:
\r\n* Callers with \"Read Connection Form Entries\" permission with an applicable permission scope
\r\n* The \"Person Record Owner\" (the person to whom the Connection Card Entry pertains is allowed to request his/her own data).
\r\n * This only applies if the **PersonId** parameter is specified.\r\n\r\n**Data Access:**
\r\nREAD access to a paginated list of top-level metadata for a list Connection Form Entries (form responses)\r\nmatching the specified search criteria. Includes some basic Person demographic and contact information and\r\nthe \"Core Milestones\" data (typeical for \"Person 2.0\" style listings) for the Person to which each form\r\nresponse pertains.", + "operationId": "GetFiltered", + "parameters": [ + { + "name": "FormId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "EventTime", + "in": "query", + "schema": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string" + } + }, + { + "name": "Anonymous", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns List of filtered Connection Form Entry.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_ConnectionFormEntryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_ConnectionFormEntryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_ConnectionFormEntryViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + }, + "post": { + "tags": [ + "ConnectionFormEntry" + ], + "summary": "Creates a new Connection Form Entry", + "description": "**Inline Authorization Checks:**
\r\nCallers must have the \"Create Connection Form Entry\" permission with an applicable permission scope.
\r\n\r\n**Data Access:**
\r\nWRITE (CREATE) Access to Connection Form Entries.\r\n\r\n**More Info:**
\r\nThere is a separate public-facing Create/POST endpoint that should be used for most integration scenarios.
\r\nThis endpoint is strictly intendend for Form data entry as a feature within the Healthy Church Admin application.", + "operationId": "Create", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Connection form data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns created Connection Form Entry.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + } + } + }, + "400": { + "description": "Invalid body." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/connection-form/entry/lite/{id}": { + "get": { + "tags": [ + "ConnectionFormEntry" + ], + "summary": "Gets \"lite\" Connection Form Entry data", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Connection Form Entries
\r\n
\r\n**Data Access:**
\r\nREAD access to the top-level metadata details of a single Connection Form Entry.\r\n\r\n**More Info:**
\r\nMostly intended for REST SDK and inter-service communication.", + "operationId": "GetLiteById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Form Entry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Connection Form Entry.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryLiteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryLiteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryLiteViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Entity not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Connection Form Entries" + ] + } + ] + } + } + }, + "/api/connection-form/entry/{id}/date": { + "put": { + "tags": [ + "ConnectionFormEntry" + ], + "summary": "Updates a Connection Form Entry Date", + "description": "**Inline Authorization Checks:**
\r\nCampus scoped and connection form scoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Connection form entries", + "operationId": "UpdateDate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New entry date-time and timezone", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryDateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryDateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryDateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryDateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated Connection Form Entry.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + } + } + } + }, + "400": { + "description": "Invalid body." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found." + } + } + } + }, + "/api/connection-form/entry/event-association": { + "put": { + "tags": [ + "ConnectionFormEntry" + ], + "summary": "Performs Bulk Update on specified Connection Form Entries to change the Event/Occurrence association", + "description": "**Inline Authorization Checks:**
\r\nCaller must have \"Update Connection Form Entry\" permission with scope including the applicable Campus or Form Template for each specified Form Entry.\r\n\r\n**Data Access:**
\r\nWRITE (Update) Access to Connection Form Entries", + "operationId": "BulkUpdateEventAssociation", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_BulkUpdateEventOccurrenceAssociationRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_BulkUpdateEventOccurrenceAssociationRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_BulkUpdateEventOccurrenceAssociationRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_BulkUpdateEventOccurrenceAssociationRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Operation succeeded." + }, + "400": { + "description": "Invalid request." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/connection-form/entry/bulk-delete": { + "post": { + "tags": [ + "ConnectionFormEntry" + ], + "summary": "Bulk Delete Form Entries", + "description": "**Inline Authorization Checks:**
\r\nCaller must have \"Delete Connection Form Entry\" permission with scope including the applicable Campus or Form Template.
\r\n**NOTE:** All specified Form Entries must belong to the same Form Template; otherwise the request is considered invalid.\r\n\r\n**Data Access:**
\r\nDELETE access to Connection Form Entries.", + "operationId": "BulkDelete", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Bulk deletion request (collection of Form Entry IDs in POST body)", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_BulkDeleteFormEntryRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_BulkDeleteFormEntryRequest" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_BulkDeleteFormEntryRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_BulkDeleteFormEntryRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Connection Form Entries were deleted successfully." + }, + "400": { + "description": "Invalid request." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/connection-form/entry/export/preview": { + "get": { + "tags": [ + "ConnectionFormEntry" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Extract Connection Form Data
\r\n", + "operationId": "GetDataExportPreview", + "parameters": [ + { + "name": "FormId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Extract Connection Form Data" + ] + } + ] + } + } + }, + "/api/connection-form/entry/export/request": { + "post": { + "tags": [ + "ConnectionFormEntry" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Extract Connection Form Data
\r\n", + "operationId": "RequestDataExport", + "parameters": [ + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "FormId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Extract Connection Form Data" + ] + } + ] + } + } + }, + "/api/connection-form-public/template/{id}": { + "get": { + "tags": [ + "ConnectionFormPublic" + ], + "summary": "Gets Public Connection Form by ID", + "description": "**Data Access:**
\r\nREAD details of a single Published, Active Connection Form Template by specified ID.
\r\nAvailable to anonymous callers.", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns details of specified Connection Form.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + } + }, + "403": { + "description": "Not authorized. Requested Connection Form might be inactive or unpublished." + }, + "404": { + "description": "Requested Connection Form not found." + } + } + } + }, + "/api/connection-form-public/template": { + "get": { + "tags": [ + "ConnectionFormPublic" + ], + "summary": "Gets filtered and paginated list of Published, Active Connection Form Templates", + "description": "**Data Access:**
\r\nREAD details to a list of top-level details of Published, Active Connection Form Templates meeting\r\nthe specified filter parameters.
\r\nAvailable to anonymous callers.", + "operationId": "GetFiltered", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Type", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ConnectionFormType" + } + }, + { + "name": "IsActive", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPublished", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns filtered, paginated list of filtered Connection Form Templates.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/connection-form-public/entry": { + "post": { + "tags": [ + "ConnectionFormPublic" + ], + "summary": "Creates a new Connection Form Entry", + "description": "**Data Access:**
\r\nWRITE access to create a new Connection Form Entry.
\r\n\r\n* Allows anonymous callers to create entry with no person association, or by specifying First Name, Last Name and Email (plus other desired demographic and contact data).\r\n* Authenticated callers can only create Form Entries for themselves (nor for another person).", + "operationId": "CreateEntry", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionForms.Public.ConnectionFormEntryPublicCreateRequestViewModel Connection Form Entry to Create", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryPublicCreateRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryPublicCreateRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryPublicCreateRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryPublicCreateRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns created Connection Form." + }, + "400": { + "description": "Request not valid." + }, + "403": { + "description": "Not authorized.
\r\nThe target Form Template must be Active and Published.
\r\nCallers attempting to post a new Form Entry can be anonymous/unauthenticated\r\nbut generally should not attempt to create a Connection Form Entry for a different person." + }, + "404": { + "description": "Specified Connection Form Template not found." + } + } + } + }, + "/api/connection-form/{id}": { + "get": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Gets Connection Form by ID", + "description": "**Inline Authorization Checks:**
\r\nCampus scoped and connection form scoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nREAD access to the details of a single Connection Form", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeOwnerAndContributorDetails", + "in": "query", + "description": "Boolean flag indicating whether or not to hydrate basic user/person info for the Form Owner and Form Contributors.\r\nOptional; defaults to False.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Connection Form.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Entity not found." + } + } + }, + "put": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Updates a Connection Form", + "description": "**Inline Authorization Checks:**
\r\nCampus scoped and connection form scoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Connection forms", + "operationId": "Update", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Connection form data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated Connection Form.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + } + }, + "400": { + "description": "Invalid body." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found." + } + } + }, + "delete": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Deletes Connection Form", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Connection forms", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection form was deleted successfully." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Entity not found." + } + } + } + }, + "/api/connection-form": { + "get": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Gets filtered Connection Forms", + "description": "**Inline Authorization Checks:**
\r\nCampus scoped and connection form scoped permission filtering is applied for entity list\r\n\r\n**Data Access:**
\r\nREAD access to Connection Forms", + "operationId": "GetFiltered", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Type", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ConnectionFormType" + } + }, + { + "name": "IsActive", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPublished", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns List of filtered Connection Form.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplatesViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplatesViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplatesViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + }, + "post": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Creates a new Connection Form", + "description": "**Inline Authorization Checks:**
\r\nCampus scoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Connection forms", + "operationId": "Create", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Connection form data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns created Connection Form.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + } + }, + "400": { + "description": "Invalid body." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/connection-form/{id}/follow-up-rule-counts": { + "get": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Gets Follow Up Rule Counts for specified Connection Form Template and its associated Questions (Form Fields)", + "description": "**Inline Authorization Checks:**
\r\nRequires \"Manage Follow Up Rules\" permission AND \"Read Connection Form\" permission with scope including the specified Form Template or the Form template's Campus.\r\n\r\n**Data Access:**
\r\nREAD access to Follow Up Rule Counts on Form Template and its associated Questions (Form Fields)", + "operationId": "GetFollowUpRuleCounts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Form Template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeSystemRules", + "in": "query", + "description": "Boolean flag indicating whether or not System Follow Up Rules should be included when reporting the Rule Count.\r\nOptional: defaults to false.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Connection Form Template Follow Up Rule Counts data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateFollowUpRulesCount" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateFollowUpRulesCount" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateFollowUpRulesCount" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Connection Form Template not found." + } + } + } + }, + "/api/connection-form/campuses": { + "get": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Gets list of Campuses that have Connection Form Templates", + "description": "**Data Access:**
\r\nREAD access to a list of Campuses that have Connection Form Templates. No real sensitive or protected data is accessed.", + "operationId": "GetCampusesWithConnectionForms", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Connection Form Template Follow Up Rule Counts data.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ChurchEntityViewModel" + } + } + } + } + } + } + } + }, + "/api/connection-form/{id}/owner": { + "put": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Updates a Connection Form owner", + "description": "**Inline Authorization Checks:**
\r\nCampus scoped and connection form scoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nUPDATE Access for Connection form owners", + "operationId": "UpdateFormOwner", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionForms.ConnectionFormOwnerViewModel: New form owner person data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormOwnerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormOwnerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormOwnerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormOwnerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated Connection Form.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + } + }, + "400": { + "description": "Invalid body." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found." + } + } + } + }, + "/api/connection-form/{id}/contributor": { + "put": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Updates a Connection Form person contributors", + "description": "**Inline Authorization Checks:**
\r\nCampus scoped and connection form scoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nUPDATE Access for Connection form contributors", + "operationId": "UpdateFormContributors", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionForms.ConnectionFormContributorsViewModel: New form contributors data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormContributorsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormContributorsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormContributorsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormContributorsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated Connection Form.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + } + } + }, + "400": { + "description": "Invalid body." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found." + } + } + } + }, + "/api/connection-form/{id}/publish": { + "put": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Publish Connection Form", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Connection forms", + "operationId": "Publish", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection form was published successfully." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Entity not found." + } + } + } + }, + "/api/connection-form/{id}/unpublish": { + "put": { + "tags": [ + "ConnectionFormTemplate" + ], + "summary": "Unpublish Connection Form", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Connection forms", + "operationId": "Unpublish", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection form ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection form was unpublished successfully." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Entity not found." + } + } + } + }, + "/api/connection-question/search": { + "get": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Searches Connection Questions", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n", + "operationId": "Search", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "QuestionTypeFilter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MilestoneFilter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedFilter", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ActiveFilter", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AnswerSourceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionsSearchResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionsSearchResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionsSearchResultsViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/{id}": { + "get": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Gets a Connection Question by ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionDetailedViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionDetailedViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionDetailedViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + }, + "put": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Updates a Connection Question", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question": { + "get": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Gets Connection Questions by IDs", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n", + "operationId": "GetByIds", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + }, + "post": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Creates a new Connection Question", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + }, + "409": { + "description": "Conflict" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/auto-reply-content": { + "get": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Gets default Auto-Reply Email Content for the specified Questions", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n", + "operationId": "GetDefaultAutoReplyContentForQuestions", + "parameters": [ + { + "name": "questionIds", + "in": "query", + "description": "Comma-separated list of Question IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_QuestionAutoReplyEmailContentLiteDto" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_QuestionAutoReplyEmailContentLiteDto" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_QuestionAutoReplyEmailContentLiteDto" + } + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/published": { + "get": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Gets all Published Connection Questions", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n
\r\nIf answerSourceId is set, the 'title' property in response will contain source specific tilte", + "operationId": "GetPublishedConnectionQuestions", + "parameters": [ + { + "name": "answerSourceId", + "in": "query", + "description": "Answer source ID (optional)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/{id}/auto-reply-email-content": { + "put": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Upserts Default Auto-Reply Email Content for a Connection Question", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n", + "operationId": "SetDefaultAutoReplyEmailContent", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Question ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Default Auto-Reply Email Content Spot Template", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_TemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_TemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_TemplateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_TemplateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionDetailedViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionDetailedViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionDetailedViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/{id}/sources": { + "put": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Upserts Question sources", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n", + "operationId": "UpsertSources", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Question ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "List of sources", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionSourceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionSourceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionSourceViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionSourceViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/{id}/publish": { + "put": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Publishes a Connection Question", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n
\r\n**Data Access:**
\r\nUPDATES a Connection Question to be \"Published\" (available to the web and connection card app)", + "operationId": "PublishConnectionQuestion", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Question ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection Question has been published." + }, + "403": { + "description": "Not authorized. Must have permission to update Connection Question." + }, + "404": { + "description": "The Connection Question is not found." + }, + "500": { + "description": "The publication attempt failed." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/{id}/unpublish": { + "put": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Unpublishes a Connection Question", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n
\r\n**Data Access:**
\r\nUPDATES a Connection Question to be NOT \"Published\"", + "operationId": "UnpublishConnectionQuestion", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Question ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection Question has been unpublished" + }, + "403": { + "description": "Not authorized. Must have permission to update Connection Question." + }, + "404": { + "description": "The Connection Question record is not found." + }, + "500": { + "description": "The un-publication attempt failed." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/{id}/active": { + "put": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Makes a Connection Question Active (i.e. reactivates it if it was formerly made Inactive)", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n
\r\n**Data Access:**
\r\nUPDATES a Connection Question to be Active", + "operationId": "ActivateQuestion", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/{id}/inactive": { + "put": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Makes a Connection Question Inactive", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n
\r\n**Data Access:**
\r\nUPDATES a Connection Question to be Inactive", + "operationId": "InactivateQuestion", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/{id}/classification": { + "put": { + "tags": [ + "ConnectionQuestion" + ], + "summary": "Changes the Classification on a Connection Question", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Connection Questions
\r\n
\r\n**Data Access:**
\r\nUPDATES a Connection Question by changing its Classification\r\n\r\n**More Info:**
\r\nUsed when converting a Custom Question from a Connection Form Template into a General Question by \"Adding it to the Question Library\".", + "operationId": "ReclassifyQuestion", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_QuestionReclassificationRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_QuestionReclassificationRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_QuestionReclassificationRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_QuestionReclassificationRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Connection Questions" + ] + } + ] + } + } + }, + "/api/connection-question/single-answer/{id}": { + "get": { + "tags": [ + "ConnectionQuestionAnswer" + ], + "summary": "Gets details of a single Connection Question Answer by its ID", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Connection Question Answers
\r\n
\r\n**Inline Authorization Checks:**
\r\nFor callers authorized via Permission, a secondary check is made on Permission for Read access to Answers for 'Sensitive' Questions.\r\nIf the caller does not have this permission and the requested Answer is for a sensitive Question, then caller will be denied access.\r\n\r\n**Data Access:**
\r\nREAD access to the single Answer record, specified by ID. Some Answers may contain sensitive and confidential personally identifiable\r\ninformation, and so access to this data should be guarded carefully.", + "operationId": "GetAnswerById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Answer ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "expand", + "in": "query", + "description": "Comma-separated list of expand options. Currently includes \"occurrence\" and \"person\".", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns collection of matched Connection Questions.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerDetailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerDetailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerDetailViewModel" + } + } + } + }, + "401": { + "description": "Not authenticated." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Specified Answer not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Connection Question Answers" + ] + } + ] + } + } + }, + "/api/connection-question/answer/{personId}": { + "get": { + "tags": [ + "ConnectionQuestionAnswer" + ], + "summary": "Get all Connection Questions Answers for a Person", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Connection Question Answers
\r\n
\r\n**Inline Authorization Checks:**
\r\nFor callers authorized via Permission:\r\n* Campus scope on the Permission is checked.\r\n* A secondary check is made on Permission for Read access to Answers for 'Sensitive' Questions. If the caller does not have this permission, than Answers to Sensitive Questions will be redacted, and the caller will only receive Answers to non-Sensitive Questions.\r\nThese checks are not performed when the caller is requesting data associated to his or her own Person Record.\r\n \r\n**Data Access:**
\r\nREAD access to Answers to Connection Questions associated to the specified Person. Some of these Answers may contain sensitive and confidential personally identifiable information, and so access to this data should be guarded carefully.", + "operationId": "GetAllAnswersByPersonUniqueId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns collection of Connection Question Answers.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + } + }, + "401": { + "description": "Not authenticated." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Specified Person not found." + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Connection Question Answers" + ] + } + ] + } + } + }, + "/api/connection-question-public": { + "get": { + "tags": [ + "Data Capture", + "Connection Questions", + "Open", + "Public" + ], + "summary": "Gets all Published Connection Questions", + "description": "**Data Access:**
\r\nREAD access to published Connection Question metadata. Data is generally appropriate to share with all callers.\r\n\r\n**More Info:**
\r\nIntended for integration partners.\r\n\r\nIf answerSourceId is set, the 'title' property in response will contain source specific title.", + "operationId": "GetPublishedConnectionQuestions", + "parameters": [ + { + "name": "answerSourceId", + "in": "query", + "description": "Answer Source ID (optional)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "questionClassification", + "in": "query", + "description": "Question Classification (optional)", + "schema": { + "$ref": "#/components/schemas/Core_Model_QuestionClassification" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns collection of published Connection Questions.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + } + } + } + } + }, + "/api/connection-question-public/{id}": { + "get": { + "tags": [ + "Data Capture", + "Connection Questions", + "Open", + "Public" + ], + "summary": "Gets a Connection Question by ID", + "description": "**Data Access:**
\r\nREAD access to specified Connection Question metadata. Data is generally appropriate to share with all callers.\r\n\r\n**More Info:**
\r\nIntended for integration partners.", + "operationId": "GetQuestionById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns collection of matched Connection Questions.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + } + } + } + } + }, + "/api/connection-question-public/answer": { + "post": { + "tags": [ + "Data Capture", + "Connection Questions", + "Open", + "Public" + ], + "summary": "Submits new Answers to Connection Questions", + "description": "**Data Access:**
\r\nCREATE access on Connection Question Answers (Data Capture Area).\r\nCreates new Answer records for the specified Connection Questions and returns the results.\r\n\r\n**More Info:**
\r\n* Intended for integration partners.\r\n* Can be called authenticated or unauthenticated.\r\n* Also, caller can request anonymoity using Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionQuestions.ConnectionQuestionAnswersViewModel.IsAnonymous property.\r\n * When caller is authenticated, Answers will be associated to caller's own Person Record, unless caller requests anonymity.\r\n * When caller is not authenticated, and caller is not requesting anonymity, this endpoint will attempt to match an existing\r\n or create new Person Record using the submitted data in Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionQuestions.ConnectionQuestionAnswersViewModel.Person properties,\r\n following the standard business rules, and the Answers will be associated to that Person Record.", + "operationId": "CreateConnectionQuestionAnswers", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswersViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswersViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswersViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswersViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns created Person record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "400": { + "description": "POST body is not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "409": { + "description": "Record already exists with specified email." + } + } + } + }, + "/api/country": { + "get": { + "tags": [ + "Country" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAllCountries", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/custom-field": { + "get": { + "tags": [ + "CustomField" + ], + "summary": "Get custom fields for specific entity", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Read Event, Create Serving Opportunities, Update Serving Opportunities
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nREAD Access to Entity or Internal Access", + "operationId": "GetCustomFields", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeEntityTypeWide", + "in": "query", + "description": "True to include questions for whole entity type in addition to specific entity", + "schema": { + "type": "boolean" + } + }, + { + "name": "includeDeleted", + "in": "query", + "description": "True to include deleted questions", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Custom fields.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + }, + { + "Permissions": [ + "Create Serving Opportunities" + ] + }, + { + "Permissions": [ + "Update Serving Opportunities" + ] + } + ] + } + }, + "post": { + "tags": [ + "CustomField" + ], + "summary": "Add custom field to specific entity", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Entity.", + "operationId": "InsertCustomField", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionQuestions.CustomFieldViewModelCustom field to add", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Custom field.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + } + }, + "put": { + "tags": [ + "CustomField" + ], + "summary": "Upsert custom fields for specific entity", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Entity.", + "operationId": "UpsertCustomFields", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionQuestions.CustomFieldViewModelList of Custom field to upsert", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns Custom field.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + } + }, + "delete": { + "tags": [ + "CustomField" + ], + "summary": "Delete all custom fields in specific entity", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Entity.", + "operationId": "DeleteAllCustomFields", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Custom fields were deleted succesfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/custom-field/{questionId}": { + "put": { + "tags": [ + "CustomField" + ], + "summary": "Update custom field for specific entity", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Entity.", + "operationId": "UpdateCustomField", + "parameters": [ + { + "name": "questionId", + "in": "path", + "description": "Question ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionQuestions.CustomFieldViewModelCustom field to update", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Custom field.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + } + }, + "delete": { + "tags": [ + "CustomField" + ], + "summary": "Delete custom field from specific entity", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Entity.", + "operationId": "DeleteCustomField", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "questionId", + "in": "path", + "description": "Question ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Custom field was deleted succesfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/custom-field/answer": { + "get": { + "tags": [ + "CustomFieldAnswer" + ], + "summary": "Get answers for specific entity", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Manage Event Attendees, Manage Serving Opportunity Volunteers
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nREAD Access to Entity or Internal Access.", + "operationId": "GetAnswers", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Answer.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + }, + { + "Permissions": [ + "Manage Serving Opportunity Volunteers" + ] + } + ] + } + }, + "post": { + "tags": [ + "CustomFieldAnswer" + ], + "summary": "Add answer to specific entity", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Manage Event Attendees, Manage Serving Opportunity Volunteers
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Entity.", + "operationId": "InsertCustomField", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionQuestions.ConnectionQuestionAnswerViewModelAnswer to add", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Answer.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + }, + { + "Permissions": [ + "Manage Serving Opportunity Volunteers" + ] + } + ] + } + }, + "put": { + "tags": [ + "CustomFieldAnswer" + ], + "summary": "Upsert custom fields for specific entity", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Manage Event Attendees, Manage Serving Opportunity Volunteers
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Entity.", + "operationId": "UpsertCustomField", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionQuestions.ConnectionQuestionAnswerViewModelList of Answer to upsert", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns Answer.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + }, + { + "Permissions": [ + "Manage Serving Opportunity Volunteers" + ] + } + ] + } + }, + "delete": { + "tags": [ + "CustomFieldAnswer" + ], + "summary": "Deletes all custom field answers for specific entity and specified person", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Manage Event Attendees, Manage Serving Opportunity Volunteers
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE (DELETE) on Custom Field Answers for specified Entity and a single specified Person.", + "operationId": "DeleteAllCustomFields", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Custom fields were deleted succesfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + }, + { + "Permissions": [ + "Manage Serving Opportunity Volunteers" + ] + } + ] + } + } + }, + "/api/custom-field/answer/occurrence/{occurrenceId}": { + "get": { + "tags": [ + "CustomFieldAnswer" + ], + "summary": "Get answers for specific entity and occurrence", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Manage Event Attendees, Manage Serving Opportunity Volunteers
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nREAD Access to Entity or Internal Access.", + "operationId": "GetAnswersForOccurrence", + "parameters": [ + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeEntityWide", + "in": "query", + "description": "true to include entity wide answers", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Answer.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + }, + { + "Permissions": [ + "Manage Serving Opportunity Volunteers" + ] + } + ] + } + } + }, + "/api/custom-field/answer/{answerId}": { + "put": { + "tags": [ + "CustomFieldAnswer" + ], + "summary": "Update answer for specific entity", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Manage Event Attendees, Manage Serving Opportunity Volunteers
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Entity.", + "operationId": "UpdateCustomField", + "parameters": [ + { + "name": "answerId", + "in": "path", + "description": "Answer ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.ConnectionQuestions.ConnectionQuestionAnswerViewModelAnswer to update", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Answer.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + }, + { + "Permissions": [ + "Manage Serving Opportunity Volunteers" + ] + } + ] + } + }, + "delete": { + "tags": [ + "CustomFieldAnswer" + ], + "summary": "Delete answer from specific entity", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Manage Event Attendees, Manage Serving Opportunity Volunteers
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied for specified entity\r\n\r\n**Data Access:**
\r\nWRITE Access to Entity.", + "operationId": "DeleteCustomField", + "parameters": [ + { + "name": "answerId", + "in": "path", + "description": "Answer ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Answer was deleted succesfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + }, + { + "Permissions": [ + "Manage Serving Opportunity Volunteers" + ] + } + ] + } + } + }, + "/api/custom-field/answer/bulk-delete": { + "post": { + "tags": [ + "CustomFieldAnswer" + ], + "summary": "Deletes all custom field answers for specific Entity and multiple specified People", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Inline Authorization Checks:**
\r\nVerifying that we are authorized by Policy.
\r\nPresently, there is no use case for this operation to be performed by an authenticated user with permissions.\r\n\r\n**Data Access:**
\r\nWRITE (DELETE) on Custom Field Answers for specified Entity and multiple specified People.", + "operationId": "DeleteAllCustomFieldsForMultiplePeople", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_AnswerCustomFieldBulkDeletionRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_AnswerCustomFieldBulkDeletionRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_AnswerCustomFieldBulkDeletionRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_AnswerCustomFieldBulkDeletionRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/custom-field-public": { + "get": { + "tags": [ + "CustomFieldPublic" + ], + "summary": "Get custom fields for specific entity", + "description": "**Inline Authorization Checks:**
\r\nPublished entities validation is applied for specified entity", + "operationId": "GetCustomFields", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity name", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeEntityTypeWide", + "in": "query", + "description": "True to include questions for whole entity type in addition to specific entity", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Custom fields.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Entity not found." + } + } + } + }, + "/api/daily-devotional-content": { + "get": { + "tags": [ + "DailyDevotional" + ], + "summary": "Gets Daily Devotional By Year and Day", + "operationId": "GetDailyDevotionsContents", + "parameters": [ + { + "name": "year", + "in": "query", + "description": "Year of Daily Devotional", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dayOfYear", + "in": "query", + "description": "day of year of Daily Devotional", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Daily Devotionals based on a year and day of year" + } + } + } + }, + "/api/daily-devotional-content/list": { + "get": { + "tags": [ + "DailyDevotional" + ], + "summary": "Gets Daily Devotionals", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetDailyDevotionals", + "parameters": [ + { + "name": "timeZoneId", + "in": "query", + "description": "Time Zone Id", + "schema": { + "type": "string" + } + }, + { + "name": "numDays", + "in": "query", + "description": "past number of days from current day", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns all Daily Devotionals based on a past number of days and optional timeZoneId value or the current UTC Date and Time", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_DailyDevotionalContent" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_DailyDevotionalContent" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_DailyDevotionalContent" + } + } + } + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/daily-verse-content": { + "get": { + "tags": [ + "DailyVerse" + ], + "summary": "Gets Daily Verse By Year and Day", + "operationId": "GetDailyVerseContents", + "parameters": [ + { + "name": "year", + "in": "query", + "description": "Year of Daily Verse", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dayOfYear", + "in": "query", + "description": "day of year of Daily Verse", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Daily Verses based on a year and day of year" + } + } + } + }, + "/api/daily-verse-content/list": { + "get": { + "tags": [ + "DailyVerse" + ], + "summary": "Gets Daily Verses", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetDailyVerseAsync", + "parameters": [ + { + "name": "timeZoneId", + "in": "query", + "description": "Time Zone Id", + "schema": { + "type": "string" + } + }, + { + "name": "numDays", + "in": "query", + "description": "past number of days from current day", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns all Daily Verses based on a past number of days and optional timeZoneId value or the current UTC Date and Time", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_DailyVerseContent" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_DailyVerseContent" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_DailyVerseContent" + } + } + } + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/department": { + "get": { + "tags": [ + "Department" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "Get", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "Department" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "Create", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Department" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Department" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Department" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Department" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ], + "ModelParameterName": [ + "department" + ] + } + ] + } + } + }, + "/api/department/{id}": { + "delete": { + "tags": [ + "Department" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Church Locations
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Church Locations" + ] + } + ] + } + } + }, + "/api/email/verification-request": { + "put": { + "tags": [ + "EmailVerification" + ], + "operationId": "RequestEmailVerification", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/email/verification-request-retry": { + "put": { + "tags": [ + "EmailVerification" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "RetryVerification", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationFullfillmentViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationFullfillmentViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationFullfillmentViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationFullfillmentViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/email/verify": { + "post": { + "tags": [ + "EmailVerification" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "Verify", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationFullfillmentViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationFullfillmentViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationFullfillmentViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationFullfillmentViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/integration/email/privileged-verification": { + "put": { + "tags": [ + "EmailVerification" + ], + "summary": "End point to submit an Email Verification Request", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:people-email-verification
\r\n", + "operationId": "PrivilegedVerify", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_EmailVerificationRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:people-email-verification" + ] + } + ] + } + } + }, + "/api/rate-limit/endpoints": { + "get": { + "tags": [ + "Endpoint" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetEndpoints", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "Endpoint" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "PostEndpoint", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Endpoint" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Endpoint" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Endpoint" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Endpoint" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/rate-limit/endpoints/{endpointId}": { + "get": { + "tags": [ + "Endpoint" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetEndpointsById", + "parameters": [ + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "Endpoint" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "UpdateEndpoint", + "parameters": [ + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Endpoint" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Endpoint" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Endpoint" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Endpoint" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Endpoint" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "DeleteEndpoint", + "parameters": [ + { + "name": "endpointId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/export/ministry-member": { + "get": { + "tags": [ + "ExportDownload" + ], + "description": "**Authorization Policy:**
\r\nRequires DataExtractType: MinistryMember
\r\n", + "operationId": "DownloadMinistryRosterExport", + "parameters": [ + { + "name": "File", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Token", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresDataExtractTypes": [ + { + "DataExtractTypes": [ + "MinistryMember" + ] + } + ] + } + } + }, + "/api/export/person": { + "get": { + "tags": [ + "ExportDownload" + ], + "description": "**Authorization Policy:**
\r\nRequires DataExtractType: Person
\r\n", + "operationId": "DownloadPeopleExport", + "parameters": [ + { + "name": "File", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Token", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresDataExtractTypes": [ + { + "DataExtractTypes": [ + "Person" + ] + } + ] + } + } + }, + "/api/export/response-card": { + "get": { + "tags": [ + "ExportDownload" + ], + "description": "**Authorization Policy:**
\r\nRequires DataExtractType: ResponseCard
\r\n", + "operationId": "DownloadResponseCardExport", + "parameters": [ + { + "name": "File", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Token", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresDataExtractTypes": [ + { + "DataExtractTypes": [ + "ResponseCard" + ] + } + ] + } + } + }, + "/api/export/serving-opportunity-volunteer": { + "get": { + "tags": [ + "ExportDownload" + ], + "description": "**Authorization Policy:**
\r\nRequires DataExtractType: ServingOpportunityVolunteer
\r\n", + "operationId": "DownloadServingOpportunityVolunteerExport", + "parameters": [ + { + "name": "File", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Token", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresDataExtractTypes": [ + { + "DataExtractTypes": [ + "ServingOpportunityVolunteer" + ] + } + ] + } + } + }, + "/api/export/connection-form": { + "get": { + "tags": [ + "ExportDownload" + ], + "description": "**Authorization Policy:**
\r\nRequires DataExtractType: ConnectionForm
\r\n", + "operationId": "DownloadConnectionFormExport", + "parameters": [ + { + "name": "File", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Token", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresDataExtractTypes": [ + { + "DataExtractTypes": [ + "ConnectionForm" + ] + } + ] + } + } + }, + "/api/export/status": { + "get": { + "tags": [ + "ExportDownload" + ], + "operationId": "GetStatus", + "parameters": [ + { + "name": "ExpirationDateUtcTicks", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "FileName", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Type", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/export/history": { + "post": { + "tags": [ + "ExportHistory" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n", + "operationId": "AddExportHistory", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ExportHistory" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ExportHistory" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ExportHistory" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ExportHistory" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + }, + "get": { + "tags": [ + "ExportHistory" + ], + "summary": "Get filtered export history list", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Extract Person Data
\r\n", + "operationId": "GetHistory", + "parameters": [ + { + "name": "pageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Extract Person Data" + ] + } + ] + } + } + }, + "/api/export/history/count": { + "get": { + "tags": [ + "ExportHistory" + ], + "summary": "Get export history count by filter", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Extract Person Data
\r\n", + "operationId": "GetCountByHistoryId", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Extract Person Data" + ] + } + ] + } + } + }, + "/api/fact/{id}": { + "get": { + "tags": [ + "Fact" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Enter Metric Data for Current Period, Enter Metric Data for Any Period
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Enter Metric Data for Current Period" + ] + }, + { + "Permissions": [ + "Enter Metric Data for Any Period" + ] + } + ] + } + }, + "put": { + "tags": [ + "Fact" + ], + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/fact": { + "post": { + "tags": [ + "Fact" + ], + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/fact/upsert-many": { + "post": { + "tags": [ + "Fact" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:data-capture-fact, hc:internal-systems
\r\n", + "operationId": "UpsertMany", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FactLiteViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:data-capture-fact", + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/fact/data-entry": { + "get": { + "tags": [ + "Fact" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Enter Metric Data for Current Period, Enter Metric Data for Any Period
\r\n", + "operationId": "GetFactsForDataEntry", + "parameters": [ + { + "name": "ChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "VenueId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ScheduleEntityTypeId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ScheduleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "OccurrenceDate", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Enter Metric Data for Current Period" + ] + }, + { + "Permissions": [ + "Enter Metric Data for Any Period" + ] + } + ] + } + } + }, + "/api/file": { + "post": { + "tags": [ + "File" + ], + "operationId": "PostAsync", + "parameters": [ + { + "name": "path", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Looks up Follow Up (User Tasks) by Subject Entity Mapping", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD access to potentially many Follow Up Tasks, but light, top-level info only.\r\nIn particular, no Person data other than Unique ID, First Name and Last Name is returned.", + "operationId": "GetBySubjectMapping", + "parameters": [ + { + "name": "subjectEntityType", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "subjectEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskLiteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskLiteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskLiteViewModel" + } + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + }, + "post": { + "tags": [ + "FollowUpTask" + ], + "summary": "Creates a new Follow Up (User Task) given a Task Template ID, Subject Person, and optional additional Subject Mappings", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nCREATES a new Follow Up (User Task) given the specified parameters.\r\n\r\n**More Info:**
\r\nIntended for use for HC internal remote procedure calls (e.g. from Workflows Service processing Task Actions).\r\nNot really intended for use by the back-office client application or other consumers.", + "operationId": "CreateTask", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskCreationRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskCreationRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskCreationRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskCreationRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskBasicViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskBasicViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskBasicViewModel" + } + } + } + }, + "400": { + "description": "Bad Request" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/task/by-multiple-subjects": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Looks up Follow Up (User Tasks) by multiple Subject Entity Mappings", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD access to potentially many Follow Up Tasks, but light, top-level info only.\r\nIn particular, no Person data other than Unique ID, First Name and Last Name is returned.", + "operationId": "GetByMultipleSubjectMappings", + "parameters": [ + { + "name": "EntityTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ParsedEntityTypes", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "ParsedEntityIds", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskLiteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskLiteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskLiteViewModel" + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/task/{id}": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Fetches details of a single Follow Up (User Task) by ID", + "description": "**Inline Authorization Checks:**
\r\nAccess to the Follow Up (User Task) requires at least one of the following:\r\n* Being the Task Assignee\r\n* Being the Task Supervisor\r\n* Having Saddleback.Cm.Common.Contracts.Security.Permission.AllFollowUpTasksRead permission with a scope including the Task's Campus (Church Entity).\r\n\r\nSecondary permission checks are also performed on related Task subject data,\r\ne.g. the associated Person record, Connection Card Entry, etc. that may reduce\r\nor redact some of the data which is returned.\r\n\r\n**Data Access:**
\r\nREAD access to the full details of a single Follow Up (User Task), and at least some data/metadata about the\r\nsubjects of the Task (person, Connection Card Entry, etc.). Some of the subject data might be restricted by\r\nsecondary permissions checks.", + "operationId": "GetTaskDetails", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Task ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/close-by-dependencies": { + "post": { + "tags": [ + "FollowUpTask" + ], + "summary": "Closes (updates Status to \"Successful\") one more Follow Ups (User Tasks) given a collection of \"dependencies\" to specify which Follow Ups to target", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nUPDATES one more more Follow Ups (User Tasks).\r\nWill update Status, and may also assign some or all of the affected Follow Ups to the Supervisor for any that are presently Unclaimed.\r\n\r\n**More Info:**
\r\nIntended for use for HC internal remote procedure calls (e.g. from Workflows Service processing Task Actions).\r\nNot really intended for use by the back-office client application or other consumers.\r\n\r\nExample Use Case (CLASS Transitions/Person Milestone based Follow Ups):\r\n* Person completes CLASS 101.\r\n* The Follow Up Rule for CLASS 101 Milestone creates a User Task for someone at the church to \"shepherd\" the person into CLASS 201.\r\n* Person later completes CLASS 201.\r\n* If the earlier User Task is still open (In Progress, Blocked, etc.) we want the system to automatically move it into Successful closed status.", + "operationId": "CloseTasksByDependencies", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskSubjectMappingViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskSubjectMappingViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskSubjectMappingViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskSubjectMappingViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskBulkActionResultViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskBulkActionResultViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskBulkActionResultViewModel" + } + } + } + }, + "400": { + "description": "Bad Request" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/task/mine/closed": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets Completed Follow Up Inbox Summary Statistics and Task Batches assigned to the Context User", + "operationId": "GetMyCompletedTaskInboxSummary", + "parameters": [ + { + "name": "timeZone", + "in": "query", + "description": "User's current or preferred Time Zone (IANA identifier, e.g. America/Los_Angeles) to\r\nbe used for date/time related filtering and classification of Task data.\r\nOptional. Defaults to U.S. Pacific Time (America/Los_Angeles) if ommitted.", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/mine/closed/task-list": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets filtered/paginated list of Completed Follow Up User Tasks for a given Task Batch (defined by Task Template ID)", + "operationId": "GetMyCompletedTaskList", + "parameters": [ + { + "name": "TaskTemplateId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Statuses", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/mine/in-progress": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets In-Progress Follow Up Inbox Summary Statistics and Task Batches assigned to the Context User", + "operationId": "GetMyInProgressTaskInboxSummary", + "parameters": [ + { + "name": "timeZone", + "in": "query", + "description": "User's current or preferred Time Zone (IANA identifier, e.g. America/Los_Angeles) to\r\nbe used for date/time related filtering and classification of Task data.\r\nOptional. Defaults to U.S. Pacific Time (America/Los_Angeles) if ommitted.", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/mine/in-progress/task-list": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets filtered/paginated list of In-Progress Follow Up User Tasks for a given Task Batch (defined by Task Template ID)", + "operationId": "GetMyInProgressTaskList", + "parameters": [ + { + "name": "DueDateType", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_FollowUpTaskDueDateBucket" + } + }, + { + "name": "TaskTemplateId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Statuses", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/my-teams/unclaimed": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets In-Progress Unclaimed Follow Up Inbox Summary Statistics and Task Batches presently assigned to any Teams of which the Context User is a member", + "operationId": "GetMyTeamsUnclaimedTaskInbox", + "parameters": [ + { + "name": "timeZone", + "in": "query", + "description": "User's current or preferred Time Zone (IANA identifier, e.g. America/Los_Angeles) to\r\nbe used for date/time related filtering and classification of Task data.\r\nOptional. Defaults to U.S. Pacific Time (America/Los_Angeles) if ommitted.", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/my-teams/unclaimed/task-list": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets filtered/paginated list of In-Progress Unclaimed Follow Up User Tasks for a given Task Batch (defined by Task Template ID)", + "operationId": "GetUnclaimedTaskList", + "parameters": [ + { + "name": "DueDateType", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_FollowUpTaskDueDateBucket" + } + }, + { + "name": "TaskTemplateId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Statuses", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/mine/escalated": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets In-Progress Escalated Follow Up Inbox Summary Statistics for Tasks where the Context User is the Supervisor to whom the Tasks have been Escalated", + "operationId": "GetMyEscalatedTaskInboxSummary", + "parameters": [ + { + "name": "timeZone", + "in": "query", + "description": "User's current or preferred Time Zone (IANA identifier, e.g. America/Los_Angeles) to\r\nbe used for date/time related filtering and classification of Task data.\r\nOptional. Defaults to U.S. Pacific Time (America/Los_Angeles) if ommitted.", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/mine/escalated/task-list": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets filtered/paginated list of In-Progress Escalated Follow Up User Tasks for a given Task Batch (defined by Task Template ID)", + "operationId": "GetMyEscalatedTaskList", + "parameters": [ + { + "name": "DueDateType", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_FollowUpTaskDueDateBucket" + } + }, + { + "name": "TaskTemplateId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Statuses", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/management/overview": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets Summary data for high-level overview of all batches of Follow Up User Tasks for which the Context User is the Supervisor", + "operationId": "GetSupervisorTaskInboxSummary", + "parameters": [ + { + "name": "timeZone", + "in": "query", + "description": "User's current or preferred Time Zone (IANA identifier, e.g. America/Los_Angeles) to\r\nbe used for date/time related filtering and classification of Task data.\r\nOptional. Defaults to U.S. Pacific Time (America/Los_Angeles) if ommitted.", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/management/overview/{id}/stats": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets Statistics for a single Follow Up User Task Batch. Intended for use by Task Supervisors.", + "operationId": "GetSupervisorTaskBatchStatistics", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "timeZone", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "assigneeId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "unclaimed", + "in": "query", + "description": "", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/management/overview/{id}/task-list": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets filtered/paginated list of Follow Up User Tasks for a single Task Batch assigned to the specified Assignee and for which Context User is the Supervisor,", + "operationId": "GetSupervisorInProgressTaskList", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "AssigneeId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DueDateTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "TaskTemplateId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Statuses", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/management/overview/{id}/unclaimed-task-list": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets filtered/paginated list of Unclaimed Follow Up User Tasks for a Task Batch for which Context User is the Supervisor", + "operationId": "GetSupervisorUnclaimedTaskList", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DueDateTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "TaskTemplateId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Statuses", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/management/overview/all": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets Summary data for high-level overview of all batches of Follow Up User Tasks for which the caller is authorized by campus scoped permission", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read All Follow Up Tasks
\r\n
\r\n**Inline Authorization Checks:**
\r\nThe data will be filtered using the Campus (Church Entity) association of the Task Templates\r\ndepending on the scopes for the user's Saddleback.Cm.Common.Contracts.Security.Permission.AllFollowUpTasksRead permission\r\nassignment.\r\n\r\n**More Info:**
\r\nIntended for the \"All Follow Ups\" / \"Campus Pastor\" Use Case.", + "operationId": "GetAllFollowUpsTaskInboxSummary", + "parameters": [ + { + "name": "timeZone", + "in": "query", + "description": "User's current or preferred Time Zone (IANA identifier, e.g. America/Los_Angeles) to\r\nbe used for date/time related filtering and classification of Task data.\r\nOptional. Defaults to U.S. Pacific Time (America/Los_Angeles) if ommitted.", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read All Follow Up Tasks" + ] + } + ] + } + } + }, + "/api/task/management/overview/all/{id}/stats": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets Statistics for a single Follow Up User Task Batch. Intended for the \"All Follow Ups\" / \"Campus Pastor\" Use Case.", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read All Follow Up Tasks
\r\n
\r\n**Inline Authorization Checks:**
\r\nThe caller's Saddleback.Cm.Common.Contracts.Security.Permission.AllFollowUpTasksRead permission\r\nassignment scope must include the Campus (Church Entity) associated to the\r\nrequested Task Template.", + "operationId": "GetAllFollowUpsTaskBatchStatistics", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "timeZone", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "assigneeId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "unclaimed", + "in": "query", + "description": "", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read All Follow Up Tasks" + ] + } + ] + } + } + }, + "/api/task/management/overview/all/{id}/task-list": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets filtered/paginated list of Follow Up User Tasks for a single Task Batch assigned to the specified Assignee. Intended for the \"All Follow Ups\" / \"Campus Pastor\" Use Case.", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read All Follow Up Tasks
\r\n
\r\n**Inline Authorization Checks:**
\r\nThe caller's Saddleback.Cm.Common.Contracts.Security.Permission.AllFollowUpTasksRead permission\r\nassignment scope must include the Campus (Church Entity) associated to the\r\nrequested Task Template.", + "operationId": "GetAllFollowUpsIndividualInProgressTaskList", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "AssigneeId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DueDateTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "TaskTemplateId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Statuses", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read All Follow Up Tasks" + ] + } + ] + } + } + }, + "/api/task/management/overview/all/{id}/unclaimed-task-list": { + "get": { + "tags": [ + "FollowUpTask" + ], + "summary": "Gets filtered/paginated list of Unclaimed Follow Up User Tasks for a Task Batch. Intended for the \"All Follow Ups\" / \"Campus Pastor\" Use Case.", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read All Follow Up Tasks
\r\n
\r\n**Inline Authorization Checks:**
\r\nThe caller's Saddleback.Cm.Common.Contracts.Security.Permission.AllFollowUpTasksRead permission\r\nassignment scope must include the Campus (Church Entity) associated to the\r\nrequested Task Template.", + "operationId": "GetAllFollowUpsUnclaimedTaskList", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DueDateTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "TaskTemplateId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Statuses", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read All Follow Up Tasks" + ] + } + ] + } + } + }, + "/api/task/{id}/comment": { + "post": { + "tags": [ + "FollowUpTask" + ], + "operationId": "PostComment", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskCommentViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskCommentViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskCommentViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskCommentViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/{taskId}/comment/{commentId}": { + "put": { + "tags": [ + "FollowUpTask" + ], + "operationId": "UpdateComment", + "parameters": [ + { + "name": "taskId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "commentId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskCommentViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskCommentViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskCommentViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskCommentViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "FollowUpTask" + ], + "operationId": "DeleteComment", + "parameters": [ + { + "name": "taskId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "commentId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/assignee": { + "put": { + "tags": [ + "FollowUpTask" + ], + "operationId": "UpdateAssigneePerson", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskReassignmentRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskReassignmentRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskReassignmentRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskReassignmentRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/assigned-team": { + "put": { + "tags": [ + "FollowUpTask" + ], + "operationId": "UpdateAssigneeTeam", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamTaskReassignmentViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamTaskReassignmentViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamTaskReassignmentViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamTaskReassignmentViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/escalate": { + "put": { + "tags": [ + "FollowUpTask" + ], + "operationId": "Escalate", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskEscalationRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskEscalationRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskEscalationRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskEscalationRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/status": { + "put": { + "tags": [ + "FollowUpTask" + ], + "operationId": "UpdateStatus", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskStatusUpdateRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskStatusUpdateRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskStatusUpdateRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskStatusUpdateRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/priority-flag": { + "put": { + "tags": [ + "FollowUpTask" + ], + "operationId": "SetHighPriorityFlag", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskBulkActionRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskBulkActionRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskBulkActionRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskBulkActionRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/clear-priority-flag": { + "put": { + "tags": [ + "FollowUpTask" + ], + "operationId": "ClearHighPriorityFlag", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskBulkActionRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskBulkActionRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskBulkActionRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FollowUpTaskBulkActionRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/{taskTemplateId}/email": { + "post": { + "tags": [ + "FollowUpTask" + ], + "summary": "Sends an Email Communication to the the people associated to the specified Follow Up Tasks", + "description": "**Data Access:**
\r\nSends Email Communication (Notification) to specified recipients.", + "operationId": "SendEmailToTaskSubjects", + "parameters": [ + { + "name": "taskTemplateId", + "in": "path", + "description": "Task Template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "AssigneeId", + "in": "query", + "description": "If querying for Tasks assigned to someone other than the context user (e.g. as in Supervisor or in \"All Follow Ups\" scenarios),\r\nthis should be the Unique ID of the Person/User whose Tasks are being requested.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DueDateTypes", + "in": "query", + "description": "Collection of Due Date \"Buckets\" ( \"Upcoming\", \"DueToday\", \"PastDue\" )
\r\nTypically there should only be one for a specific query, although Supervisor and \"All Follow Ups\" queries allow multiple.", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "description": "Free-text search term, if any", + "schema": { + "type": "string" + } + }, + { + "name": "QueryType", + "in": "query", + "description": "Which kind of query is being performed", + "schema": { + "$ref": "#/components/schemas/Core_Model_FollowUpTaskQueryType" + } + }, + { + "name": "Statuses", + "in": "query", + "description": "Task Statuses for the query", + "schema": { + "type": "string" + } + }, + { + "name": "TimeZone", + "in": "query", + "description": "Time Zone used to evaluate Due Date Bucket parameters when filtering Tasks", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Message specification.
NOTE:recipientIds should be Follow Up Task IDs (not Person IDs).", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/{taskTemplateId}/sms": { + "post": { + "tags": [ + "FollowUpTask" + ], + "summary": "Sends an SMS (Text Message) Communication to the the people associated to the specified Follow Up Tasks", + "description": "**Data Access:**
\r\nSends SMS (Text Message) Communication (Notification) to specified recipients.", + "operationId": "SendSmsToTaskSubjects", + "parameters": [ + { + "name": "taskTemplateId", + "in": "path", + "description": "Task Template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "AssigneeId", + "in": "query", + "description": "If querying for Tasks assigned to someone other than the context user (e.g. as in Supervisor or in \"All Follow Ups\" scenarios),\r\nthis should be the Unique ID of the Person/User whose Tasks are being requested.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DueDateTypes", + "in": "query", + "description": "Collection of Due Date \"Buckets\" ( \"Upcoming\", \"DueToday\", \"PastDue\" )
\r\nTypically there should only be one for a specific query, although Supervisor and \"All Follow Ups\" queries allow multiple.", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "description": "Free-text search term, if any", + "schema": { + "type": "string" + } + }, + { + "name": "QueryType", + "in": "query", + "description": "Which kind of query is being performed", + "schema": { + "$ref": "#/components/schemas/Core_Model_FollowUpTaskQueryType" + } + }, + { + "name": "Statuses", + "in": "query", + "description": "Task Statuses for the query", + "schema": { + "type": "string" + } + }, + { + "name": "TimeZone", + "in": "query", + "description": "Time Zone used to evaluate Due Date Bucket parameters when filtering Tasks", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "SMS Message specification.
NOTE:recipientIds should be Follow Up Task IDs (not Person IDs).", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task/{taskTemplateId}/email-attachment": { + "post": { + "tags": [ + "FollowUpTask" + ], + "summary": "Upload a File for Email Attachment", + "description": "**Data Access:**
\r\nUploads the file to cloud storage (Amazon S3) for temporary storage so it can be sent as an email attachment.", + "operationId": "UploadAttachment", + "parameters": [ + { + "name": "taskTemplateId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "File is empty.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + } + } + }, + "/api/task/follow-up-report": { + "get": { + "tags": [ + "FollowUpTask" + ], + "operationId": "GetFollowUpReport", + "parameters": [ + { + "name": "daysToGoBack", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityIds", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/task-template/{id}": { + "get": { + "tags": [ + "FollowUpTaskTemplate" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Manage Follow Up Rules
\r\n", + "operationId": "GetTaskTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + }, + "put": { + "tags": [ + "FollowUpTaskTemplate" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Follow Up Rules
\r\n", + "operationId": "UpdateTaskTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskTemplateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskTemplateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/task-template": { + "post": { + "tags": [ + "FollowUpTaskTemplate" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Follow Up Rules
\r\n", + "operationId": "CreateTaskTemplate", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskTemplateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_FollowUpTaskTemplateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/integration/giving/payment": { + "put": { + "tags": [ + "GivingPayment" + ], + "operationId": "Put", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_PaymentSearchDocument" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_PaymentSearchDocument" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_PaymentSearchDocument" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_PaymentSearchDocument" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/integration/giving/person": { + "put": { + "tags": [ + "GivingPerson" + ], + "operationId": "Put", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_IndividualProfileSearchDocument" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_IndividualProfileSearchDocument" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_IndividualProfileSearchDocument" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_IndividualProfileSearchDocument" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + }, + "post": { + "tags": [ + "GivingPerson" + ], + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_IndividualProfileSearchDocument" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_IndividualProfileSearchDocument" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_IndividualProfileSearchDocument" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_DataSubscriptionPayload_IndividualProfileSearchDocument" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/hc-platform-events": { + "get": { + "tags": [ + "HCPlatformEvents" + ], + "summary": "Get the list of defined HC Platform Event Topics and their supported Actions", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n
\r\n**Data Access:**
\r\nREAD access to a list of Event Grid topics

\r\n**More Info:**
\r\nThis is intended to provide a quick way for developers to see what Events are available for subscription", + "operationId": "Get", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "object", + "additionalProperties": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "text/json": { + "schema": { + "type": "object", + "additionalProperties": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ProblemDetails" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/help-content/{contentId}": { + "get": { + "tags": [ + "HelpContent" + ], + "summary": "Returns HelpContent from provider by contenteId", + "operationId": "GetHelpContentByContentId", + "parameters": [ + { + "name": "contentId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "versionId", + "in": "query", + "description": "optional", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/help-content": { + "get": { + "tags": [ + "HelpContent" + ], + "summary": "Returns all published HelpContent from the provider filtered by contentType", + "operationId": "GetAllHelpContent", + "parameters": [ + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/help-content/filter": { + "get": { + "tags": [ + "HelpContent" + ], + "summary": "Returns help contents by the specified module and name. Will return all if null", + "operationId": "GetFilteredHelpContent", + "parameters": [ + { + "name": "module", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "publishedOnly", + "in": "query", + "description": "", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/help-content/search": { + "get": { + "tags": [ + "HelpContent" + ], + "summary": "Search for help contents Containing title", + "operationId": "GetHelpContentByTitle", + "parameters": [ + { + "name": "title", + "in": "query", + "description": "Display Text", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/import/file": { + "post": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "UploadFile", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/preview": { + "post": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "Preview", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportMappingPreviewViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportMappingPreviewViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportMappingPreviewViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportMappingPreviewViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/ping": { + "post": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Perform Person Data Imports
\r\n", + "operationId": "PingImportService", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/current": { + "get": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Perform Person Data Imports
\r\n", + "operationId": "GetCurrentImports", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/start": { + "post": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "StartImport", + "parameters": [ + { + "name": "dataSourceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportMappingViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportMappingViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportMappingViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportMappingViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/stop": { + "post": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "StopImport", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/finalize": { + "post": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "FinalizeImport", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/{id}/reindex": { + "post": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "Reindex", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/{id}/find-duplicates": { + "post": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "FindDuplicates", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/reopen": { + "post": { + "tags": [ + "Import" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "ReopenImport", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/field-map": { + "get": { + "tags": [ + "ImportFieldMapping" + ], + "summary": "Get all field mappings or by data source id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "dataSourceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + }, + "post": { + "tags": [ + "ImportFieldMapping" + ], + "summary": "Create a new field mapping", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "CreateImportFieldMapping", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportFieldMappingViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportFieldMappingViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportFieldMappingViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportFieldMappingViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + } + }, + "/api/import/field-map/{id}": { + "get": { + "tags": [ + "ImportFieldMapping" + ], + "summary": "Get a field mapping by id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + }, + "put": { + "tags": [ + "ImportFieldMapping" + ], + "summary": "Update the field mapping", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "UpdateImportFieldMapping", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportFieldMappingViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportFieldMappingViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportFieldMappingViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportFieldMappingViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + }, + "delete": { + "tags": [ + "ImportFieldMapping" + ], + "summary": "Delete the field mapping", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "DeleteImportFieldMapping", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + } + }, + "/api/import/history": { + "get": { + "tags": [ + "ImportHistory" + ], + "summary": "Get filtered import history list", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "GetHistory", + "parameters": [ + { + "name": "sourceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/history/count": { + "get": { + "tags": [ + "ImportHistory" + ], + "summary": "Get import history count by filter", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "GetCountByHistoryId", + "parameters": [ + { + "name": "sourceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/record/history/{historyId}": { + "get": { + "tags": [ + "ImportRecord" + ], + "summary": "Get filtered import records", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "GetByHistoryId", + "parameters": [ + { + "name": "historyId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + } + }, + { + "name": "personAction", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordAction" + } + }, + { + "name": "personActionStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + } + }, + { + "name": "milestoneStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + } + }, + { + "name": "milestoneAction", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordAction" + } + }, + { + "name": "milestoneActionStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + } + }, + { + "name": "firstNameFilter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/record/history/{historyId}/count": { + "get": { + "tags": [ + "ImportRecord" + ], + "summary": "Get import records count", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "GetCountByHistoryId", + "parameters": [ + { + "name": "historyId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + } + }, + { + "name": "personAction", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordAction" + } + }, + { + "name": "personActionStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + } + }, + { + "name": "milestoneStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + } + }, + { + "name": "milestoneAction", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordAction" + } + }, + { + "name": "milestoneActionStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + } + }, + { + "name": "firstNameFilter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/import/record/{id}": { + "get": { + "tags": [ + "ImportRecord" + ], + "summary": "Get a import record by id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + }, + "put": { + "tags": [ + "ImportRecord" + ], + "summary": "Update the import record", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Perform Person Data Imports
\r\n", + "operationId": "UpdateImportRecord", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportRecordViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportRecordViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportRecordViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ImportRecordViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Perform Person Data Imports" + ] + } + ] + } + } + }, + "/api/insights/weekend-flash-report": { + "get": { + "tags": [ + "Insights" + ], + "summary": "Get metric statistics for current week", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Weekend Flash Report
\r\n
\r\n**Data Access:**
\r\nREAD Access to data capture metrics data, sourced in realtime from the operational data store", + "operationId": "GetWeekendFlashReportFromOperationalDataStore", + "parameters": [ + { + "name": "category", + "in": "query", + "description": "Category Name", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns statistics.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_FactStatisticsViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_FactStatisticsViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_FactStatisticsViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Weekend Flash Report" + ] + } + ] + } + } + }, + "/api/insights/warehouse-dashboard": { + "get": { + "tags": [ + "Insights" + ], + "summary": "Get data capture metric statistics", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Church Insights Dashboard
\r\n
\r\n**Data Access:**
\r\nREAD Access to Insights Dashboard data sourced from data warehouse", + "operationId": "GetDashboardReportFromDataWarehouse", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Statistics Type (Saddleback.Cm.Contracts.Models.Insights.Warehouse.FactStatisticsType)", + "schema": { + "$ref": "#/components/schemas/Core_Model_FactStatisticsType" + } + }, + { + "name": "category", + "in": "query", + "description": "Metrics Category (e.g. Attendance, Baptisms, Salvations, etc.)", + "schema": { + "type": "string" + } + }, + { + "name": "regionId", + "in": "query", + "description": "ID of a \"Region\" (a grouping of Campuses/Church Entities by geography or other criteria useful for insights and reporting)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityIds", + "in": "query", + "description": "Comma separated list of Church Entity (Campus) IDs", + "schema": { + "type": "string" + } + }, + { + "name": "yearsToGoBack", + "in": "query", + "description": "Number of years to look back. Defaults to 2.", + "schema": { + "type": "integer", + "format": "int32", + "default": 2 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Data Capture Metric Statistics.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CategoryStatistics" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CategoryStatistics" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CategoryStatistics" + } + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized; does not have permission to Manage Worship Services." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Church Insights Dashboard" + ] + } + ] + } + } + }, + "/api/insights/warehouse-dashboard/campus": { + "get": { + "tags": [ + "Insights" + ], + "summary": "Get the data warehouse list of Campuses by Region", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetCampusesByRegion", + "parameters": [ + { + "name": "regionId", + "in": "query", + "description": "ID of a \"Region\" (a grouping of Campuses/Church Entities by geography or other criteria useful for insights and reporting", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Region" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Region" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Region" + } + } + } + } + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/insights/warehouse-dashboard/class-data": { + "get": { + "tags": [ + "Insights" + ], + "summary": "Get CLASS data capture metric statistics", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Church Insights Dashboard
\r\n
\r\n**Data Access:**
\r\nREAD Access to Insights Dashboard data sourced from data warehouse", + "operationId": "GetDashboardClassDataReportFromDataWarehouse", + "parameters": [ + { + "name": "regionId", + "in": "query", + "description": "ID of a \"Region\" (a grouping of Campuses/Church Entities by geography or other criteria useful for insights and reporting)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityIds", + "in": "query", + "description": "Comma separated list of Church Entity (Campus) IDs", + "schema": { + "type": "string" + } + }, + { + "name": "yearsToGoBack", + "in": "query", + "description": "Number of years to look back. Defaults to 2.", + "schema": { + "type": "integer", + "format": "int32", + "default": 2 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CategoryStatistics" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CategoryStatistics" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CategoryStatistics" + } + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Church Insights Dashboard" + ] + } + ] + } + } + }, + "/api/insights/warehouse-dashboard/region": { + "get": { + "tags": [ + "Insights" + ], + "summary": "Get the data warehouse reporting Regions", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetRegions", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Region" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Region" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Region" + } + } + } + } + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/insights/person/{personId}/core-milestone": { + "get": { + "tags": [ + "Insights" + ], + "summary": "Get Person's Core milestones by person unique id", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Milestones
\r\n", + "operationId": "GetCoreMilestones", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "PersonUniqueId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Milestones" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/insights/person/core-milestone": { + "get": { + "tags": [ + "Insights" + ], + "summary": "Get Core milestones for a specified list of person unique ids", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Person Milestones
\r\n", + "operationId": "GetCoreMilestones", + "parameters": [ + { + "name": "personIds", + "in": "query", + "description": "PersonUniqueIds", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Milestones" + ] + } + ] + } + } + }, + "/api/insights/person/core-milestone-internal": { + "post": { + "tags": [ + "Insights" + ], + "summary": "Get Core milestones for a specified list of person unique ids", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD Access to Communication Templates.\r\n\r\n**More Info:**
\r\nThis operation is presently restricted to callers with 'Internal System' resource scope,\r\nas it is presently only used by REST SDK for obtaining Communication Templates in other Microservices.", + "operationId": "GetCoreMilestonesInternal", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "PersonUniqueIds", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns CoreMilestonesViewModel.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/insights/person/{personUniqueId}/engagement": { + "get": { + "tags": [ + "Insights" + ], + "summary": "Get Engagment Timeline data for specified person", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Engagement
\r\n
\r\n**Data Access:**
\r\nREAD Access to Person Engagements.", + "operationId": "GetEngagements", + "parameters": [ + { + "name": "personUniqueId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDateUtc", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "endDateUtc", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "zoomLevel", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Core_Model_EngagementZoomLevel" + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageSize", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns EngagementViewModel.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_EngagementViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_EngagementViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_EngagementViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personUniqueId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Engagement" + ], + "RouteParameters": [ + "personUniqueId" + ] + } + ] + } + } + }, + "/api/insights/version": { + "get": { + "tags": [ + "Insights" + ], + "summary": "Gets the CI Warehouse version", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetVersion", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/import/data-source": { + "get": { + "tags": [ + "IntegrationDataSource" + ], + "summary": "Get all data sources", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + }, + "post": { + "tags": [ + "IntegrationDataSource" + ], + "summary": "Create a new data source", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "CreateIntegrationDataSource", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IntegrationDataSourceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IntegrationDataSourceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IntegrationDataSourceViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IntegrationDataSourceViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + } + }, + "/api/import/data-source/{id}": { + "get": { + "tags": [ + "IntegrationDataSource" + ], + "summary": "Get a data source by id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + }, + "put": { + "tags": [ + "IntegrationDataSource" + ], + "summary": "Update the data source", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "UpdateIntegrationDataSource", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IntegrationDataSourceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IntegrationDataSourceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IntegrationDataSourceViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_IntegrationDataSourceViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + }, + "delete": { + "tags": [ + "IntegrationDataSource" + ], + "summary": "Delete the data source", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Integration Data Sources
\r\n", + "operationId": "DeleteIntegrationDataSource", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Integration Data Sources" + ] + } + ] + } + } + }, + "/api/rate-limit/ipAddresses": { + "get": { + "tags": [ + "IpAddress" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetIpAddresses", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "IpAddress" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "PostIpAddress", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_IpAddress" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_IpAddress" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_IpAddress" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_IpAddress" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/rate-limit/ipAddresses/{ipAddressId}": { + "get": { + "tags": [ + "IpAddress" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetIpAddressById", + "parameters": [ + { + "name": "ipAddressId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "IpAddress" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "UpdateIpAddressById", + "parameters": [ + { + "name": "ipAddressId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_IpAddress" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_IpAddress" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_IpAddress" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_IpAddress" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/rate-limit/ipAddresses/policy": { + "get": { + "tags": [ + "IpAddress" + ], + "operationId": "GetIpPolicy", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/rate-limit/ipAddresses/{ipAddressId}/rules": { + "get": { + "tags": [ + "IpAddress" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetRateLimitRuleByIpAddressId", + "parameters": [ + { + "name": "ipAddressId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "IpAddress" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "PostIpRateLimitRules", + "parameters": [ + { + "name": "ipAddressId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/rate-limit/ipAddresses/{ipAddressId}/rules/{ruleId}": { + "put": { + "tags": [ + "IpAddress" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "UpdateIpAddressRule", + "parameters": [ + { + "name": "ipAddressId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ruleId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "delete": { + "tags": [ + "IpAddress" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "DeleteIpAddressRule", + "parameters": [ + { + "name": "ipAddressId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ruleId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/media": { + "get": { + "tags": [ + "Media" + ], + "operationId": "GetAll", + "parameters": [ + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "post": { + "tags": [ + "Media" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Media
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Media" + ] + } + ] + } + } + }, + "/api/media/{id}": { + "get": { + "tags": [ + "Media" + ], + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "Media" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Media
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Media" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Media" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Media
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Media" + ] + } + ] + } + } + }, + "/api/media/playlist": { + "get": { + "tags": [ + "Media" + ], + "operationId": "GetByPlaylistid", + "parameters": [ + { + "name": "playlistId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/media/channel": { + "get": { + "tags": [ + "Media" + ], + "operationId": "GetByChannelid", + "parameters": [ + { + "name": "channelId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/media/channel/top": { + "get": { + "tags": [ + "Media" + ], + "operationId": "GetByChannelid", + "parameters": [ + { + "name": "channelId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "top", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/media/{id}/tags": { + "put": { + "tags": [ + "Media" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Media
\r\n", + "operationId": "PutTags", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Media" + ] + } + ] + } + }, + "get": { + "tags": [ + "Media" + ], + "operationId": "GetTags", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/media/version": { + "get": { + "tags": [ + "Media" + ], + "operationId": "GetVersion1", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/media/feed/rss/{id}/{top}": { + "get": { + "tags": [ + "MediaFeed" + ], + "operationId": "GetRssFeedByPodcastId", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "top", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "getAllMedia", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "head": { + "tags": [ + "MediaFeed" + ], + "operationId": "GetRssFeedByPodcastId", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "top", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "getAllMedia", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/media/search-fields": { + "get": { + "tags": [ + "MediaSearch" + ], + "operationId": "GetSearchFields", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/media/search": { + "get": { + "tags": [ + "MediaSearch" + ], + "operationId": "SearchBibleVerse", + "parameters": [ + { + "name": "q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "pages", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/media/search/text": { + "get": { + "tags": [ + "MediaSearch" + ], + "operationId": "Search", + "parameters": [ + { + "name": "q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "pages", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/subsplash/media/{mediaId}/{podcastId}": { + "get": { + "tags": [ + "MediaSubsplash" + ], + "operationId": "GetSubsplashMedia", + "parameters": [ + { + "name": "mediaId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "podcastId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/subsplash/playlist/{playlistId}/{podcastId}": { + "get": { + "tags": [ + "MediaSubsplash" + ], + "operationId": "GetSubsplashPlaylist", + "parameters": [ + { + "name": "playlistId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "podcastId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/subsplash/podcast/{podcastId}": { + "get": { + "tags": [ + "MediaSubsplash" + ], + "operationId": "GetSubsplashPodcast", + "parameters": [ + { + "name": "podcastId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/metric-age-group": { + "get": { + "tags": [ + "MetricAgeGroup" + ], + "summary": "Get metric age groups", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Metrics, Enter Metric Data for Current Period, Enter Metric Data for Any Period
\r\n
\r\n**Data Access:**
\r\nREAD Access to Metrics", + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns all metric age groups." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + }, + { + "Permissions": [ + "Enter Metric Data for Current Period" + ] + }, + { + "Permissions": [ + "Enter Metric Data for Any Period" + ] + } + ] + } + }, + "post": { + "tags": [ + "MetricAgeGroup" + ], + "summary": "Create a metric age group", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Metrics
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Metrics", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Web.ViewModels.DataCapture.MetricAgeGroupViewModelMetric age group data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricAgeGroupViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricAgeGroupViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricAgeGroupViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricAgeGroupViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns created Metric age group." + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + } + ] + } + } + }, + "/api/metric-age-group/{id}": { + "put": { + "tags": [ + "MetricAgeGroup" + ], + "summary": "Update the metric age group", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Metrics
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Metrics", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Metric age group ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Web.ViewModels.DataCapture.MetricAgeGroupViewModelMetric age group data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricAgeGroupViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricAgeGroupViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricAgeGroupViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricAgeGroupViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated Metric age group." + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + } + ] + } + }, + "delete": { + "tags": [ + "MetricAgeGroup" + ], + "summary": "Delete the metric age group", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Metrics
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Metrics", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Metric age group ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Metric age group was deleted successfully." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + } + ] + } + } + }, + "/api/metric-category": { + "get": { + "tags": [ + "MetricCategory" + ], + "summary": "Get metric categories", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Metrics, Enter Metric Data for Current Period, Enter Metric Data for Any Period
\r\n
\r\n**Data Access:**
\r\nREAD Access to Metrics", + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns all metric categories." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + }, + { + "Permissions": [ + "Enter Metric Data for Current Period" + ] + }, + { + "Permissions": [ + "Enter Metric Data for Any Period" + ] + } + ] + } + }, + "post": { + "tags": [ + "MetricCategory" + ], + "summary": "Create a metric category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Metrics
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Metrics", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Web.ViewModels.DataCapture.MetricCategoryViewModelMetric category data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns created Metric category." + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + } + ] + } + } + }, + "/api/metric-category/{id}": { + "get": { + "tags": [ + "MetricCategory" + ], + "summary": "Get metric category by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Metrics, Enter Metric Data for Current Period, Enter Metric Data for Any Period
\r\n
\r\n**Data Access:**
\r\nREAD Access to Metrics", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Metric category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found metric category." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + }, + { + "Permissions": [ + "Enter Metric Data for Current Period" + ] + }, + { + "Permissions": [ + "Enter Metric Data for Any Period" + ] + } + ] + } + }, + "put": { + "tags": [ + "MetricCategory" + ], + "summary": "Update the metric category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Metrics
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Metrics", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Metric category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Web.ViewModels.DataCapture.MetricCategoryViewModelMetric category data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MetricCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated Metric category." + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + } + ] + } + }, + "delete": { + "tags": [ + "MetricCategory" + ], + "summary": "Delete the metric category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Metrics
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Metrics", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Metric category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Metric category was deleted successfully." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + } + ] + } + } + }, + "/api/ministry": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Retrieves paginated list of Central Ministries, by Status", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a list of of Ministries\r\n\r\n**More Info:**
\r\nPowers \"Browse Ministries\" functionality.", + "operationId": "GetAll", + "parameters": [ + { + "name": "status", + "in": "query", + "description": "Ministry Status. 0 = Pending Approval, 1 = Open (Active), 2 = Closed (Inactive)\r\nSee Saddleback.Cm.Contracts.Models.Ministries.MinistryStatus", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size for pagination/load more.", + "schema": { + "type": "integer", + "format": "int32", + "default": 50 + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number for pagination/load more.", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Ministries by Status", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ] + } + ] + } + }, + "post": { + "tags": [ + "Ministry" + ], + "summary": "Create Ministry", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Create Global Ministry
\r\n
\r\n**Data Access:**
\r\nWRITE Access to an individual Ministries", + "operationId": "CreateMinistry", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.Ministries.MinistryViewModelCreated ministry data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the Ministry" + }, + "404": { + "description": "Not found" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "409": { + "description": "Ministry data conflict." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Create Global Ministry" + ] + } + ] + } + } + }, + "/api/ministry/names": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Retrieves ministry names (filtered by status if necessary)", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a list of of Ministries\r\n\r\n**More Info:**
\r\nUsed for ministry list in UI comboboxes, like 'Related ministries'", + "operationId": "GetNames", + "parameters": [ + { + "name": "status", + "in": "query", + "description": "Ministry Status. \r\nSee Saddleback.Cm.Contracts.Models.Ministries.MinistryStatus", + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Ministries by Status", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_NamedEntity" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_NamedEntity" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_NamedEntity" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ] + } + ] + } + } + }, + "/api/ministry/{id}": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Gets a Ministry by ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to an individual Ministries", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeRelationships", + "in": "query", + "description": "If true, include the relationships. If false, just return base information.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Ministry", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + } + } + }, + "404": { + "description": "Not found" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ], + "RouteParameters": [ + "id" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + }, + "put": { + "tags": [ + "Ministry" + ], + "summary": "Update Ministry", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Global Ministries Details
\r\n
\r\n**Data Access:**
\r\nWRITE Access to an individual Ministries", + "operationId": "UpdateMinistry", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.Ministries.MinistryViewModelUpdated ministry data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the Ministry" + }, + "404": { + "description": "Not found" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "409": { + "description": "Deactivated ministry has open serving opportunities or non-empty interested queue." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Global Ministries Details" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Ministry" + ], + "summary": "Delete Ministry", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Global Ministries Details
\r\n
\r\n**Data Access:**
\r\nWRITE Access to an individual Ministries", + "operationId": "DeleteMinistry", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ministry was deleted successfully" + }, + "404": { + "description": "Not found" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Global Ministries Details" + ] + } + ] + } + } + }, + "/api/ministry/{id}/lite": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Gets a lite Ministry data by ID", + "description": "**Data Access:**
\r\nREAD Access to an individual Ministries", + "operationId": "GetLiteById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeRelationships", + "in": "query", + "description": "If true, include the relationships. If false, just return base information.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Ministry", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + } + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/api/ministry/list": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Gets a Ministry by ID", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Access Ministry Central
\r\n
\r\n**Data Access:**
\r\nREAD Access to one or more individual Ministries", + "operationId": "GetByIds", + "parameters": [ + { + "name": "ministryIds", + "in": "query", + "description": "Comma separated Ministry Ids", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Ministry", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + } + } + }, + "404": { + "description": "Not found" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + } + ] + } + } + }, + "/api/ministry/location-leader": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Gets a Ministry with location leader by ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Ministry Central
\r\n
\r\n**Data Access:**
\r\nREAD Access to one or more individual Ministries", + "operationId": "GetMinistriesWithLocationLeaderById", + "parameters": [ + { + "name": "ministryIds", + "in": "query", + "description": "Comma separated Ministry Ids", + "schema": { + "type": "string" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "CHurch entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Ministry", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + } + } + }, + "404": { + "description": "Not found" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + } + ] + } + } + }, + "/api/ministry/{id}/can-deactivate": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Can Ministry be deactivated", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to an individual Ministries", + "operationId": "CanDeactivate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ministry can be deactivated" + }, + "400": { + "description": "Ministry is already deactivated." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + }, + "409": { + "description": "Ministry has open serving opportunities or non-empty interested queue." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/ministry/{id}/can-change-publish/{publish}": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Can Ministry change publish state", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to an individual Ministries", + "operationId": "CanChangePublishState", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "publish", + "in": "path", + "description": "New publish state", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ministry can change publish state" + }, + "400": { + "description": "Ministry is inactive." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + }, + "409": { + "description": "Ministry can't change publish state." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/ministry/leaders": { + "get": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries
\r\n", + "operationId": "GetLeaders", + "parameters": [ + { + "name": "ministryId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryLeaderDetailedViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryLeaderDetailedViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryLeaderDetailedViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ] + } + ] + } + } + }, + "/api/ministry/event/{eventId}": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Get Ministries by Event", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to an individual Ministries or Event", + "operationId": "GetMinistriesByEventId", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "query", + "in": "query", + "description": "Query", + "schema": { + "type": "string" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID (Optional). Must be set if room leader validation is required", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Ministry list", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_MinistryWithServingOpportunityStatistics" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_MinistryWithServingOpportunityStatistics" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_MinistryWithServingOpportunityStatistics" + } + } + } + } + }, + "404": { + "description": "Not found" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "409": { + "description": "Ministry data conflict." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/ministry/recommended": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Gets Recommended Ministries", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Settings and Preferences
\r\n
\r\n**Data Access:**
\r\nREAD Access to relatively light data on Recommended Ministries and their Locations (Campuses).", + "operationId": "GetRecommendedMinistries", + "parameters": [ + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Recommended Ministries" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Settings and Preferences" + ] + } + ] + } + }, + "post": { + "tags": [ + "Ministry" + ], + "summary": "Toggle Recommended Ministries", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Settings and Preferences
\r\n", + "operationId": "ToggleRecommendedMinistries", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_RecommendedMinistryToggleViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_RecommendedMinistryToggleViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_RecommendedMinistryToggleViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_RecommendedMinistryToggleViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns the Ministry" + }, + "404": { + "description": "Not found" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "409": { + "description": "Ministry data conflict." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Settings and Preferences" + ] + } + ] + } + } + }, + "/api/ministry/{id}/contact": { + "get": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAllContacts", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/ministry/{id}/church-entity/{churchEntityId}/statistics": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Retrieves ministry location statistics", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to counts of Ministry Members by Status", + "operationId": "GetStatistics", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Ministry Location Statistics", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationStatisticsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationStatisticsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationStatisticsViewModel" + } + } + } + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ], + "RouteParameters": [ + "id" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/ministry/{id}/church-entity": { + "post": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Create Local Ministry
\r\n", + "operationId": "CreateLocation", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Create Local Ministry" + ] + } + ] + } + }, + "put": { + "tags": [ + "Ministry" + ], + "summary": "Update locations", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Local Ministry Details
\r\n
\r\n**Data Access:**
\r\nWrite Access to an individual Ministries", + "operationId": "UpdateLocations", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "locationIds", + "in": "query", + "description": "Comma separated list of location IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Data to update ministry locations", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationBulkUpdateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationBulkUpdateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationBulkUpdateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationBulkUpdateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Ministry locations were updated" + }, + "400": { + "description": "Ministry statuses and properties cannot be changed." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + }, + "409": { + "description": "Ministry Location has open serving opportunities or non-empty interested queue." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Local Ministry Details" + ] + } + ] + } + }, + "get": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries, Access Local Ministries
\r\n", + "operationId": "GetLocations", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeRelationships", + "in": "query", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ], + "RouteParameters": [ + "id" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ] + } + ] + } + } + }, + "/api/ministry/{id}/church-entity/{churchEntityId}": { + "put": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Local Ministry Details
\r\n", + "operationId": "UpdateLocation", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Local Ministry Details" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Ministry" + ], + "summary": "Delete location", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Local Ministry Details
\r\n
\r\n**Data Access:**
\r\nWrite Access to an individual Ministries", + "operationId": "DeleteLocation", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ministry location are deleted" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Local Ministry Details" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + }, + "get": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n", + "operationId": "GetLocation", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/ministry/{id}/church-entity/{churchEntityId}/can-deactivate": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Can Ministry Location be deactivated", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to an individual Ministries", + "operationId": "CanDeactivateLocation", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ministry Location can be deactivated" + }, + "409": { + "description": "Ministry Location has open serving opportunities or non-empty interested queue.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryLocationDeactivationValidationResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryLocationDeactivationValidationResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryLocationDeactivationValidationResult" + } + } + } + }, + "400": { + "description": "Ministry Location is already deactivated." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/ministry/{id}/church-entity/can-deactivate": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Can Ministry Locations be deactivated", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Access Ministry Central
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to an individual Ministries", + "operationId": "CanDeactivateLocations", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityIds", + "in": "query", + "description": "Comma separated Church Entity IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ministry Location can be deactivated" + }, + "409": { + "description": "Ministry Locations have open serving opportunities or non-empty interested queue.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryDeactivationValidationResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryDeactivationValidationResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryDeactivationValidationResult" + } + } + } + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + } + ] + } + } + }, + "/api/ministry/{id}/church-entity/{churchEntityId}/can-change-publish/{publish}": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Can Ministry Location change publish state", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to an individual Ministries", + "operationId": "CanChangePublishStateInLocation", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "publish", + "in": "path", + "description": "New value of publish state", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ministry Location can change publish state" + }, + "400": { + "description": "Ministry Location is inactive." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + }, + "409": { + "description": "Cannot change publish state." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/ministry/{id}/church-entity/leaders": { + "get": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries, Access Local Ministries
\r\n", + "operationId": "GetLeaders", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ], + "RouteParameters": [ + "id" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ] + } + ] + } + } + }, + "/api/ministry/quick-view": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Get filtered locations for ministry quick view", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Ministry Central
\r\n
\r\n**Data Access:**
\r\nREAD Access to Ministry Locations", + "operationId": "GetFilteredLocations", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Statuses", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedMinistryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IncludeServeHours", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Tags", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsAcceptingNewMembers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Sort", + "in": "query", + "description": "Sort order. Can be [\"ministryname\" | \"churchentityname\" | \"leader\" | \"staffconnector\"],[\"asc\" | \"desc\"]", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Ministry locations records.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_QuickViewMinistryLocationsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_QuickViewMinistryLocationsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_QuickViewMinistryLocationsViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + } + ] + } + } + }, + "/api/ministry/church-entity/{id}": { + "get": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Ministry Central
\r\n", + "operationId": "GetMinistriesByChurchEntity", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + } + ] + } + } + }, + "/api/ministry/notification-communication-variables": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Get email variables for ministry notification templates", + "description": "**Data Access:**
\r\nNo specific access", + "operationId": "GetCommunicationVariables", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of variables to use", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/ministry/{id}/church-entity/{churchEntityId}/communication-template": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Retrieves ministry location communication templates", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to ministry campus", + "operationId": "GetMinistryCommunicationTemplates", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Ministry communication template list", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + } + } + } + }, + "400": { + "description": "Invalid parameters" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Entities not found" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ], + "RouteParameters": [ + "id" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + }, + "post": { + "tags": [ + "Ministry" + ], + "summary": "Upserts ministry location communication template", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Local Ministry Details
\r\n
\r\n**Data Access:**
\r\nWRITE Access to ministry campus details", + "operationId": "SaveMinistryCommunicationTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Communication template to insert", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Ministry communication template", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCommunicationTemplateViewModel" + } + } + } + }, + "400": { + "description": "Invalid parameters" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Entities not found" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Local Ministry Details" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/ministry/{id}/church-entity/{churchEntityId}/communication-template/{ministryCommunicationTemplateId}": { + "delete": { + "tags": [ + "Ministry" + ], + "summary": "Deletes ministry location communication template", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Local Ministry Details
\r\n
\r\n**Data Access:**
\r\nWRITE Access to ministry campus details", + "operationId": "DeleteMinistryCommunicationTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryCommunicationTemplateId", + "in": "path", + "description": "Ministry communication template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ok" + }, + "400": { + "description": "Invalid parameters" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Entities not found" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Local Ministry Details" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/ministry/{id}/tag": { + "put": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Create Global Ministry, Update Global Ministries Details
\r\n", + "operationId": "UpsertTagLinks", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Create Global Ministry" + ] + }, + { + "Permissions": [ + "Update Global Ministries Details" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + }, + "get": { + "tags": [ + "Ministry" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries
\r\n", + "operationId": "GetTagLinks", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/ministry/{id}/notification": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Retrieves last notification results for ministry", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to Ministry", + "operationId": "GetLastNotificationResultsForMinistryAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "NotificationChannel", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns last notification results for ministry", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_NotificationResultViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NotificationResultViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NotificationResultViewModel" + } + } + } + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/ministry/{id}/church-entity/{churchEntityId}/notification": { + "get": { + "tags": [ + "Ministry" + ], + "summary": "Retrieves last notification results for ministry location", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to Ministry", + "operationId": "GetLastNotificationResultsForMinistryLocationAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "NotificationChannel", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns last notification results for ministry location", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_NotificationResultViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NotificationResultViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NotificationResultViewModel" + } + } + } + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/ministry/category": { + "get": { + "tags": [ + "MinistryCategory" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "IncludeMinistryCount", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IncludeServingOpportunityCount", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "MinistryCategory" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Settings and Preferences
\r\n", + "operationId": "CreateMinistryCategory", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Settings and Preferences" + ] + } + ] + } + } + }, + "/api/ministry/category/{id}": { + "get": { + "tags": [ + "MinistryCategory" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetMinistryCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "MinistryCategory" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Settings and Preferences
\r\n", + "operationId": "UpdateMinistryCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Settings and Preferences" + ] + } + ] + } + }, + "delete": { + "tags": [ + "MinistryCategory" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Settings and Preferences
\r\n", + "operationId": "DeleteMinistryCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Settings and Preferences" + ] + } + ] + } + } + }, + "/api/ministry/category/tag": { + "get": { + "tags": [ + "MinistryCategory" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetTags", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "MinistryCategory" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Settings and Preferences
\r\n", + "operationId": "InsertTag", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Settings and Preferences" + ] + } + ] + } + } + }, + "/api/ministry/category/tag/{id}": { + "delete": { + "tags": [ + "MinistryCategory" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Settings and Preferences
\r\n", + "operationId": "DeleteTag", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Settings and Preferences" + ] + } + ] + } + } + }, + "/api/ministry/{id}/web-settings": { + "get": { + "tags": [ + "MinistryCentralWebSettings" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetMinistryWebSettings", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "MinistryCentralWebSettings" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Global Web Settings
\r\n", + "operationId": "UpdateMinistryWebSettings", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCentralWebSettingsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCentralWebSettingsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCentralWebSettingsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryCentralWebSettingsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Global Web Settings" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/ministry/masthead": { + "post": { + "tags": [ + "MinistryCentralWebSettings" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Global Web Settings
\r\n", + "operationId": "UploadMasthead", + "parameters": [ + { + "name": "ministryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Global Web Settings" + ], + "RouteParameters": [ + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/thumbnail": { + "post": { + "tags": [ + "MinistryCentralWebSettings" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Global Web Settings
\r\n", + "operationId": "UploadThumbnail", + "parameters": [ + { + "name": "ministryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Global Web Settings" + ], + "RouteParameters": [ + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/appheader": { + "post": { + "tags": [ + "MinistryCentralWebSettings" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Global Web Settings
\r\n", + "operationId": "UploadApphead", + "parameters": [ + { + "name": "ministryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Global Web Settings" + ], + "RouteParameters": [ + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/alt-website-image": { + "post": { + "tags": [ + "MinistryCentralWebSettings" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Global Web Settings
\r\n", + "operationId": "UploadAlternateWebsiteImage", + "parameters": [ + { + "name": "ministryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Global Web Settings" + ], + "RouteParameters": [ + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/group": { + "get": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n", + "operationId": "GetGroups", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "post": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Roles and Groups
\r\n", + "operationId": "CreateGroup", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Roles and Groups" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/role": { + "get": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n", + "operationId": "GetRoles", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "post": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Roles and Groups
\r\n", + "operationId": "CreateRole", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Roles and Groups" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/group/{id}": { + "get": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n", + "operationId": "GetGroup", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "put": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Roles and Groups
\r\n", + "operationId": "UpdateGroup", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Roles and Groups" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Roles and Groups
\r\n", + "operationId": "DeleteGroup", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Roles and Groups" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/role/{id}": { + "get": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n", + "operationId": "GetRole", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "put": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Roles and Groups
\r\n", + "operationId": "UpdateRole", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryGroupDetailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Roles and Groups" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "MinistryGroup" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Roles and Groups
\r\n", + "operationId": "DeleteRole", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Roles and Groups" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/group/{id}/member": { + "get": { + "tags": [ + "MinistryGroup" + ], + "summary": "Gets Group Members in Group/Role with sorting and pagination", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a list of Ministry Member Records, including portions of associated Person Records.\r\n\r\n**More Info:**
\r\nGets a potentially paginated and filtered list of Members for a specific Group/Role.\r\nGroup/Role ID, Ministry ID and Church Entity ID route parameters are required; all query parameters are optional.", + "operationId": "GetMinistryGroupMembers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Role/group ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "query", + "in": "query", + "description": "Query", + "schema": { + "type": "string" + } + }, + { + "name": "excludeGroup", + "in": "query", + "description": "true to return all members which are not in this group", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Members of the specified group/role.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLocationGroupMemberViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLocationGroupMemberViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLocationGroupMemberViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permissions and authorization for the specified Church Entity." + }, + "400": { + "description": "Invalid parameters." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "post": { + "tags": [ + "MinistryGroup" + ], + "summary": "Add Ministry Members to Group/Role", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Ministry Members
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a list of Ministry Member Records, including portions of associated Person Records.\r\n\r\n**More Info:**
\r\nGroup/Role ID, Ministry ID and Church Entity ID route parameters are required; all query parameters are optional.", + "operationId": "AddPersonsToGroup", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Role/group ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Comma separated person IDs", + "schema": { + "type": "string" + } + }, + { + "name": "query", + "in": "query", + "description": "Query string", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Members added to role/group successfully.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permissions and authorization for the specified Church Entity." + }, + "400": { + "description": "Invalid parameters." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "MinistryGroup" + ], + "summary": "Remove Ministry Members from Group/Role", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Ministry Members
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a list of Ministry Member Records, including portions of associated Person Records.\r\n\r\n**More Info:**
\r\nGroup/Role ID, Ministry ID and Church Entity ID route parameters are required; all query parameters are optional.", + "operationId": "RemovePersonsFromGroup", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Role/group ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Comma separated person IDs", + "schema": { + "type": "string" + } + }, + { + "name": "query", + "in": "query", + "description": "Query string", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Members removed from role/group successfully.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permissions and authorization for the specified Church Entity." + }, + "400": { + "description": "Invalid parameters." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/role/{id}/member": { + "get": { + "tags": [ + "MinistryGroup" + ], + "summary": "Gets Group Members in Group/Role with sorting and pagination", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a list of Ministry Member Records, including portions of associated Person Records.\r\n\r\n**More Info:**
\r\nGets a potentially paginated and filtered list of Members for a specific Group/Role.\r\nGroup/Role ID, Ministry ID and Church Entity ID route parameters are required; all query parameters are optional.", + "operationId": "GetMinistryGroupMembers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Role/group ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "query", + "in": "query", + "description": "Query", + "schema": { + "type": "string" + } + }, + { + "name": "excludeGroup", + "in": "query", + "description": "true to return all members which are not in this group", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Members of the specified group/role.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLocationGroupMemberViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLocationGroupMemberViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLocationGroupMemberViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permissions and authorization for the specified Church Entity." + }, + "400": { + "description": "Invalid parameters." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "post": { + "tags": [ + "MinistryGroup" + ], + "summary": "Add Ministry Members to Group/Role", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Ministry Members
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a list of Ministry Member Records, including portions of associated Person Records.\r\n\r\n**More Info:**
\r\nGroup/Role ID, Ministry ID and Church Entity ID route parameters are required; all query parameters are optional.", + "operationId": "AddPersonsToGroup", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Role/group ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Comma separated person IDs", + "schema": { + "type": "string" + } + }, + { + "name": "query", + "in": "query", + "description": "Query string", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Members added to role/group successfully.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permissions and authorization for the specified Church Entity." + }, + "400": { + "description": "Invalid parameters." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "MinistryGroup" + ], + "summary": "Remove Ministry Members from Group/Role", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Ministry Members
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a list of Ministry Member Records, including portions of associated Person Records.\r\n\r\n**More Info:**
\r\nGroup/Role ID, Ministry ID and Church Entity ID route parameters are required; all query parameters are optional.", + "operationId": "RemovePersonsFromGroup", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Role/group ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Comma separated person IDs", + "schema": { + "type": "string" + } + }, + { + "name": "query", + "in": "query", + "description": "Query string", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Members removed from role/group successfully.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permissions and authorization for the specified Church Entity." + }, + "400": { + "description": "Invalid parameters." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/integration/ministry": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Gets all active, published Ministries", + "operationId": "GetAllMinistries", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/integration/ministry/{id}": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Gets all active, published Ministries", + "operationId": "GetMinistryById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/integration/ministry/church-entity/{churchEntityId}": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Gets all active, published Ministries with a Location at the specified Campus", + "operationId": "GetMinistriesByChurchEntity", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "description": "Campus ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/integration/ministry/serving-opportunity": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Gets a list of all Published/Public Serving Opportunities that are currently active (i.e. that have a future occurrence)", + "operationId": "GetAllPublishedServingOpportunities", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "description": "Optional Filter by Campus ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "publishedChurchEntityIds", + "in": "query", + "description": "Optional filter for published Campus IDs", + "schema": { + "type": "string" + } + }, + { + "name": "days", + "in": "query", + "description": "Optional Serving Opportunity Filter by days of the week (where days are integers matching enum DayOfWeek). To include multiple days, you must stack them in the URL: &days=1&days=2", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "timeStart", + "in": "query", + "description": "Optional Serving Opportunity Filter by Time Start. This will return Serving Opportunities that start on or after the timeStart.", + "schema": { + "type": "string" + } + }, + { + "name": "timeEnd", + "in": "query", + "description": "Optional Serving Opportunity Filter by Time End. This will return Serving Opportunities that start on or before the timeEnd.", + "schema": { + "type": "string" + } + }, + { + "name": "duration", + "in": "query", + "description": "Optional Serving Opportunity Filter by duration. This will return Serving Opportunities that have a duration less than this value.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "frequency", + "in": "query", + "description": "Optional Serving Opportunity Filter by frequency (where frequency are integers matching enum RecurrenceFrequency). To include multiple frequency, you must stack them in the URL: &frequency=1&frequency=2", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional tags (comma-delimited)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + } + } + } + } + } + }, + "/api/integration/ministry/{id}/serving-opportunity": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Gets a list of Serving Opportunities for a Ministry (all Locations/Campuses)", + "operationId": "GetServingOpportunitiesForMinistry", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + } + } + } + } + } + }, + "/api/integration/ministry/{id}/church-entity/{churchEntityId}/serving-opportunity": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Gets a list of Serving Opportunities for a Ministry Location (Campus)", + "operationId": "GetServingOpportunitiesForMinistry", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location (Campus) ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + } + } + } + } + } + }, + "/api/integration/ministry/index": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Retrieves list of Ministries, grouped by Category", + "operationId": "Index", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "description": "Optional Filter by Campus ID to restrict the results to only those Ministries with a presence at the specified Campus", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + } + } + }, + "/api/integration/ministry/serving-opportunity/search": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Searches for Ministries and Serving Opportunities", + "operationId": "Search", + "parameters": [ + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "Optional Filter by Campus ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "query", + "description": "Optional Filter by Ministry ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "tag", + "in": "query", + "description": "Optional Filter by Tag (where tag is a comma-delimited string of the serving opportunity tags to search)", + "schema": { + "type": "string" + } + }, + { + "name": "days", + "in": "query", + "description": "Optional Serving Opportunity Filter by days of the week (where days are integers matching enum DayOfWeek). To include multiple days, you must stack them in the URL: &days=1&days=2", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "timeStart", + "in": "query", + "description": "Optional Serving Opportunity Filter by Time Start. This will return Serving Opportunities that start on or after the timeStart.", + "schema": { + "type": "string" + } + }, + { + "name": "timeEnd", + "in": "query", + "description": "Optional Serving Opportunity Filter by Time End. This will return Serving Opportunities that start on or before the timeEnd.", + "schema": { + "type": "string" + } + }, + { + "name": "duration", + "in": "query", + "description": "Optional Serving Opportunity Filter by duration. This will return Serving Opportunities that have a duration less than this value.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "frequency", + "in": "query", + "description": "Optional Serving Opportunity Filter by frequency (where frequency are integers matching enum RecurrenceFrequency). To include multiple frequency, you must stack them in the URL: &frequency=1&frequency=2", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Bad Request" + } + } + } + }, + "/api/integration/ministry/serving-opportunity/typeahead": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Provides query suggestions/typeahead results for Ministries and Serving Opportunities", + "operationId": "Typeahead", + "parameters": [ + { + "name": "searchQuery", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "Campus Id", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + } + } + } + } + } + }, + "/api/integration/ministry/{ministryUrl}": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetMinistryDetails", + "parameters": [ + { + "name": "ministryUrl", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/integration/ministry/{ministryUrl}/church-entity": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetMinistryLocations", + "parameters": [ + { + "name": "ministryUrl", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/integration/ministry/{ministryUrl}/church-entity/{churchEntityUrl}": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetMinistryLocationDetails", + "parameters": [ + { + "name": "ministryUrl", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "churchEntityUrl", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/integration/serving-opportunity/{id}": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetServingOpportunityDetailsForWeb", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "privateId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "occurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/integration/ministry/signup": { + "post": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Adds a new Person to the Ministry Roster for External Systems", + "description": "**Data Access:**
\r\nCREATE new Ministry Member Record (associating a Person to the roster of a Ministry).", + "operationId": "MinistrySignup", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Ministry Member we wish to create. Includes Person ID, initial Status, Leadership Position, Groups, and Roles.", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_WebMinistrySignUpViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_WebMinistrySignUpViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_WebMinistrySignUpViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_WebMinistrySignUpViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the newly created Ministry Member record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + }, + "400": { + "description": "The POST body is not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "404": { + "description": "The requested Ministry was not found." + }, + "409": { + "description": "Person is already a member of the Ministry.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + } + } + }, + "/api/integration/serving-opportunity/signup": { + "post": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Adds a new volunteer to specific serving opportunity for External Systems", + "operationId": "ServingOpportunitySignup", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Volunteer to add", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_WebServingOpportunitySignUpViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_WebServingOpportunitySignUpViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_WebServingOpportunitySignUpViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_WebServingOpportunitySignUpViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Record has been inserted." + }, + "400": { + "description": "Invalid parameters." + }, + "409": { + "description": "Person is already signed up for the Serving Opportunity." + } + } + } + }, + "/api/integration/serving-opportunity/{servingOpportunityId}/volunteer-schedule": { + "get": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Gets a Volunteer's commitment schedule for a given Serving Opportunity", + "description": "**Data Access:**
\r\nREAD serving opp volunteer & schedule data.", + "operationId": "GetServingOpportunityVolunteerSchedulingCommitments", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "verificationToken", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the scheduled commitments", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerScheduleCommitmentResponseViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerScheduleCommitmentResponseViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerScheduleCommitmentResponseViewModel" + } + } + } + }, + "204": { + "description": "Volunteer not found", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "400": { + "description": "The request was not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "404": { + "description": "The requested Serving Opportunity was not found." + } + } + }, + "delete": { + "tags": [ + "MinistryIntegration" + ], + "summary": "Unschedules a Volunteer from a Serving Opportunity", + "description": "**Data Access:**
\r\nWRITE serving opp volunteer schedule data.", + "operationId": "RemoveServingOpportunityVolunteerFromSchedule", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "verificationToken", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "removeFromSingleOccurrence", + "in": "query", + "description": "(optional) defaults to true; ignored if both occurrenceId and occurrenceDateTime are not specified", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "the Volunteer was unscheduled" + }, + "400": { + "description": "The request was not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "404": { + "description": "The requested Serving Opportunity was not found." + } + } + } + }, + "/api/ministry/{id}/church-entity/{churchEntityId}/web-settings": { + "get": { + "tags": [ + "MinistryLocationWebSettings" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "Get", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "MinistryLocationWebSettings" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Ministry Local Web Settings
\r\n", + "operationId": "Update", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationWebSettingsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationWebSettingsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationWebSettingsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryLocationWebSettingsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Ministry Local Web Settings" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/member": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Gets Ministry Roster with optional filtering and pagination", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Inline Authorization Checks:**
\r\nIf the user does not hold a Leadership Position within this Ministry, then he/she must be authorized for the specified Church Entity.\r\n\r\n**Data Access:**
\r\nREAD Access to a list of Ministry Member Records, including portions of associated Person Records.\r\n\r\n**More Info:**
\r\nGets a potentially paginated and filtered list of Ministry Members for a specific Ministry Location.\r\nMinistry ID and Church Entity ID route parameters are required; all query parameters are optional.", + "operationId": "GetFilteredMinistryMembers", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusType" + } + }, + { + "name": "Statuses", + "in": "query", + "description": "Comma separated MinistryMemberStatus values", + "schema": { + "type": "string" + } + }, + { + "name": "RoleIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExceptRoleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ExceptGroupId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Sort", + "in": "query", + "description": "Sorting parameter \"(id | firstname | birthdate | lastname | addedtoministrydate | addedtogroupdate | addedtoroledate),(asc | desc)\". Optional, by default sorted by score", + "schema": { + "type": "string" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Number of results in a page.", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page # of results. First page is 0.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "checkPublicContacts", + "in": "query", + "description": "True to fill 'HasPublicContacts' field in members' data", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "lite", + "in": "query", + "description": "Returns no person's contact data", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "checkEligibility", + "in": "query", + "description": "True to return eligibility info", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "servingOpportunityId", + "in": "query", + "description": "Check eligibility for serving opportunity instead of ministry", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "checkServingOpportunityMembership", + "in": "query", + "description": "Check if members are volunteers of Serving Opportunity (ID: servingOpportunityId)", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "checkSmsEligibility", + "in": "query", + "description": "Check if members are able to receive SMS messages (have consented, have one or more mobile phones,\r\nand have not opted out on this cahnnel that this ministry will use.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeContactPreferences", + "in": "query", + "description": "Include Members' Contact Preference", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeMemberProfilePictureUrls", + "in": "query", + "description": "Include Members' Profile Pictures", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeAverageDaysOnRoster", + "in": "query", + "description": "Include the Average Days On the Ministry Roster", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeMemberLastServeDate", + "in": "query", + "description": "Include the Last Serve Date for each Ministry Member", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeMemberServeHours", + "in": "query", + "description": "Include Ministry Serve Hours for each Ministry Member", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Members of the specified Ministry that also meet any specified filter criteria.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permissions and authorization for the specified Church Entity." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "post": { + "tags": [ + "MinistryMember" + ], + "summary": "Adds a new Person to the Ministry Roster", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Create Ministry Members, Create Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nCREATE new Ministry Member Record (associating a Person to the roster of a Ministry).", + "operationId": "CreateMinistryMember", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Ministry Member we wish to create. Includes Person ID, initial Status, Leadership Position, Groups, and Roles.", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the newly created Ministry Member record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + }, + "400": { + "description": "The POST body is not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permissions." + }, + "404": { + "description": "The requested Ministry was not found." + }, + "409": { + "description": "Person is already a member of the Ministry.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Create Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Create Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "put": { + "tags": [ + "MinistryMember" + ], + "summary": "Updates an existing Ministry Member record", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Update Ministry Members, Update Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nUPDATE Ministry Member Record. Only Updates Status, Groups and Roles.", + "operationId": "UpdateMinistryMembers", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "memberIds", + "in": "query", + "description": "Comma separated list of member ids", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusType" + } + }, + { + "name": "Statuses", + "in": "query", + "description": "Comma separated MinistryMemberStatus values", + "schema": { + "type": "string" + } + }, + { + "name": "RoleIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExceptRoleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ExceptGroupId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Sort", + "in": "query", + "description": "Sorting parameter \"(id | firstname | birthdate | lastname | addedtoministrydate | addedtogroupdate | addedtoroledate),(asc | desc)\". Optional, by default sorted by score", + "schema": { + "type": "string" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Data to update Ministry Member records", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberBulkUpdateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberBulkUpdateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberBulkUpdateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberBulkUpdateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the updated Ministry Member record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + }, + "400": { + "description": "The PUT body is not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permission." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Update Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "MinistryMember" + ], + "summary": "Deletes Ministry Member records", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Delete Ministry Members, Delete Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nDELETE Ministry Member Records. Logical/soft-delete only.\r\n\r\n**More Info:**
\r\nA subsequent CREATE action for a record with the same Ministry ID, Church Entity ID, and Person ID combination will\r\n\"un-delete\" the existing record, rather than creating another record with the same foreign keys, as together they\r\nare essentially a surrogate, composite key, and have a unique index in the database.\r\n\r\nWhat this means for end-users of the tool is that if a Person is \"Deleted\" from the roster of a Ministry, and then\r\nlater the same Person is added again, earlier history on that Person within that Ministry is retained.", + "operationId": "DeleteMinistryMembers", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "memberIds", + "in": "query", + "description": "Comma separated list of member ids", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusType" + } + }, + { + "name": "Statuses", + "in": "query", + "description": "Comma separated MinistryMemberStatus values", + "schema": { + "type": "string" + } + }, + { + "name": "RoleIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExceptRoleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ExceptGroupId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Sort", + "in": "query", + "description": "Sorting parameter \"(id | firstname | birthdate | lastname | addedtoministrydate | addedtogroupdate | addedtoroledate),(asc | desc)\". Optional, by default sorted by score", + "schema": { + "type": "string" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permission." + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Delete Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Delete Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/member/search-fields": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Gets a list of fields that can be used in search queries", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nNone really ... ElasticSearch metadata.", + "operationId": "GetSearchFields", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/member/{id}": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Gets the details for a single Ministry Member by ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a single Ministry Member Record, including portions of the associated Person Record.", + "operationId": "GetMember", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Ministry Member ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Ministry Member record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permission." + }, + "404": { + "description": "The requested Ministry Member record was not found." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "put": { + "tags": [ + "MinistryMember" + ], + "summary": "Updates an existing Ministry Member record", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Update Ministry Members, Update Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nUPDATE Ministry Member Record. Only Updates Status, Groups and Roles.", + "operationId": "UpdateMinistryMember", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Ministry Member ID of the existing record to update", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Updated Ministry Member record", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the updated Ministry Member record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberViewModel" + } + } + } + }, + "400": { + "description": "The PUT body is not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permission." + }, + "404": { + "description": "The specified Ministry or the existing Ministry Member was not found." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Update Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/member/{id}/activity": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Gets the activity feed for a single Ministry Member by ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Ministry Member's \"Activity Feed\", which is a history of Status Changes.", + "operationId": "GetMemberActivityFeed", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Ministry Member ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Activity Feed", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusHistory" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusHistory" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusHistory" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permission." + }, + "404": { + "description": "The requested Ministry Member record was not found." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/member-list": { + "post": { + "tags": [ + "MinistryMember" + ], + "summary": "Creates new Ministry Member Records (associating People to the roster of a Ministry)", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nTrusted application only.", + "operationId": "CreateMinistryMembers", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Ministry Members we wish to create. Includes Person ID and initial Status.", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_NewMinistryMembersViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NewMinistryMembersViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NewMinistryMembersViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_NewMinistryMembersViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the created Ministry Member statistics.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Dto_AddMinistryMemberResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Dto_AddMinistryMemberResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Dto_AddMinistryMemberResult" + } + } + } + }, + "400": { + "description": "The POST body is not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permissions." + }, + "404": { + "description": "The requested Ministry was not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/member/{memberId}": { + "delete": { + "tags": [ + "MinistryMember" + ], + "summary": "Deletes a Ministry Member record", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Delete Ministry Members, Delete Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nDELETE Ministry Member Record. Logical/soft-delete only.\r\n\r\n**More Info:**
\r\nA subsequent CREATE action for a record with the same Ministry ID, Church Entity ID, and Person ID combination will\r\n\"un-delete\" the existing record, rather than creating another record with the same foreign keys, as together they\r\nare essentially a surrogate, composite key, and have a unique index in the database.\r\n\r\nWhat this means for end-users of the tool is that if a Person is \"Deleted\" from the roster of a Ministry, and then\r\nlater the same Person is added again, earlier history on that Person within that Ministry is retained.", + "operationId": "DeleteMinistryMember", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "memberId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permission." + }, + "404": { + "description": "The requested Ministry Member record was not found." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Delete Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Delete Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/member/{memberId}/note": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Gets Notes for a Ministry Member", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Inline Authorization Checks:**
\r\nIf user lacks permission for Sensitive Notes, then any such notes will be redacted.\r\n\r\n**Data Access:**
\r\nREAD access to the list of Notes on the Ministry Member record.", + "operationId": "GetNoteByMinistryMemberId", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "memberId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns any Notes on the specified Ministry Member record.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permission." + }, + "404": { + "description": "The specified Ministry Member was not found or did not match with Ministry ID and Church Entity ID." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "post": { + "tags": [ + "MinistryMember" + ], + "summary": "Adds a Note to the Ministry Member record", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Update Ministry Members, Update Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nCREATE a new Note on the Ministry Member Record (which is also associated to the referenced Person Record).", + "operationId": "CreateNote", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "memberId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + } + } + }, + "400": { + "description": "Proffered view model is invalid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permission." + }, + "404": { + "description": "The specified Ministry Member was not found, or the Member did not match with Ministry ID and Church Entity ID." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Update Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/member/{memberId}/note/{id}": { + "put": { + "tags": [ + "MinistryMember" + ], + "summary": "Updates a Ministry Member Note", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Update Ministry Members, Update Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nUPDATE a Note on the Ministry Member record (which is also associated to the referenced Person Record).", + "operationId": "UpdateNote", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "memberId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Note ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Updated Note", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + } + } + }, + "400": { + "description": "Proffered view model is invalid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Must have either a Leadership Position in the Ministry, or the required Permission." + }, + "404": { + "description": "The specified Note or Ministry Member was not found, or the Member did not match with Ministry ID and Church Entity ID." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Update Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "MinistryMember" + ], + "summary": "Deletes a Ministry Member Note", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Update Ministry Members, Update Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nDELETE Ministry Member Note. Logical/soft-delete only.\r\n\r\n**More Info:**
\r\nNot a normal operation. Ministry Leaders are not automatically authorized for this action,\r\nas with other typical operations on the Ministry Roster (until such time as Product Ownership\r\ninstructs the Dev Team otherwise). For now, Permissions to Update Ministry Member and Person\r\nand Church Entity Authorization are required for this action.", + "operationId": "DeleteNote", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "memberId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Proffered view model is invalid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "The specified Note or Ministry Member was not found, or the Member did not match with Ministry ID and Church Entity ID." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Update Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/attachment": { + "post": { + "tags": [ + "MinistryMember" + ], + "summary": "Upload a File for Email Attachment", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Email Ministry Members
\r\n
\r\n**Data Access:**
\r\nUploads the file to cloud storage (Amazon S3) where it can be viewed/downloaded by unauthenticated callers\r\nwith the URL (intended usage is to embed the URL to the file in an email in lieu of actually \"attaching\" the file).", + "operationId": "UploadAttachment", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "File is empty.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Email Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/email-variables": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Get email variables", + "description": "**Data Access:**
\r\nNo specific access", + "operationId": "GetEmailVariables", + "parameters": [ + { + "name": "type", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_EmailType" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/email": { + "post": { + "tags": [ + "MinistryMember" + ], + "summary": "Send an Email to Members of a Ministry", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Email Ministry Members
\r\n
\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the email to the specified recipients.", + "operationId": "SendEmail", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusType" + } + }, + { + "name": "Statuses", + "in": "query", + "description": "Comma separated MinistryMemberStatus values", + "schema": { + "type": "string" + } + }, + { + "name": "RoleIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExceptRoleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ExceptGroupId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Sort", + "in": "query", + "description": "Sorting parameter \"(id | firstname | birthdate | lastname | addedtoministrydate | addedtogroupdate | addedtoroledate),(asc | desc)\". Optional, by default sorted by score", + "schema": { + "type": "string" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Email Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/email-leaders": { + "post": { + "tags": [ + "MinistryMember" + ], + "summary": "Send an Email to Leaders (Leader/Co-Leader/Staff Connector) of multiple minsitries. Will also check whether or not the recipients are acutally leaders in any of the ministries.", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Email Ministry Leadership
\r\n
\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the email to the specified recipients.", + "operationId": "SendEmailToLeadershipOfMultipleMinistries", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryCentralEmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryCentralEmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryCentralEmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MinistryCentralEmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Email Ministry Leadership" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/email": { + "post": { + "tags": [ + "MinistryMember" + ], + "summary": "Send an Email to all Active Members of a Ministry", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Email Ministry Members
\r\n
\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the email to the specified recipients.", + "operationId": "SendEmail", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Email Ministry Members" + ], + "RouteParameters": [ + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/leader-ids": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Gets ministry leader IDs.", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access", + "operationId": "GetLeaderIds", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Ministry Location IDs", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryLocationIdsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryLocationIdsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryLocationIdsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryLocationIdsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/ministry/event-assigned": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Gets Ministry IDs with at least one Serving Opportunity assigned to given Event.", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access", + "operationId": "GetMinistriesWithServingOpportunityAssignedToEvent", + "parameters": [ + { + "name": "eventId", + "in": "query", + "description": "Event ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "CHurch Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryIds", + "in": "query", + "description": "List of ministry IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/related-id": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Gets ministry IDs for related to the given ministry", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access", + "operationId": "GetRelatedMinistryIds", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "404": { + "description": "Ministry nor found", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/ministry/email-multiple-ministries": { + "post": { + "tags": [ + "MinistryMember" + ], + "summary": "Sends Email to Members of Multiple Ministries", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Email Multiple Ministry Rosters
\r\n
\r\n**Inline Authorization Checks:**
\r\nCaller must have \"Email Ministry Members\" permission at all specified Ministry Locations.\r\n\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the email to the specified recipients.", + "operationId": "SendEmailToMembersOfMultipleMinistries", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MultipleMinistryEmailRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MultipleMinistryEmailRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MultipleMinistryEmailRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MultipleMinistryEmailRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Email Multiple Ministry Rosters" + ] + } + ] + } + } + }, + "/api/ministry/multiple-ministry-recipients": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Used to hydrate a recipient list when communicating with multiple ministries", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Email Multiple Ministry Rosters
\r\n
\r\n**Data Access:**\r\nREAD access to very basic Person and Ministry Membership data (Person ID, First and Last Name, and Status in each Ministry).", + "operationId": "GetCommunicationRecipientsForMultipleMinistries", + "parameters": [ + { + "name": "MinistryIds", + "in": "query", + "description": "Comma-separated list of Ministry IDs", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "description": "Comma-Separated list of Church Entity IDs", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Comma-separated list of Person Unique IDs for any people that should be excluded\r\nfrom the recipients list calculated from the specified Ministry Locations.", + "schema": { + "type": "string" + } + }, + { + "name": "ParsedMinistryIds", + "in": "query", + "description": "Get accessor for the Saddleback.Cm.Web.ViewModels.Ministries.MultipleMinistryEmailRecipientRequestViewModel.MinistryIds parsed into an index-accessible collection of integer IDs.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "ParsedChurchEntityIds", + "in": "query", + "description": "Get accessor for the Saddleback.Cm.Web.ViewModels.Ministries.MultipleMinistryEmailRecipientRequestViewModel.ChurchEntityIds parsed into an index-accessible collection of integer IDs.", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Email Multiple Ministry Rosters" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/sms-eligibility": { + "get": { + "tags": [ + "MinistryMember" + ], + "summary": "Checks SMS eligibility for a select list of recipients drawn from the ministry roster", + "description": "**Authorization Policy:**
\r\nRequires access to all of these Permissions: Send SMS to Ministry Members, Send SMS to Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nREAD access to informational (but not deeply personal) data about eligibility to send SMS messages\r\nto the specified Persons that are memebrs of the specified Ministry.\r\n\r\nIf the SMS recipient list is not explicit, but rather based on a filter/query applied to the roster,\r\nthen the M:Saddleback.Cm.Web.Controllers.Ministries.MinistryMemberController.GetFilteredMinistryMembers(System.Int32,System.Int32,Saddleback.Cm.Web.ViewModels.Ministries.MinistryMemberFilterQuery,System.Nullable{System.Int32},System.Nullable{System.Int32},System.Boolean,System.Boolean,System.Boolean,System.Nullable{System.Int32},System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean) method should be used instead, specifying the flag to\r\nalso perform the SMS eligibility check on all of the filtered ministry members returned by the query.", + "operationId": "CheckSmsEligibility", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Comma-separated list of Person Unique IDs of the intended SMS recipients", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Send SMS to Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Send SMS to Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/sms": { + "post": { + "tags": [ + "MinistryMember" + ], + "summary": "Send an SMS to Members of a Ministry and InterestedInMinistry person", + "description": "**Authorization Policy:**
\r\nRequires access to all of these Permissions: Send SMS to Ministry Members, Send SMS to Interested Ministry Members
\r\n
\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the SMS to the specified recipients.", + "operationId": "SendSms", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusType" + } + }, + { + "name": "Statuses", + "in": "query", + "description": "Comma separated MinistryMemberStatus values", + "schema": { + "type": "string" + } + }, + { + "name": "RoleIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExceptRoleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ExceptGroupId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Sort", + "in": "query", + "description": "Sorting parameter \"(id | firstname | birthdate | lastname | addedtoministrydate | addedtogroupdate | addedtoroledate),(asc | desc)\". Optional, by default sorted by score", + "schema": { + "type": "string" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Message", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Send SMS to Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + }, + { + "Permissions": [ + "Send SMS to Interested Ministry Members" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry/{ministryId}/church-entity/{churchEntityId}/member/export": { + "post": { + "tags": [ + "MinistryMember" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Extract Ministry Member Data
\r\n", + "operationId": "RequestMinistryMembersDataExport", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Format", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusType" + } + }, + { + "name": "Statuses", + "in": "query", + "description": "Comma separated MinistryMemberStatus values", + "schema": { + "type": "string" + } + }, + { + "name": "RoleIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExceptRoleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ExceptGroupId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Sort", + "in": "query", + "description": "Sorting parameter \"(id | firstname | birthdate | lastname | addedtoministrydate | addedtogroupdate | addedtoroledate),(asc | desc)\". Optional, by default sorted by score", + "schema": { + "type": "string" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Extract Ministry Member Data" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/ministry-public": { + "get": { + "tags": [ + "MinistryPublicSearch" + ], + "summary": "Retrieves paginated list of Central Ministries, by Status", + "description": "**Data Access:**
\r\nREAD Access to a list of of Ministries\r\n\r\n**More Info:**
\r\nPowers \"Browse Ministries\" functionality.", + "operationId": "GetAllPublic", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Ministries by Status", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + } + } + } + } + } + } + } + }, + "/api/ministry-public/index": { + "get": { + "tags": [ + "MinistryPublicSearch" + ], + "summary": "Retrieves list of Ministries, grouped by Category", + "operationId": "Index", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "description": "Optional Filter by Campus ID to restrict the results to only those Ministries with a presence at the specified Campus", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + } + } + }, + "/api/ministry-public/search": { + "get": { + "tags": [ + "MinistryPublicSearch" + ], + "summary": "Searches for Ministries and Serving Opportunities", + "operationId": "Search", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MinistryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Tag", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsAcceptingNewMembers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsFuzzySearch", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Bad Request" + } + } + } + }, + "/api/ministry-public/{id}": { + "get": { + "tags": [ + "MinistryPublicSearch" + ], + "summary": "Gets a Public Ministry by ID", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nREAD Access to an individual Ministries", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ExpandOptions", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExpandLimit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Ministry", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_WebMinistryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_WebMinistryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_WebMinistryViewModel" + } + } + } + } + }, + "404": { + "description": "Not found" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/ministry-public/{id}/church-entity": { + "get": { + "tags": [ + "MinistryPublicSearch" + ], + "summary": "Gets Ministry locations \r\n**Data Access:**
\r\nREAD Access to an individual Ministries", + "operationId": "GetLocations", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ExpandOptions", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExpandLimit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Ministry Locations" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/api/ministry-public/recommended": { + "get": { + "tags": [ + "MinistryPublicSearch" + ], + "summary": "Gets all recommended ministries", + "operationId": "GetRecommendedMinistries", + "parameters": [ + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Recommended Ministries With Locations" + } + } + } + }, + "/api/ministry/search-fields": { + "get": { + "tags": [ + "MinistrySearch" + ], + "operationId": "GetSearchFields", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/ministry/search": { + "get": { + "tags": [ + "MinistrySearch" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Global Ministries
\r\n", + "operationId": "Search", + "parameters": [ + { + "name": "Status", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedMinistryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Tags", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Global Ministries" + ] + } + ] + } + } + }, + "/api/notification-center/{id}": { + "get": { + "tags": [ + "NotificationCenter" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Personal Data
\r\n", + "operationId": "GetNotificationCenterByIdAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_NotificationChannelType" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ] + } + ] + } + } + }, + "/api/occupation-category": { + "get": { + "tags": [ + "OccupationCategory" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/occurrence/{id}": { + "get": { + "tags": [ + "Occurrence" + ], + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/occurrence/date": { + "get": { + "tags": [ + "Occurrence" + ], + "operationId": "GetIdByDate", + "parameters": [ + { + "name": "scheduleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/occurrence": { + "get": { + "tags": [ + "Occurrence" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetOccurrences", + "parameters": [ + { + "name": "DateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ScheduleEntityTypeId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ScheduleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "Occurrence" + ], + "summary": "Update an occurrence", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Worship Services
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Services", + "operationId": "UpdateOccurrence", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.Schedules.OccurrenceViewModelOccurrence data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + } + } + } + }, + "responses": { + "200": { + "description": "Return updated occurrence." + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Worship Services" + ], + "ModelParameterName": [ + "occurrenceViewModel" + ] + } + ] + } + } + }, + "/api/permission": { + "get": { + "tags": [ + "Permission" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Security Roles, Manage User Access
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Security Roles" + ] + }, + { + "Permissions": [ + "Manage User Access" + ] + } + ] + } + } + }, + "/api/permission/hierarchy": { + "get": { + "tags": [ + "Permission" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Security Roles, Manage User Access
\r\n", + "operationId": "GetPermissionHierarchy", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Security Roles" + ] + }, + { + "Permissions": [ + "Manage User Access" + ] + } + ] + } + } + }, + "/api/permission/{permissionId}/usage/roles": { + "get": { + "tags": [ + "Permission" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Security Roles, Manage User Access
\r\n", + "operationId": "GetPermissionUsageInRoles", + "parameters": [ + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Security Roles" + ] + }, + { + "Permissions": [ + "Manage User Access" + ] + } + ] + } + } + }, + "/api/permission/{permissionId}/usage/users": { + "get": { + "tags": [ + "Permission" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Security Roles, Manage User Access
\r\n", + "operationId": "GetPermissionUsageAmongUsers", + "parameters": [ + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Security Roles" + ] + }, + { + "Permissions": [ + "Manage User Access" + ] + } + ] + } + } + }, + "/api/person/{id}": { + "get": { + "tags": [ + "Person" + ], + "summary": "Gets a Person record by visible/external Unique Person Identifier (not DB PK)", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Personal Data
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "integer: Visible/external Unique Person Identifier (not DB PK)", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeContactDetails", + "in": "query", + "description": "Boolean flag indicating to include Person contact details", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeOccupations", + "in": "query", + "description": "Boolean flag indicating to include Person occupations", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "suppressMergeRedirect", + "in": "query", + "description": "Boolean flag dictating behavior when a Person is requested that has been merged into a different Person record and discarded.\r\nIf TRUE, will issue 200 OK response with JSON payload indicating the current ID for the Person (i.e. for the surviving or kept record in the merge).\r\nIf FALSE (default), will issue 302 Found response that redirects to the correct Person", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "ministryId", + "in": "query", + "description": "Ministry ID. Used only for ministry member operations", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "Church entity ID. Used only for ministry member operations", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "text/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "302": { + "description": "Redirect" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + }, + "put": { + "tags": [ + "Person" + ], + "summary": "Updates top-level data on an existing Person record", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Personal Data
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "integer: Visible/external Unique Person Identifier (not DB PK)", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.People.PersonViewModel: inbound Person record with updates applied.", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Personal Data" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Person" + ], + "description": "**Authorization Policy:**
\r\nRequires access to all of these Permissions: Delete Personal Data, Delete Person Contact Data
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Delete Personal Data", + "Delete Person Contact Data" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/person": { + "get": { + "tags": [ + "Person" + ], + "summary": "Gets \"Lite\" Person records by visible/external Unique Person Identifiers (not DB PKs)", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Personal Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to \"lite\" level of detail for multiple person records. This entails top-level attributes on the person\r\nentity only; it includes no contact details or any other child entities of the the perosn records.\r\n\r\n**More Info:**
\r\nThis endpoint does not return 403 Forbidden if one or more of the requested persons are associated to an\r\nunauthorized Campus. Instead, results are filtered by the authorized Campus (\"church entity\") scopes on caller's\r\npermissions.", + "operationId": "GetByIds", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "Comma separated unique IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "text/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ] + } + ] + } + }, + "post": { + "tags": [ + "Person" + ], + "operationId": "Post", + "parameters": [ + { + "name": "ministryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "hasConsentedToSms", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/person/bulk": { + "post": { + "tags": [ + "Person" + ], + "summary": "Gets \"Lite\" Person records by visible/external Unique Person Identifiers (not DB PKs)", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access only.", + "operationId": "GetByIds", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person unique IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "text/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/{id}/allergy": { + "put": { + "tags": [ + "Person" + ], + "summary": "Update person allergies", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Persons, WRITE access for Event where person takes attendance", + "operationId": "UpdateAllergies", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Allergies list", + "content": { + "application/json-patch+json": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + }, + "application/*+json": { + "schema": { + "type": "string" + } + } + } + }, + "responses": { + "200": { + "description": "Allergies were updated successfully." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found" + } + } + } + }, + "/api/person/match-or-create": { + "post": { + "tags": [ + "Person" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n", + "operationId": "GetsertPerson", + "parameters": [ + { + "name": "ministryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/export/preview": { + "get": { + "tags": [ + "Person" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Extract Person Data
\r\n", + "operationId": "GetDataExportPreview", + "parameters": [ + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "MilestoneId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "MilestoneChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "MilestoneDateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MilestoneDateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Extract Person Data" + ] + } + ] + } + } + }, + "/api/person/export/request": { + "post": { + "tags": [ + "Person" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Extract Person Data
\r\n", + "operationId": "RequestDataExport", + "parameters": [ + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "MilestoneId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "MilestoneChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "MilestoneDateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MilestoneDateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Extract Person Data" + ] + } + ] + } + } + }, + "/api/person/{id}/previous-ids": { + "get": { + "tags": [ + "Person" + ], + "summary": "Retrieves any previous Unique IDs fo records merged into current Person", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Person Audit Logs
\r\n
\r\n**Data Access:**
\r\nREAD Access to a list of any previous Person Unique IDs (given a person's current Unique ID).", + "operationId": "GetPreviousIds", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person unique ID to check", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person unique ID.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "404": { + "description": "Person not found by specified current Unique ID." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Person Audit Logs" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/person/{id}/public-contact": { + "get": { + "tags": [ + "Person" + ], + "summary": "Retrieves the given person's public contact info", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetPersonPublicContactById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person's public contact info.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonPublicContactViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonPublicContactViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonPublicContactViewModel" + } + } + } + }, + "400": { + "description": "Invalid. Something about the provided parameters is not valid", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/person/has-public-contacts": { + "get": { + "tags": [ + "Person" + ], + "summary": "Retrieves person IDs with public contacts", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD Access to a persons.", + "operationId": "HasPublicContacts", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "Person unique IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person unique IDs.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/public-contact": { + "get": { + "tags": [ + "Person" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n", + "operationId": "GetPersonPublicContactByIds", + "parameters": [ + { + "name": "ids", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/{personId}/qr-code/png": { + "get": { + "tags": [ + "Person" + ], + "summary": "Gets person QR Code PNG image", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Personal Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to Persons", + "operationId": "GetPersonQrCodePng", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Id", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Base64", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "PixelsPerModule", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "EmbedLogo", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ForegroundColor", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "BackgroundColor", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "LogoPercentage", + "in": "query", + "schema": { + "maximum": 100, + "minimum": 0, + "type": "integer", + "format": "int32" + } + }, + { + "name": "Transparent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "QR Code PNG file." + }, + "400": { + "description": "Invalid Person data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{id}/qr-code/svg": { + "get": { + "tags": [ + "Person" + ], + "summary": "Gets person QR Code SVG image", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Personal Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to Persons", + "operationId": "GetPersonQrCodeSvg", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pixelsPerModule", + "in": "query", + "description": "Module size in pixels", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "QR Code SVG file." + }, + "400": { + "description": "Invalid Person data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/person/{personId}/qr-code/bmp": { + "get": { + "tags": [ + "Person" + ], + "summary": "Gets person QR Code BMP image", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Personal Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to Persons", + "operationId": "GetPersonQrCodeBmp", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Id", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Base64", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "PixelsPerModule", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "EmbedLogo", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ForegroundColor", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "BackgroundColor", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "LogoPercentage", + "in": "query", + "schema": { + "maximum": 100, + "minimum": 0, + "type": "integer", + "format": "int32" + } + }, + { + "name": "Transparent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "QR Code PNG file." + }, + "400": { + "description": "Invalid Person data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/qr-code": { + "get": { + "tags": [ + "Person" + ], + "summary": "Gets person by QR Code string", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to Persons", + "operationId": "GetPersonByQrCode", + "parameters": [ + { + "name": "qrCode", + "in": "query", + "description": "QR Code string", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Person data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + } + } + }, + "400": { + "description": "Invalid QR code." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + }, + "409": { + "description": "Unsupported QR code." + } + } + } + }, + "/api/person/{personId}/address": { + "get": { + "tags": [ + "PersonAddress" + ], + "summary": "Gets Person Mailing Addresses by Person Unique ID", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Contact Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's list of Mailing Addresses", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Person Mailing Addresses", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonAddress" + ], + "summary": "Upserts a Person's list of Mailing Addresses", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Person Contact Data
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Person's list of Mailing Addresses. Performs Inserts, Updates and Deletes as needed.", + "operationId": "UpsertAddresses", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Mailing address list", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated list of Person Mailing Addresses", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/address-single": { + "post": { + "tags": [ + "PersonAddress" + ], + "summary": "Upserts a Person's Mailing Address", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Person Contact Data
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Person's list of Mailing Addresses. Performs Inserts, Updates and Deletes as needed.", + "operationId": "UpsertAddress", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Mailing address", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated list of Person Mailing Addresses", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/address/{addressId}": { + "delete": { + "tags": [ + "PersonAddress" + ], + "summary": "Deletes a specific mailing address from a Person", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Delete Person Contact Data
\r\n
\r\n**Data Access:**
\r\nDELETE a mailing address from a Person. Logical/soft-delete only.", + "operationId": "DeleteAddress", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "addressId", + "in": "path", + "description": "ID of the Person address to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Delete succeeded" + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Delete Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/admin/milestone": { + "get": { + "tags": [ + "PersonAdminMilestone" + ], + "summary": "Gets all Milestones", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nMANAGE Person Record Settings (People Area) Access to a collection of Milestones.\r\n\r\n**More Info:**
\r\nIntended for admin users of HC Admin.", + "operationId": "GetMilestones", + "parameters": [ + { + "name": "includeInactive", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns a collection of Milestones.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + } + } + }, + "401": { + "description": "UnAuthorized Request." + }, + "403": { + "description": "Forbidden Request." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonAdminMilestone" + ], + "summary": "Creates a new Milestone", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nMANAGE Person Record Settings (People Area) Access to a Milestone.\r\nCreates new Milestone record and returns the result.\r\n\r\n**More Info:**
\r\nIntended for admin users of HC Admin.\r\n* Can ONLY be called authenticated and authorized.", + "operationId": "CreateMilestone", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the created Milestone.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + } + }, + "409": { + "description": "Conflict." + }, + "400": { + "description": "POST body is not valid." + }, + "401": { + "description": "UnAuthorized Request." + }, + "403": { + "description": "Forbidden Request." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "PersonAdminMilestone" + ], + "summary": "Updates an existing list of Milestones", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nMANAGE Person Record Settings (People Area) Access to a Milestone.\r\nUpdates existing Milestone records and returns the results.\r\n\r\n**More Info:**
\r\nIntended for admin users of HC Admin.\r\n* Can ONLY be called authenticated and authorized.", + "operationId": "UpdateMilestones", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns the updated Milestone.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + } + } + }, + "409": { + "description": "Conflict." + }, + "400": { + "description": "PUT body is not valid." + }, + "401": { + "description": "UnAuthorized Request." + }, + "403": { + "description": "Forbidden Request." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + } + }, + "/api/person/admin/milestone/{milestoneId}": { + "get": { + "tags": [ + "PersonAdminMilestone" + ], + "summary": "Gets a Milestone by ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nMANAGE Person Record Settings (People Area) Access to a Milestone.\r\n\r\n**More Info:**
\r\nIntended for admin users of HC Admin.", + "operationId": "GetMilestone", + "parameters": [ + { + "name": "milestoneId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the requested Milestone.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + } + }, + "401": { + "description": "UnAuthorized Request." + }, + "403": { + "description": "Forbidden Request." + }, + "404": { + "description": "Entity Not Found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "PersonAdminMilestone" + ], + "summary": "Updates an existing Milestone", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nMANAGE Person Record Settings (People Area) Access to a Milestone.\r\nUpdates an existing Milestone record and returns the result.\r\n\r\n**More Info:**
\r\nIntended for admin users of HC Admin.\r\n* Can ONLY be called authenticated and authorized.", + "operationId": "UpdateMilestone", + "parameters": [ + { + "name": "milestoneId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneInboundViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the updated Milestone.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + } + }, + "409": { + "description": "Conflict." + }, + "400": { + "description": "POST body is not valid." + }, + "401": { + "description": "UnAuthorized Request." + }, + "403": { + "description": "Forbidden Request." + }, + "404": { + "description": "Entity Not Found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + } + }, + "/api/person/admin/milestone/{milestoneId}/usage": { + "get": { + "tags": [ + "PersonAdminMilestone" + ], + "summary": "Gets usage statistics for the specified Milestone", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nREAD access for aggregate statistics about where the specified Milestone is used throughout the system.\r\n\r\n**More Information:**
\r\nCurrently returns:\r\n* Number of People in the system that have the specified Milestone\r\n* Number of Ministry Locations in the system where the specified Milestone is an eligibility requirement", + "operationId": "GetMilestoneUsageStatistics", + "parameters": [ + { + "name": "milestoneId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the usage statistics for the requested Milestone.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneUsageStatsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneUsageStatsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneUsageStatsViewModel" + } + } + } + }, + "401": { + "description": "Caller is not authenticated." + }, + "403": { + "description": "Caller lacks required permissions." + }, + "404": { + "description": "Specified Milestone was not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + } + }, + "/api/person/admin/milestone/{id}/active": { + "put": { + "tags": [ + "PersonAdminMilestone" + ], + "summary": "Makes a Milestone Active", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nUPDATES a Milestone to be Active", + "operationId": "ActivateMilestone", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + } + }, + "/api/person/admin/milestone/{id}/inactive": { + "put": { + "tags": [ + "PersonAdminMilestone" + ], + "summary": "Makes a Milestone Inactive", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nUPDATES a Milestone to be Inactive", + "operationId": "InactivateMilestone", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + } + }, + "/api/person/admin/note-category": { + "get": { + "tags": [ + "PersonAdminNoteCategory" + ], + "summary": "Gets all Note Categories", + "description": "**Data Access:**
\r\nMANAGE Person Record Settings (People Area) Access to a collection of Note Categories.\r\n \r\n**More Info:**
\r\nIntended for admin users of HC Admin.", + "operationId": "GetNoteCategories", + "parameters": [ + { + "name": "includeInactive", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns a collection of Note Categories.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + } + } + }, + "401": { + "description": "UnAuthorized Request." + }, + "403": { + "description": "Forbidden Request." + } + } + }, + "post": { + "tags": [ + "PersonAdminNoteCategory" + ], + "summary": "Creates a new Note Category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nMANAGE Person Record Settings (People Area) Access to a Note Category.\r\nCreates new Note Category record and returns the result.\r\n\r\n**More Info:**
\r\nIntended for admin users of HC Admin.\r\n* Can ONLY be called authenticated and authorized.", + "operationId": "CreateNoteCategory", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteCategoryInboundViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteCategoryInboundViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteCategoryInboundViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteCategoryInboundViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the created Note Categories.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + } + } + }, + "400": { + "description": "POST body is not valid." + }, + "401": { + "description": "UnAuthorized Request." + }, + "403": { + "description": "Forbidden Request." + }, + "409": { + "description": "Conflict." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + } + }, + "/api/person/admin/note-category/{noteCategoryId}": { + "get": { + "tags": [ + "PersonAdminNoteCategory" + ], + "summary": "Gets a Note Category by ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nMANAGE Person Record Settings (People Area) Access to a Note Category.\r\n\r\n**More Info:**
\r\nIntended for admin users of HC Admin.", + "operationId": "GetNoteCategory", + "parameters": [ + { + "name": "noteCategoryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns a collection of Note Categories.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + } + } + }, + "401": { + "description": "UnAuthorized Request." + }, + "403": { + "description": "Forbidden Request." + }, + "404": { + "description": "Entity Not Found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "PersonAdminNoteCategory" + ], + "summary": "Updates an existing Note Category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nMANAGE Person Record Settings (People Area) Access to a Note Category.\r\nUpdates an existing Note Category record and returns the result.\r\n\r\n**More Info:**
\r\nIntended for admin users of HC Admin.\r\n* Can ONLY be called authenticated and authorized.", + "operationId": "UpdateNoteCategory", + "parameters": [ + { + "name": "notecategoryId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteCategoryInboundViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteCategoryInboundViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteCategoryInboundViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteCategoryInboundViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the updated Note Categories.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteCategoryViewModel" + } + } + } + } + }, + "400": { + "description": "POST body is not valid." + }, + "401": { + "description": "UnAuthorized Request." + }, + "403": { + "description": "Forbidden Request." + }, + "404": { + "description": "Entity Not Found." + }, + "409": { + "description": "Conflict." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + } + }, + "/api/person/admin/note-category/{id}/active": { + "put": { + "tags": [ + "PersonAdminNoteCategory" + ], + "summary": "Makes a Note Category Active", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nUPDATES a Note Category to be Active", + "operationId": "ActivateNoteCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + } + }, + "/api/person/admin/note-category/{id}/inactive": { + "put": { + "tags": [ + "PersonAdminNoteCategory" + ], + "summary": "Makes a Note Category Inactive", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Record Settings
\r\n
\r\n**Data Access:**
\r\nUPDATES a Note Category to be Inactive", + "operationId": "InactivateNoteCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Record Settings" + ] + } + ] + } + } + }, + "/api/person/{personId}/agreement": { + "get": { + "tags": [ + "PersonAgreement" + ], + "summary": "Gets a list of records of the specified person's agreements", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\n
\r\n**Data Access:**
\r\nREAD access to records about a person's consent to various system agreements.\r\nNo personally identifiable information about the referenced person is included.\r\nThe data includes metadata about the agreement, and the date the person agreed\r\nto it (and, if applicable, the date the person revoked such agreement).\r\n\r\n**More Info:**
includeAgreementContent flag will alter the response view model\r\ndepending on its value. If it is True then the response will be a collection of\r\nSaddleback.Cm.Services.Sdk.Core.ViewModels.Application.PersonAgreementDetailViewModel objects; otherwise it will be a collection\r\nof Saddleback.Cm.Services.Sdk.Core.ViewModels.Application.PersonAgreementLiteViewModel objects.", + "operationId": "GetPersonAgreements", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID (integer)", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeRevoked", + "in": "query", + "description": "Flag indicating whether or not to include revoked agreements (boolean).\r\nOptional; defaults to false if not specified.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeAgreementContent", + "in": "query", + "description": "Flag indicating whether or not to the actual detailed content of the referenced agreement (boolean).\r\nOptional; defaults to false if not specified.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAgreementDetailViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAgreementDetailViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAgreementDetailViewModel" + } + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonAgreement" + ], + "summary": "Creates a new record of a Person's consent to an Agreement", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\n
\r\n**Data Access:**
\r\nWRITE access to create new record of a Person's consent to an Agreement.\r\nIt is absolutely critical to security and regulatory compliance\r\nthat such an action has strong non-repudiation!\r\n\r\n**More Info:**
\r\nIdeally, this action should be performed by an authenticated user on his or her\r\nown person record. However, there are scenarios where such consent will be\r\ncollected in an unauthenticated context, e.g. via \"verification token workflow\",\r\nand so we do allow this action to be performed on behalf of a particular person\r\nby the system using a client credentials bearer token with \"internal systems access\" \r\nscope. This needs to be used thoughtfully and carefully, as there is potential for\r\nabuse that threatens the non-repudiation of the consent being recorded.", + "operationId": "RecordPersonAgreement", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID (integer)", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Services.Sdk.Core.ViewModels.Application.PersonAgreementRequestViewModel", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementLiteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementLiteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementLiteViewModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/agreement/{agreementId}": { + "delete": { + "tags": [ + "PersonAgreement" + ], + "summary": "Marks a Person Agreement record as Revoked", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\n
\r\n**Data Access:**
\r\nWRITE access to update a record of a Person's consent to an Agreement\r\nby adding a Revoke timestamp, indicating the Person has withdrawn his\r\nor her consent.\r\n\r\nIt is absolutely critical to security and regulatory compliance\r\nthat such an action has strong non-repudiation!\r\n\r\n**More Info:**
\r\nIdeally, this action should be performed by an authenticated user on his or her\r\nown person record. We do allow this action to be performed on behalf of a particular\r\nperson by the system using a client credentials bearer token with\r\n\"internal systems access\" scope. This needs to be used thoughtfully and carefully,\r\nas there is potential for abuse that threatens the non-repudiation of the revokation of\r\nconsent being recorded.", + "operationId": "RevokePersonAgreement", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "agreementId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementLiteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementLiteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAgreementLiteViewModel" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + } + }, + "/api/audit-log/person": { + "get": { + "tags": [ + "PersonAuditLog" + ], + "summary": "Gets all Person Audit Logs, paginated", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Person Audit Logs
\r\n
\r\n**Inline Authorization Checks:**
\r\nAny Notes on Audit Logs that are marked as Sensitive will be redacted if the caller lacks permission\r\nfor Sensitive Notes.\r\n\r\n**Data Access:**
\r\nREAD access to Person Audit Log data, and any Notes attached to these Audit Logs.\r\n\r\n**More Information:**
\r\nUsed to power \"Global\" People Management Audit Log. Paginated at the database level, with page size\r\nof 20. Can be filtered to only include Audit Logs within a specified date range.", + "operationId": "GetForAllPersons", + "parameters": [ + { + "name": "Category", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "DateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Editor", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Source", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "SortBy", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortDir", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "description": "Page number if pagination is being used. First page is 0.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "description": "Page size (defaults to 150 if omitted)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns requested page of Audit Logs.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AuditLogViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AuditLogViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AuditLogViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have Permission to Access Person Audit Logs." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Person Audit Logs" + ] + } + ] + } + } + }, + "/api/audit-log/person/{personId}": { + "get": { + "tags": [ + "PersonAuditLog" + ], + "summary": "Gets all Audit Logs for a single Person", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Person Audit Logs
\r\n
\r\n**Inline Authorization Checks:**
\r\nAny Notes on Audit Logs that are marked as Sensitive will be redacted if the caller lacks permission\r\nfor Sensitive Notes.\r\n\r\n**Data Access:**
\r\nREAD access to Audit Logs for a single Person.", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AuditLogViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AuditLogViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AuditLogViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Must have Permission to Access Person Audit Logs." + }, + "404": { + "description": "Requested person not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Person Audit Logs" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/audit-log/{id}/note": { + "post": { + "tags": [ + "PersonAuditLog" + ], + "summary": "Appends a Note to a Person Audit Log entry", + "description": "**Authorization Policy:**
\r\nRequires access to all of these Permissions: Access Person Audit Logs, Create Person Notes
\r\n
\r\n**Data Access:**
\r\nCREATE access to Notes associated to Person Audit Log Entries\r\n\r\n**More Info:**
\r\nAlways appends a new Note to the audit log entry. Does not allow an existing note to be updated.\r\nAlso, does not currently allow a Sensitive Note to be created on the Audit Log.", + "operationId": "AppendAuditLogNote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Audit Log ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AuditLogNoteCreateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AuditLogNoteCreateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AuditLogNoteCreateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AuditLogNoteCreateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "" + }, + "403": { + "description": "Not authorized. Must have Permission to Access Person Audit Logs and Create Person Notes." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Person Audit Logs", + "Create Person Notes" + ] + } + ] + } + } + }, + "/api/person-basic/base/{id}": { + "get": { + "tags": [ + "PersonBasic" + ], + "summary": "Gets Saddleback.Cm.Contracts.Models.People.PersonBasic by Unique ID", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD access to \"Person Base\" information\r\n\r\n**More Info:**
\r\nMostly intended for use for HC internal remote procedure calls;\r\nnot really intended for use by the back-office client application or other consumers.", + "operationId": "GetBaseById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_PersonBase" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_PersonBase" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_PersonBase" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person-basic/{id}": { + "get": { + "tags": [ + "PersonBasic" + ], + "summary": "Gets Saddleback.Cm.Contracts.Models.People.PersonBasic by Unique ID", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD access to \"Person Basic\" information (First Name, Last Name, Primary Email and associated verification metadata)\r\n\r\n**More Info:**
\r\nMostly intended for use for HC internal remote procedure calls;\r\nnot really intended for use by the back-office client application or other consumers.", + "operationId": "GetBasicById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonBasicViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonBasicViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonBasicViewModel" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person-basic": { + "post": { + "tags": [ + "PersonBasic" + ], + "summary": "Gets Saddleback.Cm.Contracts.Models.People.PersonBasic data for multiple Persons by a collection of Unique IDs", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD access to \"Person Basic\" information (First Name, Last Name, Primary Email and associated verification metadata)\r\n\r\n**More Info:**
\r\nMostly intended for use for HC internal remote procedure calls;\r\nnot really intended for use by the back-office client application or other consumers.", + "operationId": "GetBasicByUniqueId", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person request data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonByIdRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonByIdRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonByIdRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonByIdRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonBasicViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonBasicViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonBasicViewModel" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/{id}/connection": { + "get": { + "tags": [ + "PersonConnection" + ], + "summary": "Gets All the ministry leaders of any ministry that given person is related to by person's unique Id", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Relationships
\r\n", + "operationId": "GetPersonConnectionsByPersonUniqueId", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "checkInValidation", + "in": "query", + "description": "True to enable check-in validation", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Should be set for checkInValidation", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "onlyFamily", + "in": "query", + "description": "If True, will skip querying for Ministry and Small Group Leaders and only return related People with other relationship types (mostly typical Family relationships)", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonConnectionViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonConnectionViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonConnectionViewModel" + } + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Relationships" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/person/{personId}/contactPreferences": { + "get": { + "tags": [ + "PersonContactPreference" + ], + "summary": "Gets Person Contact Preferences by Person Unique ID", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Contact Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's Contact Preferences", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person's Contact Preferences", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonContactPreference" + ], + "summary": "Upserts a Person's Contact Preferences", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Person Contact Data
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Person's Contact Preferences", + "operationId": "Upsert", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Contact Preferences", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Person's updated Contact Preferences", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/contactPreferences": { + "get": { + "tags": [ + "PersonContactPreference" + ], + "summary": "Gets Person Contact Preferences filtered by Person Unique IDs", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Person Contact Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's Contact Preferences", + "operationId": "GetByPersonIds", + "parameters": [ + { + "name": "personIds", + "in": "query", + "description": "Person Unique IDs", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person's Contact Preferences", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceDtoViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceDtoViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceDtoViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Contact Data" + ] + } + ] + } + } + }, + "/api/person/notification": { + "post": { + "tags": [ + "PersonContactPreference" + ], + "summary": "Gets Notification Person information by Person Unique IDs", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access only", + "operationId": "GetNotificationPersons", + "parameters": [ + { + "name": "contactOnly", + "in": "query", + "description": "True to retrieve only contact preferences/is deceased", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person Unique IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns Notification Person list", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_NotificationPerson" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_NotificationPerson" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_NotificationPerson" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/{personId}/credential": { + "get": { + "tags": [ + "PersonCredentials" + ], + "summary": "Gets Person Credentials by Person Unique ID", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Manage Person Credentials
\r\n", + "operationId": "Get", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person Credentials", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ApplicationUser" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ApplicationUser" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ApplicationUser" + } + } + } + } + }, + "403": { + "description": "Not authorized" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Person Credentials" + ] + } + ] + } + } + }, + "/api/person/credential/{id}/send-email-verification": { + "post": { + "tags": [ + "PersonCredentials" + ], + "summary": "Sends Email Verification Request by User Account ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Credentials
\r\n", + "operationId": "SendEmailVerification", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "User Account ID", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "403": { + "description": "Not authorized" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Credentials" + ] + } + ] + } + } + }, + "/api/person/credential/{id}/send-password-reset": { + "post": { + "tags": [ + "PersonCredentials" + ], + "summary": "Sends Password Reset Request by User Account ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Credentials
\r\n", + "operationId": "SendPasswordReset", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "User Account ID", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "403": { + "description": "Not authorized" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Credentials" + ] + } + ] + } + } + }, + "/api/person/credential/{id}/unlock": { + "post": { + "tags": [ + "PersonCredentials" + ], + "summary": "Sends Unlock Request by User Account ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Credentials
\r\n", + "operationId": "Unlock", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "User Account ID", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request" + }, + "403": { + "description": "Not authorized" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Credentials" + ] + } + ] + } + } + }, + "/api/person/credential/{id}/change-email/{email}": { + "post": { + "tags": [ + "PersonCredentials" + ], + "summary": "Changes a User's Email", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:people-credentials-manage
\r\nAllowed With one of these Permissions: Manage Person Credentials, Manage Person Credentials Email
\r\n
\r\n**Data Access**
\r\nAllows an authenticated User with a special permission or client security scope to change a selected user's login email (via Identity Server API).", + "operationId": "UpdateEmail", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "User Account ID", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "email", + "in": "path", + "description": "User Email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "verify", + "in": "query", + "description": "Require User Email Verification Flag", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "User Login Email Changed Successfully", + "content": { + "text/plain": { + "schema": { + "type": "boolean" + } + }, + "application/json": { + "schema": { + "type": "boolean" + } + }, + "text/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "500": { + "description": "Internal Server Error" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:people-credentials-manage" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Person Credentials" + ] + }, + { + "Permissions": [ + "Manage Person Credentials Email" + ] + } + ] + } + } + }, + "/api/person/{personId}/document": { + "get": { + "tags": [ + "PersonDocument" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Person Documents
\r\n", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "excludeMilestoneDocuments", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Person Documents" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonDocument" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Create Person Documents
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "overwrite", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Create Person Documents" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/document/{id}": { + "put": { + "tags": [ + "PersonDocument" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Person Documents
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonDocumentViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonDocumentViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonDocumentViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonDocumentViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Person Documents" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "PersonDocument" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Delete Person Documents
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Delete Person Documents" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/duplicate": { + "get": { + "tags": [ + "PersonDuplicate" + ], + "summary": "Retrive deduplication groups from the given deduplication report", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Merge Person Records
\r\n
\r\n**Data Access:**
\r\nREAD access to Personal and Contact information", + "operationId": "Get", + "parameters": [ + { + "name": "groupPageSize", + "in": "query", + "description": "Maximum groups number", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "dupesListSize", + "in": "query", + "description": "Maximum duplication items number in each group", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "reportId", + "in": "query", + "description": "Report ID. If default (0), use the last one", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "classificationBound", + "in": "query", + "description": "Classification filter for deduplicaion items. Items should have classification value less or equal to this one.", + "schema": { + "$ref": "#/components/schemas/Core_Model_MatchingClassification" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operation completed successfully." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Merge Person Records" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonDuplicate" + ], + "summary": "Search deduplication items for given person data (not using DB)", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Merge Person Records
\r\n
\r\n**Data Access:**
\r\nREAD access to Person search information", + "operationId": "GetDuplicate", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Operation completed successfully." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Person not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Merge Person Records" + ] + } + ] + } + } + }, + "/api/person/duplicate/{personId}": { + "get": { + "tags": [ + "PersonDuplicate" + ], + "summary": "Retrive deduplication items for given person from the given deduplication report", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Merge Person Records
\r\n
\r\n**Data Access:**
\r\nREAD access to Personal and Contact information", + "operationId": "GetGroup", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "reportId", + "in": "query", + "description": "Report ID. If default (0), use the last one", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "dupesListSize", + "in": "query", + "description": "Maximum duplication items number", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "classificationBound", + "in": "query", + "description": "Classification filter for deduplicaion items. Items should have classification value less or equal to this one.", + "schema": { + "$ref": "#/components/schemas/Core_Model_MatchingClassification" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operation completed successfully." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Person not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Merge Person Records" + ] + } + ] + } + } + }, + "/api/person/duplicate/statistics": { + "get": { + "tags": [ + "PersonDuplicate" + ], + "summary": "Retrive deduplication statistic for the given deduplication report", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Merge Person Records
\r\n
\r\n**Data Access:**
\r\nREAD access to Personal and Contact information", + "operationId": "GetStatistic", + "parameters": [ + { + "name": "reportId", + "in": "query", + "description": "Report ID. If default (0), use the last one", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "classificationBound", + "in": "query", + "description": "Classification filter for deduplicaion items. Items should have classification value less or equal to this one.", + "schema": { + "$ref": "#/components/schemas/Core_Model_MatchingClassification" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operation completed successfully." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Merge Person Records" + ] + } + ] + } + } + }, + "/api/person/{personId}/duplicate": { + "get": { + "tags": [ + "PersonDuplicate" + ], + "summary": "Search deduplication items for given person", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Merge Person Records
\r\n
\r\n**Data Access:**
\r\nREAD access to Person search information", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dupesListSize", + "in": "query", + "description": "Maximum duplication items number", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "classificationBound", + "in": "query", + "description": "Classification filter for deduplicaion items. Items should have classification value less or equal to this one.", + "schema": { + "$ref": "#/components/schemas/Core_Model_MatchingClassification" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operation completed successfully." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Person not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Merge Person Records" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/duplicate/mismatch": { + "post": { + "tags": [ + "PersonDuplicate" + ], + "summary": "Set mismatch for persons", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Merge Person Records
\r\n
\r\n**Data Access:**
\r\nWRITE access for merging", + "operationId": "CreateMismatch", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Web.ViewModels.People.MismatchViewModelMismatch data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MismatchViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MismatchViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MismatchViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MismatchViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Operation completed successfully." + }, + "400": { + "description": "Invalid mismatch data." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Merge Person Records" + ] + } + ] + } + } + }, + "/api/person/{personId}/emailaddress": { + "get": { + "tags": [ + "PersonEmail" + ], + "summary": "Gets Person Emails by Person Unique ID", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Contact Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's list of Email Addresses\r\n\r\n**More Info:**
\r\n* Returns 404 if the person record is not found.\r\n* Returns 400 if the person has Do Not Contact (global) preference set.\r\n* If person exists, doesn't have a Do Not Contact preference, and doesn't actually have any emails,\r\n this call will produce an empty collection.", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Person Email Addresses", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not found" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonEmail" + ], + "summary": "Upserts a Person's list of Emails", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Person Contact Data
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Person's list of Email Addresses. Performs Inserts, Updates and Deletes as needed.", + "operationId": "UpsertEmails", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "verify", + "in": "query", + "description": "Boolean flag: If True, send verification emails for any new email addresses", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Address list", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated list of Person Email Addresses", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + }, + "409": { + "description": "Conflict (trying to add same email address to same person multiple times)" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/emailaddress-single": { + "post": { + "tags": [ + "PersonEmail" + ], + "summary": "Upserts a Person's Email", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Person Contact Data
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Person's list of Email Addresses. Performs Inserts, Updates and Deletes as needed.", + "operationId": "UpsertEmail", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "verify", + "in": "query", + "description": "Boolean flag: If True, send verification emails for any new email addresses", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Address", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated list of Person Email Addresses", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + }, + "409": { + "description": "Conflict (trying to add same email address to same person multiple times)" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/emailaddress/{emailId}": { + "delete": { + "tags": [ + "PersonEmail" + ], + "summary": "Deletes a specific email address from a Person", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Delete Person Contact Data
\r\n
\r\n**Data Access:**
\r\nDELETE an email address from a Person. Logical/soft-delete only.", + "operationId": "DeleteEmail", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "emailId", + "in": "path", + "description": "ID of the Person email to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Delete succeeded" + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Delete Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/emergency-contact": { + "get": { + "tags": [ + "PersonEmergencyContact" + ], + "summary": "Gets Person Emergency Contacts by Person Unique ID", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Emergency Contacts
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's Emergency Contacts", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person's Emergency Contacts", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Emergency Contacts" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonEmergencyContact" + ], + "summary": "Upserts a Person's Emergency Contact", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With one of these Permissions: Create Person Emergency Contacts, Update Person Emergency Contacts
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Person's Contact Preferences", + "operationId": "Upsert", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Contact Preferences", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Person's updated Contact Preferences", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Create Person Emergency Contacts" + ], + "RouteParameters": [ + "personId" + ] + }, + { + "Permissions": [ + "Update Person Emergency Contacts" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/primary-emergency-contact": { + "post": { + "tags": [ + "PersonEmergencyContact" + ], + "summary": "Gets Person Primary Emergency Contacts by Person Unique IDs", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access only", + "operationId": "GetPrimaryEmergencyContacts", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person Unique IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns Person's Primary Emergency Contacts", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/{personId}/emergency-contact/delete": { + "post": { + "tags": [ + "PersonEmergencyContact" + ], + "summary": "Delete a Person's Emergency Contact", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Delete Person Emergency Contacts
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Person's Contact Preferences", + "operationId": "Delete", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Contact Preferences", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Person's updated Contact Preferences", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Delete Person Emergency Contacts" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/facebook": { + "get": { + "tags": [ + "PersonFacebook" + ], + "summary": "Gets Person Facebook Info by Person Unique ID", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Personal Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's Facebook Info", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person Facebook", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonFacebookViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonFacebookViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonFacebookViewModel" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/facebook": { + "post": { + "tags": [ + "PersonFacebook" + ], + "summary": "Gets token by Person Facebook Info", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetToken", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person Facebook", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonFacebookViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonFacebookViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonFacebookViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonFacebookViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Token", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/person/update-family/church-entity": { + "put": { + "tags": [ + "PersonFamilyUpdate" + ], + "summary": "Updates Home Campus for multiple Persons", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Personal Data
\r\n
\r\n**Data Access:**
\r\nUPDATE access to Campus for multiple Persons\r\n\r\n**More Info:**
\r\nIntended usage is to apply a Home Campus update to multiple family members at once.", + "operationId": "UpdateHomeCampus", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FamilyCampusUpdateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FamilyCampusUpdateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FamilyCampusUpdateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FamilyCampusUpdateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Update succeeded" + }, + "400": { + "description": "Request is invalid" + }, + "403": { + "description": "Not authorized" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Personal Data" + ], + "ModelParameterName": [ + "viewModel" + ] + } + ] + } + } + }, + "/api/person/update-family/address": { + "put": { + "tags": [ + "PersonFamilyUpdate" + ], + "summary": "Updates Primary Address for multiple Persons", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Person Contact Data
\r\n
\r\n**Data Access:**
\r\nUPDATE access to Campus for multiple Persons\r\n\r\n**More Info:**
\r\nIntended usage is to apply a Primary Address update to multiple family members at once.\r\nUses Address Standardizer to compare address to see if the inbound address already exists in the\r\ncollection of addresses for each of the specified persons.", + "operationId": "UpdatePrimaryAddress", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FamilyAddressUpdateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FamilyAddressUpdateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FamilyAddressUpdateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FamilyAddressUpdateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Update succeeded" + }, + "400": { + "description": "Request is invalid" + }, + "403": { + "description": "Not authorized" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ] + } + ] + } + } + }, + "/api/person/{personId}/giving": { + "get": { + "tags": [ + "PersonGiving" + ], + "summary": "Gets Person Giving by Person Unique ID", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Giving
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's Giving", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person Giving", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonGivingViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonGivingViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonGivingViewModel" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Giving" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/giving/family": { + "get": { + "tags": [ + "PersonGiving" + ], + "summary": "Gets Person Giving by Person Unique ID and the spouses Giving Date as well", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Giving
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's Giving", + "operationId": "GetFamilyGivingByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person Giving", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonGivingViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonGivingViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonGivingViewModel" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Giving" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{uniqueId}/groups": { + "get": { + "tags": [ + "PersonGroups" + ], + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Personal Data
\r\n", + "operationId": "GetPersonGroups", + "parameters": [ + { + "name": "uniqueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "uniqueId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ], + "RouteParameters": [ + "uniqueId" + ] + } + ] + } + } + }, + "/api/person/group": { + "post": { + "tags": [ + "PersonGroups" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "CreateSmallGroup", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SmallGroupViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SmallGroupViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SmallGroupViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SmallGroupViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/person/group/participant": { + "post": { + "tags": [ + "PersonGroups" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "AcceptSmallGroupInvite", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SmallGroupParticipantViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SmallGroupParticipantViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SmallGroupParticipantViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SmallGroupParticipantViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/integration/person": { + "get": { + "tags": [ + "PersonIntegration" + ], + "summary": "Searches for Person record by Email Address", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD Access to very basic Person info (ID, name and email).\r\n\r\n**More Info:**
\r\nIntended for integration partners with very basic person data needs.\r\nUsed by PEACE Mission Trips Management.\r\n\r\nBecause it is only returning a small subset of person data, it is **_not_** performing security\r\ntrimming by church structure.", + "operationId": "SearchPersonsByEmail", + "parameters": [ + { + "name": "email", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns collection of matched Person records.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + } + } + } + }, + "400": { + "description": "Query string parameters are not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonIntegration" + ], + "summary": "Creates a new \"lite\" Person record.", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nCREATE and READ Access on Person. Creates a new \"lite\" Person record with name and email\r\nand returns the result with its Unique ID.\r\n\r\n**More Info:**
\r\nIntended for creating Person records as needed during Identity Server Account Registration,\r\nand also for integration partners with very basic person data needs, but that potentially need to\r\ncreate new records (e.g. PEACE Mission Trips Management).\r\n\r\nAll other callers are encouraged to first search for an existing record by email before invoking this endpoint\r\nto create a new record.", + "operationId": "CreatePersonLiteAsync", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns created Person record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + } + } + }, + "400": { + "description": "POST body is not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/integration/person/{id}": { + "get": { + "tags": [ + "PersonIntegration" + ], + "summary": "Retrieves person details", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD Access to full Person info.\r\n\r\n**More Info:**
\r\nReturns Person data using the SDK model. Currently, only authorizes Identity Server (illeism client).", + "operationId": "GetPersonDetails", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Person.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Person_SDK" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Person_SDK" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_Person_SDK" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/integration/person/{id}/set-consent": { + "post": { + "tags": [ + "PersonIntegration" + ], + "summary": "Creates a new \"lite\" Person record.", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nCREATE and READ Access on Person. Creates a new \"lite\" Person record with name and email\r\nand returns the result with its Unique ID.\r\n\r\n**More Info:**
\r\nIntended for creating Person records as needed during Identity Server Account Registration,\r\nand also for integration partners with very basic person data needs, but that potentially need to\r\ncreate new records (e.g. PEACE Mission Trips Management).\r\n\r\nAll other callers are encouraged to first search for an existing record by email before invoking this endpoint\r\nto create a new record.", + "operationId": "SetConsentedByPersonUniqueIdAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns created Person record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + } + } + }, + "400": { + "description": "POST body is not valid." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/lite": { + "get": { + "tags": [ + "PersonLite" + ], + "summary": "Retrieves details on Lite Person records for the queue", + "description": "**Authorization Policy:**
\r\nRequires access to all of these Permissions: Read Personal Data, Read Person Contact Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to very basic Person info (ID, name and email), as well as some person audit data (source and create date)\r\n\r\n**More Info:**
\r\nPowers the Person Lite Queue in the CM application.", + "operationId": "QueryLitePersonRecords", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortDescending", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns page of Person Lite records, along with total count.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + } + } + }, + "400": { + "description": "Query string parameters are not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Personal Data", + "Read Person Contact Data" + ] + } + ] + } + } + }, + "/api/person/{id}/membership-status": { + "put": { + "tags": [ + "PersonMembershipStatus" + ], + "summary": "Updates a Person's Membership Status", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Person Membership Status
\r\n
\r\n**Inline Authorization Checks:**
\r\nCertain membership status transitions must be accompanied by a note that must be marked sensitive.\r\nCaller must also possess permission for creating sensitive notes in these cases. \r\n\r\n**Data Access:**
\r\nUPDATE access specifically to the Membership Status field of a Person record.\r\n\r\n**More Info:**
\r\nThe regular Person PUT / Update endpoint will not update Membership Status.\r\nIt is only update-able via this endpoint.", + "operationId": "UpdateMembershipStatus", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MembershipStatusUpdateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MembershipStatusUpdateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MembershipStatusUpdateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_MembershipStatusUpdateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Successfully updated Membership Status." + }, + "400": { + "description": "Membership Status update cannot be processed." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Person Membership Status" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/person/merge": { + "post": { + "tags": [ + "PersonMerge" + ], + "summary": "Merge persons", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Merge Person Records
\r\n
\r\n**Inline Authorization Checks:**
\r\nUser should have access to person's church entities.\r\n\r\n**Data Access:**
\r\nUPDATE and DELETE Access to a Person Record, including portions of the associated records.", + "operationId": "Merge", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Merging data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MergeDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MergeDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MergeDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MergeDto" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the merged Person record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + } + } + }, + "403": { + "description": "Not authorized. Has no access to Person UPDATE and DELETE or not authorized for specific person's church entity." + }, + "404": { + "description": "The one of Person records were not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Merge Person Records" + ] + } + ] + } + } + }, + "/api/person/mergeable": { + "get": { + "tags": [ + "PersonMerge" + ], + "summary": "Generate person's meta data for manual person merging", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Personal Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person Record, including portions of the associated records.", + "operationId": "GetMergeable", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Merging data", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Persons' meta data to merge.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MergeDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MergeDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_MergeDto" + } + } + } + }, + "403": { + "description": "Not authorized. Has no access to read the persons." + }, + "404": { + "description": "The one of Person records were not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ] + } + ] + } + } + }, + "/api/person/{id}/milestone": { + "get": { + "tags": [ + "PersonMilestone" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:people-milestone-read
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Milestones
\r\n", + "operationId": "GetPersonMilestones", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:people-milestone-read" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Milestones" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonMilestone" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:people-milestone-create, hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Create Person Milestones
\r\n", + "operationId": "CreatePersonMilestone", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:people-milestone-create", + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Create Person Milestones" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + } + }, + "/api/person/milestone": { + "post": { + "tags": [ + "PersonMilestone" + ], + "summary": "Gets person milestones for person list", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access only", + "operationId": "GetPersonMilestones", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person & milestone IDs", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAndMilestoneIdsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAndMilestoneIdsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAndMilestoneIdsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonAndMilestoneIdsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/milestone/{personMilestoneId}": { + "get": { + "tags": [ + "PersonMilestone" + ], + "summary": "Gets a single Person Milestone record by Person Milestone ID", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD access to a single Person Milestone record.\r\n\r\n**More Information:**
\r\nCurrently mostly used for REST SDK (e.g. for Follow Ups Rules Engine to fetch Person Milestone details for its processing).", + "operationId": "GetPersonMilestone", + "parameters": [ + { + "name": "personMilestoneId", + "in": "path", + "description": "Person Milestone ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "checkPrerequisites", + "in": "query", + "description": "Boolean flag indicating whether to check for any prerequisites for the Milestone type\r\nfor the specified Person Milestone record, and, if there are any, whether the Person has satisfied them.
\r\nOptional; defaults to False (i.e. omit this check).", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/{personId}/milestone/{milestoneId}": { + "put": { + "tags": [ + "PersonMilestone" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Person Milestones
\r\n", + "operationId": "UpdatePersonMilestone", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "milestoneId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Person Milestones" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/milestone/{personMilestoneId}": { + "delete": { + "tags": [ + "PersonMilestone" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Delete Person Milestones
\r\n", + "operationId": "DeletePersonMilestoneDate", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personMilestoneId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Delete Person Milestones" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{id}/ministry": { + "get": { + "tags": [ + "PersonMinistry" + ], + "summary": "Gets ministry membership records for a person", + "description": "**Data Access:**
\r\nREAD Access to a list of Ministry Member Records for a single Person.", + "operationId": "GetMinistriesByPerson", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "query", + "description": "Ministry ID. Used only for ministry member and SO operations", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "Church entity ID. Used only for ministry member and SO operations", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "servingOpportunityId", + "in": "query", + "description": "Serving Opportunity ID. Used only for SO operations", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Ministry Member records for specified person", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryMemberDetailedViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryMemberDetailedViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryMemberDetailedViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/person/{id}/my-ministries": { + "get": { + "tags": [ + "PersonMinistry" + ], + "summary": "Gets Person's My Ministries", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\n", + "operationId": "GetMyMinistries", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Ministries a person is involved with", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MyMinistryWithLocationViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MyMinistryWithLocationViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MyMinistryWithLocationViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MyMinistryWithLocationViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MyMinistryWithLocationViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MyMinistryWithLocationViewModel" + } + } + } + } + }, + "404": { + "description": "Person not found.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MyMinistryWithLocationViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MyMinistryWithLocationViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MyMinistryWithLocationViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ] + } + } + }, + "/api/person/{id}/my-serving-opportunities": { + "get": { + "tags": [ + "PersonMinistry" + ], + "summary": "Gets Person's My Serving Opportunities", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\n", + "operationId": "GetMyServingOpportunities", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDate", + "in": "query", + "description": "", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "endDate", + "in": "query", + "description": "", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "includeAllOccurrences", + "in": "query", + "description": "", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Person's My Serving Opportunities", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + } + } + }, + "401": { + "description": "Not authorized.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + } + } + }, + "403": { + "description": "Forbidden.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + } + } + }, + "404": { + "description": "Person not found.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityDataViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ] + } + } + }, + "/api/person/{personId}/ministry-serving-hours": { + "get": { + "tags": [ + "PersonMinistry" + ], + "summary": "Gets Person's My Ministry Serving Hours", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\n", + "operationId": "GetPersonMinistryServingHours", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Ministry Serving Hours for a person", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + } + } + }, + "404": { + "description": "Person not found.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonMinistry" + ], + "summary": "Add an entry of a Person's Ministry Serving Hours", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\n
\r\n**Data Access:**
", + "operationId": "AddPersonMinistryServingHours", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the newly added Ministry Serving Hours entry", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + } + } + }, + "400": { + "description": "Invalid model" + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + }, + "put": { + "tags": [ + "PersonMinistry" + ], + "summary": "Update an entry of a Person's Ministry Serving Hours", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\n
\r\n**Data Access:**
", + "operationId": "UpdatePersonMinistryServingHours", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the updated Ministry Serving Hours entry", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonMinistryServingHoursViewModel" + } + } + } + } + }, + "400": { + "description": "Invalid model" + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/ministry-serving-hours/{id}": { + "delete": { + "tags": [ + "PersonMinistry" + ], + "summary": "Deletes a specific entry of a Person's Ministry Serving Hours", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\n
\r\n**Data Access:**
\r\nDELETE an entry of a Person's Ministry Serving Hours. Logical/soft-delete only.", + "operationId": "DeletePersonMinistryServingHours", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of an entry of Ministry Serving Hours", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Delete succeeded" + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{id}/serving-opportunities/eligibility": { + "get": { + "tags": [ + "PersonMinistry" + ], + "summary": "Check Person's Serving Opportunities Eligibility", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\n
\r\n**Data Access:**
", + "operationId": "GetMyServingOpportunityEligibilities", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "string of comma delimited serving opportunity Ids", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Person's My Serving Opportunities", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + } + } + }, + "401": { + "description": "Not authorized.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + } + } + }, + "403": { + "description": "Forbidden.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + } + } + }, + "404": { + "description": "Person not found.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonServingOpportunityEligibilityViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ] + } + } + }, + "/api/person/note/search": { + "get": { + "tags": [ + "PersonNote" + ], + "summary": "Search Notes", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Read Person Notes
\r\n", + "operationId": "SearchNotes", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "NoteCategoryFilter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PinnedFilter", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "EntityType", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ReminderFilter", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_PersonNoteSearchResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonNoteSearchResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonNoteSearchResultsViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Notes" + ] + } + ] + } + } + }, + "/api/person/{personId}/note": { + "get": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Person Notes
\r\n", + "operationId": "GetNotesByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Person Notes" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:people-note-create, hc:internal-systems
\r\nAllowed With Permission: Create Person Notes
\r\n", + "operationId": "CreateNote", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:people-note-create", + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Create Person Notes" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/note/attendee/count": { + "post": { + "tags": [ + "PersonNote" + ], + "summary": "Gets person note counts", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Person Notes
\r\n
\r\n**Data Access:**
\r\nREAD Access to very Person notes", + "operationId": "GetAttendeeNotesCount", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person attendance data", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_PersonAttendance" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_PersonAttendance" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_PersonAttendance" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_PersonAttendance" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns note counts.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_NotesCount" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_NotesCount" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_NotesCount" + } + } + } + } + }, + "400": { + "description": "Invalid body.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Person Notes" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/note/{id}": { + "get": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Person Notes
\r\n", + "operationId": "GetNoteById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Notes" + ] + } + ] + } + } + }, + "/api/person/note/{entityType}/{id}": { + "get": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n", + "operationId": "GetNotesByEntityId", + "parameters": [ + { + "name": "entityType", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/note/{entityType}/count": { + "get": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n", + "operationId": "GetNotesCount", + "parameters": [ + { + "name": "entityType", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/{personId}/note/{id}": { + "put": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Update Person Notes
\r\n", + "operationId": "UpdateNote", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Notes" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Delete Person Notes
\r\n", + "operationId": "DeleteNote", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Delete Person Notes" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/note/pin": { + "post": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:people-note-pin
\r\nAllowed With Permission: Update Person Notes
\r\n", + "operationId": "PinNotes", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:people-note-pin" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Notes" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/note/unpin": { + "post": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Person Notes
\r\n", + "operationId": "UnPinNotes", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Person Notes" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/note/{noteId}/reminder": { + "post": { + "tags": [ + "PersonNote" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Create Person Notes, Update Person Notes
\r\n", + "operationId": "CreateNoteReminderScheduleAsync", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "noteId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteReminderViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteReminderViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteReminderViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_NoteReminderViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Create Person Notes" + ], + "RouteParameters": [ + "personId" + ] + }, + { + "Permissions": [ + "Update Person Notes" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/occupation": { + "get": { + "tags": [ + "PersonOccupation" + ], + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Occupations
\r\n", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Occupations" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonOccupation" + ], + "summary": "Creates a new occupation for the given person id", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Create Person Occupations
\r\n", + "operationId": "InsertOccupation", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Create Person Occupations" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/occupation/{occupationId}": { + "put": { + "tags": [ + "PersonOccupation" + ], + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Person Occupations
\r\n", + "operationId": "UpdateOccupation", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occupationId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Occupations" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "PersonOccupation" + ], + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Delete Person Occupations
\r\n", + "operationId": "DeleteOccupation", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occupationId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Delete Person Occupations" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/phone": { + "get": { + "tags": [ + "PersonPhone" + ], + "summary": "Gets Person Phone Numbers by Person Unique ID", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Person Contact Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's list of Phone Numbers", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Person Mailing Addresses", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not found" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonPhone" + ], + "summary": "Upserts a Person's list of Phone Numbers", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Person Contact Data
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Person's list of Phone Numbers. Performs Inserts, Updates and Deletes as needed.", + "operationId": "UpsertPhones", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Phone numbers list", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated list of Person Phone Numbers", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/phone": { + "get": { + "tags": [ + "PersonPhone" + ], + "summary": "Gets Person's Phones filtered by Unique IDs", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Person Contact Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Person's list of Phone Numbers", + "operationId": "GetByPersonIds", + "parameters": [ + { + "name": "personIds", + "in": "query", + "description": "Person Unique ID", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "PhoneTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Person Mailing Addresses", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not found" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Contact Data" + ] + } + ] + } + } + }, + "/api/person/{personId}/phone-single": { + "post": { + "tags": [ + "PersonPhone" + ], + "summary": "Upserts a Person's Phone Number", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Person Contact Data
\r\n
\r\n**Data Access:**
\r\nWRITE Access to a Person's list of Phone Numbers. Performs Inserts, Updates and Deletes as needed.", + "operationId": "UpsertPhone", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Phone number", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated list of Person Phone Numbers", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/phone/{phoneId}": { + "delete": { + "tags": [ + "PersonPhone" + ], + "summary": "Deletes a specific phone number from a Person", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Delete Person Contact Data
\r\n
\r\n**Data Access:**
\r\nDELETE a phone number from a Person. Logical/soft-delete only.", + "operationId": "DeletePhone", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "phoneId", + "in": "path", + "description": "ID of the Person phone number to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Delete succeeded" + }, + "403": { + "description": "Not authorized" + }, + "404": { + "description": "Person not Found" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Delete Person Contact Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/userpreference": { + "post": { + "tags": [ + "PersonPreference" + ], + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_PersonUserPreference" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_PersonUserPreference" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_PersonUserPreference" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_PersonUserPreference" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/userpreference/public-contacts": { + "post": { + "tags": [ + "PersonPreference" + ], + "summary": "Updates current user public contacts", + "description": "**Data Access:**
\r\nUPDATE person contacts.", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person's public contacts IDs", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_PublicContactsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_PublicContactsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_PublicContactsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_PublicContactsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Opersation is completed successfully" + }, + "400": { + "description": "The body is not valid or contains invalid contact IDs." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "The specified email or phone were not found." + } + } + } + }, + "/api/preview-feature/{id}": { + "put": { + "tags": [ + "PersonPreviewFeature" + ], + "operationId": "TogglePreviewFeature", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FeatureToggleRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FeatureToggleRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FeatureToggleRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_FeatureToggleRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/person/avatar": { + "post": { + "tags": [ + "PersonProfile" + ], + "summary": "Sets a person's \"Web Avatar\" image", + "description": "**Inline Authorization Checks:**
\r\nCaller must either be the person record owner, or have \"Update Personal Data Permission\" and be authorized for person's home campus (church entity).\r\n\r\n**Data Access**
\r\nInserts or updates the person's \"Web Avatar\" image", + "operationId": "PostAvatar", + "parameters": [ + { + "name": "personId", + "in": "query", + "description": "Person Unique ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Image successfully uploaded and saved." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "The referenced Person record was not found." + } + } + } + }, + "/api/person/photo": { + "post": { + "tags": [ + "PersonProfile" + ], + "summary": "Sets a person's \"Staff Photo\" image", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Personal Data
\r\n
\r\n**Inline Authorization Checks:**
\r\nCaller must be authorized for person's home campus (church entity).\r\n\r\n**Data Access**
\r\nInserts or updates the person's \"Staff Photo\" image", + "operationId": "PostStaffPhoto", + "parameters": [ + { + "name": "personId", + "in": "query", + "description": "Person Unique ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Image successfully uploaded and saved." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "The referenced Person record was not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Personal Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/avatar": { + "get": { + "tags": [ + "PersonProfile" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAvatar", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "delete": { + "tags": [ + "PersonProfile" + ], + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Delete Personal Data
\r\n", + "operationId": "DeleteAvatar", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Delete Personal Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/photo": { + "get": { + "tags": [ + "PersonProfile" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetStaffPhoto", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "g", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "delete": { + "tags": [ + "PersonProfile" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Delete Personal Data
\r\n", + "operationId": "DeleteStaffPhoto", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Delete Personal Data" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/profile-picture-url": { + "post": { + "tags": [ + "PersonProfile" + ], + "summary": "Gets profile pictures", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nOnly for internal usage", + "operationId": "GetProfilePicturesUrls", + "parameters": [ + { + "name": "personProfilePictureType", + "in": "query", + "description": "Profile picture type", + "schema": { + "$ref": "#/components/schemas/Core_Model_PersonProfilePictureType" + } + }, + { + "name": "usePictureIdentifier", + "in": "query", + "description": "Use picture identifier", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person unique IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns created Person record.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_PersonProfilePictureKeyValuePair" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_PersonProfilePictureKeyValuePair" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_PersonProfilePictureKeyValuePair" + } + } + } + } + }, + "403": { + "description": "Not Authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/person/relation": { + "get": { + "tags": [ + "PersonRelation" + ], + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/person/relationship/{id}": { + "get": { + "tags": [ + "PersonRelationship" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Person Relationships
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Person Relationships" + ] + } + ] + } + }, + "put": { + "tags": [ + "PersonRelationship" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Person Relationships
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "force", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Person Relationships" + ] + } + ] + } + }, + "delete": { + "tags": [ + "PersonRelationship" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Delete Person Relationships
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Delete Person Relationships" + ] + } + ] + } + } + }, + "/api/person/{personId}/relationship": { + "get": { + "tags": [ + "PersonRelationship" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Person Relationships
\r\n", + "operationId": "GetPersonRelationships", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeRelativeProfilePictureUrls", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Person Relationships" + ], + "RouteParameters": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/relationship": { + "post": { + "tags": [ + "PersonRelationship" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Create Person Relationships
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "force", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Create Person Relationships" + ] + } + ] + } + } + }, + "/api/person/relationship/validate": { + "post": { + "tags": [ + "PersonRelationship" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Create Person Relationships
\r\n", + "operationId": "Validate", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonRelationshipViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Create Person Relationships" + ] + } + ] + } + } + }, + "/api/person/search-fields": { + "get": { + "tags": [ + "PersonSearch" + ], + "operationId": "GetSearchFields", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/person/typeahead": { + "get": { + "tags": [ + "PersonSearch" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Person Search
\r\n", + "operationId": "TypeAhead", + "parameters": [ + { + "name": "q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "includeDeceased", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "churchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "servingOpportunityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Person Search" + ] + } + ] + } + } + }, + "/api/person/search": { + "get": { + "tags": [ + "PersonSearch" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Person Search
\r\n", + "operationId": "Search", + "parameters": [ + { + "name": "q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "pageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "includeDeceased", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "churchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "servingOpportunityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "eventId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "checkInType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Dto_PersonCheckInType" + } + }, + { + "name": "refPersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isUser", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "checkMembership", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "ageCategory", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Dto_AgeCategory" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Person Search" + ] + } + ] + } + } + }, + "/api/user": { + "get": { + "tags": [ + "PersonSecurity" + ], + "summary": "Gets all Users, but their basic information only (name, campus and avatar)", + "description": "**Data Access:**
\r\nREAD access on very basic information for all users. Deliberately not restricted by Manage User Access permission,\r\nnor filtered per Church Structure (campus) scope. (Optionally can be filtered by one or more selected Campus IDs if desired.)\r\n\r\n**More Info:**
\r\nThis endpoint is intended for use cases like producing a list of all users in the system, to which Follow Up [Tasks] could be reassigned.\r\nWe are deliberately *not* making this method require Manage User Access permission. \r\nMost Healthy Church Users that do need to work with Follow Up [Tasks] and would be calling this endpoint\r\nwould not have Manage User Access permission (as that permission is typically reserved for APIs\r\npowering the user access and security management UIs).", + "operationId": "GetAll", + "parameters": [ + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "q", + "in": "query", + "description": "Optional search term to filter the list of users. If numeric, is assumed to a Person Unique ID. Otherwise it searches against person name and primary email.", + "schema": { + "type": "string" + } + }, + { + "name": "includeDisabledUsers", + "in": "query", + "description": "Boolean flag whether or not to include disabled/inactive users. Defaults to FALSE if ommitted (active users only).", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "churchEntityIds", + "in": "query", + "description": "Optional comma-separated", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Users.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonSecurityLiteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonSecurityLiteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonSecurityLiteViewModel" + } + } + } + } + } + } + } + }, + "/api/user/{id}": { + "get": { + "tags": [ + "PersonSecurity" + ], + "summary": "Gets details for a single User by Person Unique ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage User Access
\r\n
\r\n**Inline Authorization Checks**:
\r\nThe caller must be authorized for the Home Campus of the underlying Person to request the security details\r\nof the User.\r\n\r\n**Data Access:**
\r\nREAD access on the full security access details of a Person who is Users of the Healthy Church application.\r\nIncludes some basic Person data and all applicable security/authorization related data.\r\n\r\n**More Info:**
\r\nWill return a 200 OK with available data so long as the underlying Person record can be located, even if the Person\r\nis not currently designated as a User of the Healthy Church application. (All Users are Persons; not all Persons are Users.)", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the User record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "The Person record was not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage User Access" + ], + "RouteParameters": [ + "id" + ] + } + ] + } + }, + "put": { + "tags": [ + "PersonSecurity" + ], + "summary": "Upserts User Access Management data for a Person", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage User Access
\r\n
\r\n**Inline Authorization Checks:**
\r\nAll requests will be subject to additional checks on permission for Sensitive Security Access Management\r\n(i.e. if a caller lacking this permission attempts to upsert a record assigned Sensitive Roles or Permissions,\r\nit will be Forbidden) and authorization for any involved Campuses (church entities).\r\nThis includes the underlying Person's Home Campus, and any Campus(es) for which the User will be authorized.\r\n\r\n**Data Access:**
\r\nCREATE / UPDATE / DELETE on User Access Management data, including:\r\n* Designating a Person as a User of Healthy Church\r\n* Enabling or disabling User Accounts\r\n* Adding or removing scoped Security Role assignments\r\n* Adding or removing directly assigned scoped Permissions\r\n\r\n**More Info:**
\r\nThe request is considered valid so long as the underlying Person record can be located, even if the Person\r\nis not currently designated as a User of the Healthy Church application.\r\n(All Users are Persons; not all Persons are Users.)\r\nMaking this request for a Person not currently designated as a User will mark that Person as a User going forward,\r\ni.e. it is a create/insert from the User perspective.\r\nMaking this request for a Person that is currently designated as a User is an update.", + "operationId": "PutAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "User record to upsert", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the upserted User.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + } + } + }, + "400": { + "description": "Request is not valid (likely due to malformed body/payload).", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Lacks permission or lacks Church Structure based authorization." + }, + "404": { + "description": "Person record not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage User Access" + ] + } + ] + } + } + }, + "/api/user/security-role/{securityRoleId}": { + "get": { + "tags": [ + "PersonSecurity" + ], + "summary": "Gets a list of Users assigned a particular Security Role", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage User Access
\r\n
\r\n**Inline Authorization Checks:**
\r\nUser list will be filtered per the caller's Church Structure (Campuses) authorization.\r\n\r\n**Data Access**
\r\nREAD access to a list of Persons who are Users of the Healthy Church application.\r\nIncludes some basic Person data and some security/authorization related data.", + "operationId": "GetBySecurityRoleId", + "parameters": [ + { + "name": "securityRoleId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Users.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized. Lacks permission or lacks authorization for any Church Entities." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage User Access" + ] + } + ] + } + } + }, + "/api/user/{id}/role": { + "put": { + "tags": [ + "PersonSecurity" + ], + "summary": "Add Special Roles to User", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nWRITE access assigning Users one or more 'Special' (system-managed) Security Roles.\r\nIntended for use by the System only (via REST/RPC from other Microservices). Not intended for direct use by end-users.\r\n\r\n**More Info:**
\r\nRoles are assigned by Name, not ID.", + "operationId": "AddSpecialRoles", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Roles to add", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonSecurityRoleLiteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonSecurityRoleLiteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonSecurityRoleLiteViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonSecurityRoleLiteViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns the upserted User.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + } + } + }, + "400": { + "description": "Request is not valid (likely due to malformed body/payload).", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. lacks the \"internal systems\" scope." + }, + "404": { + "description": "Person record not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + }, + "delete": { + "tags": [ + "PersonSecurity" + ], + "summary": "Remove Special Roles from User", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nWRITE access removing assignment of one or more 'Special' (system-managed) Security Roles from the specified User.\r\nIntended for use by the System only (via REST/RPC from other Microservices). Not intended for direct use by end-users.\r\n\r\n**More Info:**
\r\nRoles are identied by Name, not ID.", + "operationId": "DeleteSpecialRoles", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Roles to delete", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonSecurityRoleLiteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonSecurityRoleLiteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonSecurityRoleLiteViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonSecurityRoleLiteViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns the upserted User.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + } + } + } + }, + "400": { + "description": "Request is not valid (likely due to malformed body/payload).", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. lacks the \"internal systems\" scope." + }, + "404": { + "description": "Person record not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/user/search": { + "get": { + "tags": [ + "PersonSecurity" + ], + "summary": "Gets a sorted and paged (and possibly filtered) list of Users", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage User Access, Manage Teams
\r\n
\r\n**Inline Authorization Checks:**
\r\nUser search results will be filtered per the caller's Church Structure (Campuses) authorization.\r\n\r\n**Data Access**
\r\nREAD access to a list of Persons who are Users of the Healthy Church application.\r\nIncludes some basic Person data and some security/authorization related data.", + "operationId": "Search", + "parameters": [ + { + "name": "Q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "Disabled", + "in": "query", + "description": "Optional flag specifying whether to include only Active Users (if false) or only Disabled Users (if true)", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Users.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_UserListViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_UserListViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_UserListViewModel" + } + } + } + }, + "400": { + "description": "Search query is not valid.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Lacks permission or lacks authorization for any Church Entities." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage User Access" + ] + }, + { + "Permissions": [ + "Manage Teams" + ] + } + ] + } + } + }, + "/api/user/changepassword": { + "post": { + "tags": [ + "PersonSecurity" + ], + "summary": "Changes a User's Password", + "description": "**Data Access**
\r\nAllows an authenticated User to change his/her password (via Identity Server API).\r\nRequires current password to be confirmed as an additional security check.", + "operationId": "ChangePassword", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "User Password", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_UserPassword" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_UserPassword" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_UserPassword" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_UserPassword" + } + } + } + }, + "responses": { + "200": { + "description": "User Password Changed Successfully", + "content": { + "text/plain": { + "schema": { + "type": "boolean" + } + }, + "application/json": { + "schema": { + "type": "boolean" + } + }, + "text/json": { + "schema": { + "type": "boolean" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized" + }, + "500": { + "description": "Internal Server Error" + } + } + } + }, + "/api/user/communication": { + "post": { + "tags": [ + "PersonSecurity" + ], + "summary": "Send Bulk Email to all users", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Bulk Email Users
\r\n
\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the email to all recipients.", + "operationId": "SendEmail", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Bulk Email Users" + ] + } + ] + } + } + }, + "/api/user/communication/attachment": { + "post": { + "tags": [ + "PersonSecurity" + ], + "summary": "Upload a File for Email Attachment", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Bulk Email Users
\r\n
\r\n**Data Access:**
\r\nUploads the file to cloud storage (Amazon S3) where it can be viewed/downloaded by unauthenticated callers\r\nwith the URL (intended usage is to embed the URL to the file in an email in lieu of actually \"attaching\" the file).", + "operationId": "UploadAttachment", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "File is empty.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Bulk Email Users" + ] + } + ] + } + } + }, + "/api/user/{id}/permission": { + "get": { + "tags": [ + "PersonSecurity" + ], + "summary": "Get User Permissions Based on ClientId", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\n
\r\n**Data Access:**
\r\nInternal access\r\n\r\nRoles are assigned by Name, not ID", + "operationId": "GetUserPermissions", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the upserted User." + }, + "403": { + "description": "Not authorized. lacks the \"internal systems\" scope." + }, + "404": { + "description": "Person record not found." + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "id" + ] + } + ] + } + } + }, + "/api/person/{personId}/sermon-notes": { + "get": { + "tags": [ + "PersonSermonNotes" + ], + "description": "**Authorization Policy:**
\r\nRequires Person Record Ownership
\r\n", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + } + }, + "/api/person/{personId}/sermon-notes/{noteId}": { + "get": { + "tags": [ + "PersonSermonNotes" + ], + "description": "**Authorization Policy:**
\r\nRequires Person Record Ownership
\r\n", + "operationId": "GetByPersonIdAndNoteId", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "noteId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "PersonSermonNotes" + ], + "description": "**Authorization Policy:**
\r\nRequires Person Record Ownership
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "noteId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_Body" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_Body" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_Body" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_Body" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + }, + "put": { + "tags": [ + "PersonSermonNotes" + ], + "description": "**Authorization Policy:**
\r\nRequires Person Record Ownership
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "noteId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_Body" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_Body" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_Body" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_Body" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "PersonSermonNotes" + ], + "description": "**Authorization Policy:**
\r\nRequires Person Record Ownership
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "noteId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + } + }, + "/api": { + "get": { + "tags": [ + "Playlist" + ], + "operationId": "GetAll", + "parameters": [ + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/playlist/{id}": { + "get": { + "tags": [ + "Playlist" + ], + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "Playlist" + ], + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PlaylistViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PlaylistViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PlaylistViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PlaylistViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "Playlist" + ], + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/playlist/channel": { + "get": { + "tags": [ + "Playlist" + ], + "operationId": "GetByChannelId", + "parameters": [ + { + "name": "channelId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "getAll", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/playlist/media": { + "get": { + "tags": [ + "Playlist" + ], + "operationId": "GetByMediaId", + "parameters": [ + { + "name": "mediaId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/playlist/version": { + "get": { + "tags": [ + "Playlist" + ], + "operationId": "GetVersion1", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/playlist": { + "post": { + "tags": [ + "Playlist" + ], + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PlaylistViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PlaylistViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PlaylistViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PlaylistViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/podcast": { + "get": { + "tags": [ + "Podcast" + ], + "operationId": "GetAll", + "parameters": [ + { + "name": "getAllMedia", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "post": { + "tags": [ + "Podcast" + ], + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PodcastViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PodcastViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PodcastViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PodcastViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/podcast/{id}": { + "get": { + "tags": [ + "Podcast" + ], + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "top", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "getPlaylistInfo", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "getAllMedia", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "Podcast" + ], + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PodcastViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PodcastViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PodcastViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_PodcastViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "Podcast" + ], + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/podcast/channel": { + "get": { + "tags": [ + "Podcast" + ], + "operationId": "GetByChannelId", + "parameters": [ + { + "name": "channelId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "getAllMedia", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "appId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/power-bi-token/{reportId}": { + "get": { + "tags": [ + "PowerBIToken" + ], + "operationId": "GetEmbedToken", + "parameters": [ + { + "name": "reportId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/prayer-request/{id}": { + "get": { + "tags": [ + "PrayerRequest" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Prayer Requests
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Prayer Requests" + ] + } + ] + } + } + }, + "/api/prayer-request/{id}/tags": { + "put": { + "tags": [ + "PrayerRequest" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Prayer Requests
\r\n", + "operationId": "UpdateTags", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Tag" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Tag" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Tag" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Tag" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Prayer Requests" + ] + } + ] + } + } + }, + "/api/promotion/release-notes/latest": { + "get": { + "tags": [ + "Promotion" + ], + "summary": "Get the latest published release notes", + "description": "**Data Access:**
\r\nREAD Access to CMS data\r\nREAD/WRITE Access to PersonPromotionHistoryRepo\r\n \r\n**More Info:**
\r\nWe track whether or not the person has seen the notes (PersonPromotionHistoryRepo). If they have, no notes are returned (notes should only be viewed once).", + "operationId": "GetLatestReleaseNotes", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/promotion/release-notes": { + "get": { + "tags": [ + "Promotion" + ], + "summary": "Get all release notes, usually for previewing", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Browse In Draft Mode
\r\n
\r\n**Data Access:**
\r\nREAD Access to CMS data", + "operationId": "GetReleaseNotes", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Browse In Draft Mode" + ] + } + ] + } + } + }, + "/api/promotion/release-notes/{contentId}": { + "get": { + "tags": [ + "Promotion" + ], + "summary": "Get specific version of release notes", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Browse In Draft Mode
\r\n
\r\n**Data Access:**
\r\nREAD Access to CMS data", + "operationId": "GetReleaseNotesByContentId", + "parameters": [ + { + "name": "contentId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "versionId", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Browse In Draft Mode" + ] + } + ] + } + } + }, + "/api/rate-limit/rules": { + "get": { + "tags": [ + "RateLimitRule" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetRules", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "RateLimitRule" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "PostRules", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/rate-limit/rules/{ruleId}": { + "get": { + "tags": [ + "RateLimitRule" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "GetRuleById", + "parameters": [ + { + "name": "ruleId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "RateLimitRule" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "UpdateRuleById", + "parameters": [ + { + "name": "ruleId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_RateLimitRule" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "delete": { + "tags": [ + "RateLimitRule" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n", + "operationId": "DeleteRule", + "parameters": [ + { + "name": "ruleId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/region/bycountry/{id}": { + "get": { + "tags": [ + "Region" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetRegionsByCountry", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/connection-card/template/search": { + "get": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Connection Form
\r\n", + "operationId": "Search", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "SortField", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "SortFieldOrder", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "IsActive", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Connection Form" + ] + } + ] + } + } + }, + "/api/connection-card/template/by-church-entity/{churchEntityId}": { + "get": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetByChurchEntityId", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/connection-card/template/{id}": { + "get": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Connection Form
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Connection Form" + ] + } + ] + } + }, + "delete": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Delete Connection Form
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Delete Connection Form" + ] + } + ] + } + } + }, + "/api/connection-card/template/{id}/field-info": { + "get": { + "tags": [ + "ResponseCard" + ], + "summary": "Gets Connection Card Template \"Field Info\" (flattened collection of Fields/Sub-Fields)", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Connection Form
\r\n
\r\n**Data Access:**
\r\nREAD access to flattened collection of Fields/Sub-Fields for a Connection Card Template\r\n(optionally including historical/predecessor versions)\r\n\r\n**More Info:**
\r\nExposed via Core REST SDK to make this information available to other components and services within\r\nthe Healthy Church ecosystem (e.g. Workflows Service for processing Connection Card based Workflows).", + "operationId": "GetFieldInfo", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Card Template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includePredecessors", + "in": "query", + "description": "Boolean flag indicating whether or not to include historical/predecessor versions. Optional; defaults to False.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ResponseCardFieldInfoViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ResponseCardFieldInfoViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ResponseCardFieldInfoViewModel" + } + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Connection Form" + ] + } + ] + } + } + }, + "/api/connection-card/template/{id}/history": { + "get": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Connection Form
\r\n", + "operationId": "GetHistory", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Connection Form" + ] + } + ] + } + } + }, + "/api/connection-card/template/{id}/workflow-entities": { + "get": { + "tags": [ + "ResponseCard" + ], + "summary": "Gets Workflow Entity Data for the specified Connection Card Template", + "description": "**Authorization Policy:**
\r\nRequires access to all of these Permissions: Read Connection Form, Manage Follow Up Rules
\r\n", + "operationId": "GetWorkflowEntitiesForResponseCardTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardFollowUpRulesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardFollowUpRulesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardFollowUpRulesViewModel" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Server Error" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Connection Form", + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/connection-card/template/church-entities": { + "get": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetChurchEntitiesWithResponseCards", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/connection-card/template/published": { + "get": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetPublishedResponseCards", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/connection-card/template": { + "post": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Create Connection Form
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Create Connection Form" + ], + "ModelParameterName": [ + "viewModel" + ] + } + ] + } + } + }, + "/api/connection-card/template/{id}/public-labels": { + "put": { + "tags": [ + "ResponseCard" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Connection Form
\r\n", + "operationId": "PutPublicLabels", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Connection Form" + ] + } + ] + } + } + }, + "/api/connection-card/template/{id}/publish": { + "put": { + "tags": [ + "ResponseCard" + ], + "summary": "Publishes a Connection Card Template", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Connection Form
\r\n", + "operationId": "PublishResponseCard", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Card Template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection Card Template has been published" + }, + "403": { + "description": "Not authorized. Must have permission to update Connection Card Templates and authorization for the template's campus." + }, + "404": { + "description": "The specified Connection Card Template was not found." + }, + "500": { + "description": "The publication attempt failed." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Connection Form" + ] + } + ] + } + } + }, + "/api/connection-card/template/{id}/unpublish": { + "put": { + "tags": [ + "ResponseCard" + ], + "summary": "Unpublishes a Connection Card Template", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Connection Form
\r\n", + "operationId": "UnpublishResponseCard", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Card Template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection Card Template has been unpublished" + }, + "403": { + "description": "Not authorized. Must have permission to update Connection Card Templates and authorization for the template's campus." + }, + "404": { + "description": "The specified Connection Card Template was not found." + }, + "500": { + "description": "The un-publication attempt failed." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Connection Form" + ] + } + ] + } + } + }, + "/api/connection-card/template/{id}/active": { + "put": { + "tags": [ + "ResponseCard" + ], + "summary": "Make a Connection Card Template active", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Connection Form
\r\n", + "operationId": "ActivateResponseCard", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Card Template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection Card Template has been activated" + }, + "403": { + "description": "Not authorized. Must have permission to update Connection Card Templates and authorization for the template's campus." + }, + "404": { + "description": "The specified Connection Card Template was not found." + }, + "500": { + "description": "The publication attempt failed." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Connection Form" + ] + } + ] + } + } + }, + "/api/connection-card/template/{id}/inactive": { + "put": { + "tags": [ + "ResponseCard" + ], + "summary": "Make a Connection Card Template inactive", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Connection Form
\r\n", + "operationId": "InactivateResponseCard", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Card Template ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Connection Card Template has been inactivated" + }, + "403": { + "description": "Not authorized. Must have permission to update Connection Card Templates and authorization for the template's campus." + }, + "404": { + "description": "The specified Connection Card Template was not found." + }, + "500": { + "description": "The publication attempt failed." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Connection Form" + ] + } + ] + } + } + }, + "/api/connection-card/entry/{id}": { + "get": { + "tags": [ + "ResponseCardEntry" + ], + "summary": "Gets Connection Card (Response Card) Entry details by Connection Card Entry ID", + "description": "**Inline Authorization Checks:**
\r\nAccess to this resource is granted to:
\r\n* Callers with the \"Internal Systems\" API Resource Scope
\r\n* Callers with \"Read Response Card Entries\" Permission
\r\n* The \"Person Record Owner\" (the person to whom the Connection Card Entry pertains is allowed to request his/her own data)\r\n\r\n**Data Access:**
\r\nREAD access to the details of a single Connection Card (Response Card) Entry (form response).", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Response Card Entry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + } + }, + "put": { + "tags": [ + "ResponseCardEntry" + ], + "summary": "Updates a Connection Card (Response Card) Entry", + "description": "**Inline Authorization Checks:**
\r\nAccess to this resource is granted to:
\r\n* Callers with \"Read Response Card Entries\" permission
\r\n* The \"Person Record Owner\" (the person to whom the Connection Card Entry pertains is allowed to update his/her own data)\r\n\r\n**Data Access:**
\r\nWRITE (UPDATE) access to the details of a single Connection Card (Response Card) Entry (form response).", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Connection Card (Response Card) Entry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Connection Card (Response Card) Entry", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + } + }, + "delete": { + "tags": [ + "ResponseCardEntry" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Delete Connection Form Entry
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Delete Connection Form Entry" + ] + } + ] + } + } + }, + "/api/connection-card/entry/search": { + "get": { + "tags": [ + "ResponseCardEntry" + ], + "summary": "Searches/Browses a paginated list of Connection Card (Response Card) Entries by the specified search criteria", + "description": "**Inline Authorization Checks:**
\r\nAccess to this resource is granted to:
\r\n* Callers with \"Read Response Card Entries\" permission
\r\n* The \"Person Record Owner\" (the person to whom the Connection Card Entry pertains is allowed to request his/her own data).
\r\n * This only applies if the **PersonId** parameter is specified.\r\n\r\n**Data Access:**
\r\nREAD access to a paginated list of top-level metadata for Connection Card (Response Card) Entries (form responses) matching the specified search criteria.", + "operationId": "GetSearch", + "parameters": [ + { + "name": "ResponseCardId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonName", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortField", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortFieldOrder", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "description": "Page number if pagination is being used. First page is 0.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "description": "Page size (defaults to 150 if omitted)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntrySearchResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntrySearchResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntrySearchResultsViewModel" + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + } + } + }, + "/api/connection-card/entry/export/preview": { + "get": { + "tags": [ + "ResponseCardEntry" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Extract Connection Card Data
\r\n", + "operationId": "GetDataExportPreview", + "parameters": [ + { + "name": "ResponseCardId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonName", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortField", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortFieldOrder", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "description": "Page number if pagination is being used. First page is 0.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "description": "Page size (defaults to 150 if omitted)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Extract Connection Card Data" + ] + } + ] + } + } + }, + "/api/connection-card/entry/export/request": { + "post": { + "tags": [ + "ResponseCardEntry" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Extract Connection Card Data
\r\n", + "operationId": "RequestDataExport", + "parameters": [ + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ResponseCardId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonName", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortField", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortFieldOrder", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "description": "Page number if pagination is being used. First page is 0.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "description": "Page size (defaults to 150 if omitted)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "IncludeDeceased", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "TimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Extract Connection Card Data" + ] + } + ] + } + } + }, + "/api/connection-card/entry": { + "post": { + "tags": [ + "ResponseCardEntry" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Create Connection Form Entry
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Create Connection Form Entry" + ] + } + ] + } + } + }, + "/api/integration/response-card/entry": { + "post": { + "tags": [ + "ResponseCardEntryIntegration" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryIntegrationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryIntegrationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryIntegrationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryIntegrationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/rpc": { + "post": { + "tags": [ + "Rpc" + ], + "summary": "Handle RPC request", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
", + "operationId": "Rpc", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "RPC command", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_RpcRestContainer" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_RpcRestContainer" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_RpcRestContainer" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_RpcRestContainer" + } + } + } + }, + "responses": { + "200": { + "description": "Returns RPC operation result." + }, + "400": { + "description": "Invalid RPC model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/schedule/{id}": { + "get": { + "tags": [ + "Schedule" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "Get", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "delete": { + "tags": [ + "Schedule" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Schedules
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Schedules" + ] + } + ] + } + } + }, + "/api/schedule/church-entity/{churchEntityId}": { + "get": { + "tags": [ + "Schedule" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetByChurchEntity", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/schedule/church-entity/{churchEntityId}/schedule-entity-type/{scheduleEntityTypeId}": { + "get": { + "tags": [ + "Schedule" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetByChurchEntityAndScheduleEntityType", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "scheduleEntityTypeId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/schedule": { + "post": { + "tags": [ + "Schedule" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Schedules
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ScheduleViewModel_Core" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ScheduleViewModel_Core" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ScheduleViewModel_Core" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ScheduleViewModel_Core" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Schedules" + ], + "ModelParameterName": [ + "viewModel" + ] + } + ] + } + } + }, + "/api/schedule-venue-metric": { + "get": { + "tags": [ + "ScheduleVenueMetric" + ], + "summary": "Get metric schedule - venue metrics", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nREAD Access to Metrics", + "operationId": "GetFiltered", + "parameters": [ + { + "name": "scheduleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "venueId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includePastMetrics", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns all schedule - venue metrics." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "ScheduleVenueMetric" + ], + "summary": "Upsert a schedule's mapped venues and metrics", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Metrics
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Schedule / Venue / Metric mappings.", + "operationId": "Upsert", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.Web.ViewModels.DataCapture.ScheduleVenueMetricsViewModelList of venue metric mappings for the given scheduleId", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ScheduleVenueMetricsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ScheduleVenueMetricsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ScheduleVenueMetricsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ScheduleVenueMetricsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns upserted collection of schedule / venue / metric mappings." + }, + "400": { + "description": "Invalid request. Proferred data is invalid or referenced schedule is invalid." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + } + ] + } + } + }, + "/api/schedule-venue-metric/sort-order": { + "put": { + "tags": [ + "ScheduleVenueMetric" + ], + "summary": "Set sort order for Venue", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Metrics
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Metrics", + "operationId": "SetSortOrder", + "parameters": [ + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "venueId", + "in": "query", + "description": "Venue ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sortOrder", + "in": "query", + "description": "Sort order", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "operation was completed successfully." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Metrics" + ] + } + ] + } + } + }, + "/api/search-index": { + "get": { + "tags": [ + "SearchIndex" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n", + "operationId": "GetIndexCounts", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + }, + "post": { + "tags": [ + "SearchIndex" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Access Developer Diagnostics
\r\n", + "operationId": "UpdateSearchIndex", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_UpdateSearchIndexRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_UpdateSearchIndexRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_UpdateSearchIndexRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_UpdateSearchIndexRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/search-index/{entityId}": { + "get": { + "tags": [ + "SearchIndex" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n", + "operationId": "GetIndexDocumentById", + "parameters": [ + { + "name": "entityType", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/search-index/types": { + "get": { + "tags": [ + "SearchIndex" + ], + "summary": "Get Entity types available for search", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n", + "operationId": "GetTypes", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns types." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/search-index/fields": { + "get": { + "tags": [ + "SearchIndex" + ], + "summary": "Get Entity types available for search", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n", + "operationId": "GetFields", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity type. Should be one of types from api/search-index/types call", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns types." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/search-index/search": { + "get": { + "tags": [ + "SearchIndex" + ], + "summary": "Get Search Documents by model type and query string", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n", + "operationId": "Search", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity type. Should be one of types from api/search-index/types call", + "schema": { + "type": "string" + } + }, + { + "name": "q", + "in": "query", + "description": "Query", + "schema": { + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page Number", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found documents." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/search-index/action": { + "put": { + "tags": [ + "SearchIndex" + ], + "summary": "Make operation for Search Document list", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Access Developer Diagnostics
\r\n", + "operationId": "UpdateSearchIndices", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity type. Should be one of types from api/search-index/types call", + "schema": { + "type": "string" + } + }, + { + "name": "ids", + "in": "query", + "description": "Comma separated document IDs", + "schema": { + "type": "string" + } + }, + { + "name": "operation", + "in": "query", + "description": "Operation for documents. One of REINDEX, DELETE or DELETE_REINDEX", + "schema": { + "$ref": "#/components/schemas/Core_App_Operation" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operation was completed successfully." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/search-index/global-reindex": { + "post": { + "tags": [ + "SearchIndex" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n", + "operationId": "GlobalReindex", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/search-index/reindex": { + "post": { + "tags": [ + "SearchIndex" + ], + "summary": "Reindex all documents by type", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n", + "operationId": "Reindex", + "parameters": [ + { + "name": "entityType", + "in": "query", + "description": "Entity type. Should be one of types from api/search-index/types call", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Reindex started." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/audit-log/security-role/{id}": { + "get": { + "tags": [ + "SecurityAuditLog" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Security Audit Logs
\r\n", + "operationId": "GetRoleAuditLogs", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Security Audit Logs" + ] + } + ] + } + } + }, + "/api/audit-log/user/{id}": { + "get": { + "tags": [ + "SecurityAuditLog" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Security Audit Logs
\r\n", + "operationId": "GetUserAuditLogs", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Security Audit Logs" + ] + } + ] + } + } + }, + "/api/security-role": { + "get": { + "tags": [ + "SecurityRole" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Security Roles, Manage User Access
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Security Roles" + ] + }, + { + "Permissions": [ + "Manage User Access" + ] + } + ] + } + }, + "post": { + "tags": [ + "SecurityRole" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Security Roles
\r\n", + "operationId": "Insert", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SecurityRoleManagementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SecurityRoleManagementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SecurityRoleManagementViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SecurityRoleManagementViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Security Roles" + ] + } + ] + } + } + }, + "/api/security-role/{id}": { + "get": { + "tags": [ + "SecurityRole" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Security Roles
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Security Roles" + ] + } + ] + } + }, + "put": { + "tags": [ + "SecurityRole" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Security Roles
\r\n", + "operationId": "Update", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SecurityRoleManagementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SecurityRoleManagementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SecurityRoleManagementViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SecurityRoleManagementViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Security Roles" + ] + } + ] + } + }, + "delete": { + "tags": [ + "SecurityRole" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Security Roles
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Security Roles" + ] + } + ] + } + } + }, + "/api/service-companion": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Service Companion Data for an Authenticated User", + "operationId": "GetServiceCompanionAuthenticated", + "parameters": [ + { + "name": "dateTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/service-companion/church-entity/{churchEntityId}": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Service Companion Data By Church Entity Id (Campus)", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetServiceCompanionByCampus", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "personId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "bypassCache", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/event/{eventId}": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Service Companion Data by Event ID", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetServiceCompanionByEventId", + "parameters": [ + { + "name": "eventId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "personId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/service-media-info": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Service Media Info", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetServiceMediaInfo", + "parameters": [ + { + "name": "mediaId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/service-mediaseries-list": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Media Series List", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetServiceMediaSeriesList", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/service-notes/{id}": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Service Notes", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetServiceNotes", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/announcements": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAnnouncementsContent", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/service-template/{serviceTemplateId}/person-outline": { + "post": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Add Outline persons to a General Service Template by General Service Template id", + "operationId": "UpsertServiceOutlinePerson", + "parameters": [ + { + "name": "serviceTemplateId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceOutlinePerson" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceOutlinePerson" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceOutlinePerson" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceOutlinePerson" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/service-companion/playlist/{churchEntityId}": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Playlist by Campus", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetPlaylistByCampus", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/song": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Songs by Event Occurrence Id", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetSongsContent", + "parameters": [ + { + "name": "occurrenceId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/series": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Series List", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetSeries", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/series/{id}": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get Series by Id", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetSeriesById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/series/search": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Search Series", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "Search", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsInUseFilter", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_SeriesSearchViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_SeriesSearchViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_SeriesSearchViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/sermon/search": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Search Sermons", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "SearchSermon", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "DayIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SpeakerIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SeriesIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IncludeAnnouncements", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IncludeConnectionQuestions", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IncludeNextStepQuestions", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IncludeSongs", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns the Campus Service Template record.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SermonSearchResultViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SermonSearchResultViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SermonSearchResultViewModel" + } + } + } + }, + "400": { + "description": "Bad Request. Must have the valid search query." + }, + "403": { + "description": "Forbidden" + }, + "500": { + "description": "The Get Campus Service Templates attempt failed." + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/service-companion/my-notes": { + "get": { + "tags": [ + "ServiceCompanion" + ], + "summary": "Get My Notes", + "operationId": "GetMyNotes", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/content-management/service-companion-builder/service-template/search": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Search Service Templates", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "Search", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SpeakerFilter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Published", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_ServiceTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_ServiceTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_ServiceTemplateViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "put": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Update a Service Template", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Service Companion Builder
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Create a new Service Template", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Service Companion Builder
\r\n", + "operationId": "PostAsync", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/duplicate": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "DuplicateGeneralTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/service-speakers/delete": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete a list of Service Speakers of a General Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "DeleteServiceSpeakersofServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/service-speakers": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Add a list of Service Speakers to a General Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "AddServiceSpeakerstoServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{templateType}/{id}/connection-questions": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a list of Connection Questions of a General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetConnectionQuestionsofServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Add a list of Connection Questions to a General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "AddConnectionQuestionstoServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Connection Question Ids", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{templateType}/{id}/announcements": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a list of Announcements of a General or Campus Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetAnnouncementsOfCampusServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Add a list of Announcements to a General or Campus Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "AddAnnouncementstoServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{templateType}/{id}/connection-questions/delete": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete a list of Connection Questions of a General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "DeleteConnectionQuestionsofServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Connection Question Ids", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{templateType}/{id}/announcements/delete": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete a list of Announcements of a General or Campus Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "DeleteAnnouncementsofServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{templateType}/{id}/connection-questions/sort": { + "put": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Sort a list of Connection Questions to a General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n
\r\n**Data Access:**
\r\nUPDATES a Service and Campus Service Template(s) Connection Questions setting their sort order", + "operationId": "SortServiceTemplateQuestions", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Sorted list of Connection Questions", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{templateType}/{id}/next-step-questions": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a list of Next Step Questions of a General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetNextStepQuestionsofServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Add a list of Next Step Questions to a General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "AddNextStepQuestionstoServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Next Step Question Ids", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{templateType}/{id}/next-step-questions/delete": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete a list of Next Step Questions of a General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "DeleteNextStepQuestionsofServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Next Step Question Ids", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/outline": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Add Outline to a General Service Template by General Service Template id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "AddOutlineToServiceTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "General Service Template Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Service Template Outline", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "put": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Update a General Service Template Outline by General Service Template id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "UpdateServiceTemplateOutline", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "General Service Template Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Service Template Outline", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get Outline of General Service Template by General Service Template id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetOutlineOfServiceTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "General Service Template Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateOutlineViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/person-outline": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Add Outline persons to a General Service Template by General Service Template id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "AddPersonsToServiceTemplateOutline", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "General Service Template Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ServiceOutlinePersonViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ServiceOutlinePersonViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ServiceOutlinePersonViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ServiceOutlinePersonViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get Outline Persons of General Service Template by General Service Template id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetPersonsOfServiceTemplateOutline", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "General Service Template Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonBasic" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonBasic" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonBasic" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/outline/delete": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete Outline of General Service Template by General Service Template id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "DeleteOutlineOfServiceTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "General Service Template Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/person-outline/delete": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete Outline Persons of General Service Template by General Service Template id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "DeletePersonsOfServiceTemplateOutline", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "General Service Template Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{templateType}/{id}/song": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a Songs of a General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetSongsofServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Add a Songs to a General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "AddSongstoServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Next Step Question Ids", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{templateType}/{id}/song/delete": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Remove a Songs from General or Campus Service Template by respective id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "DeleteSongsofServiceTemplate", + "parameters": [ + { + "name": "templateType", + "in": "path", + "description": "Service template type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateType" + } + }, + { + "name": "id", + "in": "path", + "description": "service template Id when servie template type is GeneralTemplate \r\n and service template church entity Id when servie template type is CampusTemplate", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Song Ids", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/campus-service-template/{id}/published": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get Campus Service Template Is Published", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetCampusServiceTemplateIsPublished", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/campus-service-template/{id}/occurrences": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get Occurrences by Campus Service Template Id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetOccurrencesByCampusTemplateId", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "put": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Add a list of Occurrences to a Campus Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "AddOccurrencestoCampusServiceTemplateAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_CampusOccurrenceDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_CampusOccurrenceDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_CampusOccurrenceDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_CampusOccurrenceDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/campus-service-template/{churchEntityId}": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Add a Campus Service Template with a list of Occurrences", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "CreateCampusServiceTemplateWithOccurrencesAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_CampusOccurrenceDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_CampusOccurrenceDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_CampusOccurrenceDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_CampusOccurrenceDto" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/campus-service-template/{id}/occurrences/delete": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete a list of Occurrences to a Campus Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "DeleteOccurrencestoCampusServiceTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/campus-service-template": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a list of Campus Service Templates by General Service Template id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetCampusServiceTemplatesByGeneralServiceTempalateId", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CampusServiceTemplateViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CampusServiceTemplateViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CampusServiceTemplateViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/campus-service-template/{id}": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get Campus Service Templates Details by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetCampusServiceTemplateById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_CampusServiceTemplateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_CampusServiceTemplateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_CampusServiceTemplateViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/campus-service-template/{id}/publish/{publish}": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Publish/UnPublish a Campus Service Template by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "PublishCampusServiceTemplate", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "publish", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/occurrences/available": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Filter available Occurrences", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "FilterAvailableOccurrences", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/occurrences/used": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get Used Occurrences", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetUsedOccurrences", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/occurrences": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get Occurrences by Campus", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetOccurrencesByCampus", + "parameters": [ + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/announcement/search": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Search Announcements", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "SearchAnnouncement", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "AnnouncementCategoryFilter", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedFilter", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_AnnouncementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_AnnouncementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_AnnouncementViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/announcement": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get all Announcements", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetAllAnnouncements", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Create a new Announcement", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "PostAnnouncementAsync", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/announcement/{id}": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get an Announcement by id", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetAnnouncementById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + }, + "put": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Update a Service Template", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "PutAnnouncementAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/announcement/category": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get an Announcement Categories", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "GetAnnouncementCategories", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementCategoryViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementCategoryViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementCategoryViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-speaker": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Create a new Service Speaker", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Service Companion Builder
\r\n", + "operationId": "PostServiceSpeakerAsync", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + }, + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a Service Speakers", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "GetServiceSpeakers", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-speaker/{id}": { + "put": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Update a Service Speaker", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Service Companion Builder
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + }, + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a Service Speaker by id", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "GetServiceSpeakerById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServiceSpeakerViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + }, + "delete": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete a Service Speaker by id", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "DeleteServiceSpeakers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/series/search": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Search Series", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "Search", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsActiveFilter", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsInUseFilter", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_SeriesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_SeriesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_SeriesViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/series": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Create a new Series", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Service Companion Builder
\r\n", + "operationId": "CreateSeries", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + }, + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get all Series", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "GetAllSeries", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/series/{id}": { + "put": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Update a Series", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Service Companion Builder
\r\n", + "operationId": "UpdateSeries", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + }, + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a Series by id", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "GetSeriesById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + }, + "delete": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete a Series by id", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "DeleteSeriess", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/series/active": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get active Series", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "GetActiveSeries", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/song/search": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Search Songs", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "SearchSongs", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_SongViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_SongViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SearchResultsViewModel_SongViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/song": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Create a new Song", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Service Companion Builder
\r\n", + "operationId": "PostSongAsync", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + } + } + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + }, + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get all Songs", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "GetSongs", + "parameters": [ + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/song/{id}": { + "put": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Update a Song", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Service Companion Builder
\r\n", + "operationId": "UpdateSong", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + }, + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Get a Song by id", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "GetSongById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + }, + "delete": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Delete a Song by id", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Service Companion Builder
\r\n", + "operationId": "DeleteSong", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/announcement/{id}/file": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "PostAnnouncementHeroImageAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/service-template/{id}/file": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "PostServiceTemplateHeroImageAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/series/{id}/file": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "PostSeriesHeroImageAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/embedded": { + "post": { + "tags": [ + "ServiceCompanionBuilder" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Manage Service Companion Builder, Manage Campus Service Template
\r\n", + "operationId": "PostEmbeddedImageAsync", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Service Companion Builder" + ] + }, + { + "Permissions": [ + "Manage Campus Service Template" + ] + } + ] + } + } + }, + "/api/content-management/service-companion-builder/reset-cache": { + "get": { + "tags": [ + "ServiceCompanionBuilder" + ], + "summary": "Clear Service Companion cache.", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n
\r\n**Data Access:**
\r\nResets Service Companion Cache.", + "operationId": "ResetScheduleCache", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operation is completed successfully." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/drafts": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n", + "operationId": "GetDraftServingOpportunities", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{id}": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Gets a Serving Opportunity by ID", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "ServingOpportunity" + ], + "operationId": "UpdateServingOpportunity", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ServingOpportunity" + ], + "operationId": "DeleteServingOpportunity", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/serving-opportunity/schedule/{scheduleId}/lite": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Gets a lite Serving Opportunity by ID", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n", + "operationId": "GetLiteByScheduleId", + "parameters": [ + { + "name": "scheduleId", + "in": "path", + "description": "Schedule ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ] + } + ] + } + } + }, + "/api/serving-opportunity/list": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Gets a Serving Opportunity by IDs", + "operationId": "GetByIds", + "parameters": [ + { + "name": "servingOpportunityIds", + "in": "query", + "description": "Serving Opportunity IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/published": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Get a list of Published Serving Opportunities by Ministry ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n", + "operationId": "GetByMinistryId", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/communication-variables": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Get email variables", + "description": "**Data Access:**
\r\nNo specific access", + "operationId": "GetCommunicationVariables", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/search": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Get a list of Serving Opportunities by search text", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to Serving Opportunities", + "operationId": "SearchInMinistry", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "searchType", + "in": "query", + "description": "Search type", + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "startDate", + "in": "query", + "description": "Start date for Closed occurrences", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific person's church entity." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/{searchType}": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Get a list of Serving Opportunities by search text and schedule type", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Serving Opportunities\r\n \r\nClosed Serving Opportunities have 'Closed' status or all occurrences of this SO are past", + "operationId": "GetWithSearch", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "eventIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific person's church entity." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/{searchType}/daily-statistics/{startDate}/{endDate}": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Get a list of Saddleback.Cm.Contracts.Models.Ministries.ServingOpportunityStatistics for date range specified by startDate and endDate", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Serving Opportunities\r\n \r\nClosed Serving Opportunities have 'Closed' status or all occurrences of this SO are past", + "operationId": "GetDailyStatistics", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "startDate", + "in": "path", + "description": "ISO 8601 formatted date (ex: 2112-12-21). For convenience, time can also be included (Thh:mm:ss) as it will be ignored", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "endDate", + "in": "path", + "description": "ISO 8601 formatted date (ex: 2112-12-21). For convenience, time can also be included (Thh:mm:ss) as it will be ignored", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/{searchType}/email": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Send an Email to Volunteers of various Serving Opportunities of the given ministryid/churchEntityId combo.", + "description": "**Action Access:**
\r\nCreates \"Notification\" records in the database and sends the Email to the specified recipients.

\r\n**More Info:**
\r\nServing Opportunities can be selected via servingOpportunityIds or by search (q, searchType, eventIds).
\r\nVolunteers can be selected via volunteerFilterParams.", + "operationId": "SendEmail", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "eventIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Request Body specifying the email message and recipient filter parameters", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/{searchType}/sms": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Send an SMS to Volunteers of various Serving Opportunities of the given ministryid/churchEntityId combo.", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Send SMS to Serving Opportunity Volunteers
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the SMS to the specified recipients.

\r\n**More Info:**
\r\nServing Opportunities can be selected via servingOpportunityIds or by search (q, searchType, eventIds).
\r\nVolunteers can be selected via volunteerFilterParams.", + "operationId": "SendSms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "eventIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Request Body specifying the SMS message and recipient filter parameters", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific person's church entity." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Send SMS to Serving Opportunity Volunteers" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/{searchType}/statistics": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Gets Serving Opportunity statistics by Ministry Location", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to Serving Opportunity statistics for a Ministry Location\r\n \r\nClosed Serving Opportunities have 'Closed' status or all occurrences of this SO are past", + "operationId": "GetStatistics", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific person's church entity." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/{searchType}/volunteers": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Get a list of Volunteers of various Serving Opportunities of the given ministryid/churchEntityId combo.", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Serving Opportunity Volunteers' id, name, opps, roles & groups

\r\n**More Info:**
\r\nServing Opportunities can be selected via servingOpportunityIds or by search (q, searchType, eventIds).
\r\nVolunteers can be selected via volunteerFilterParams.", + "operationId": "GetVolunteers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "eventIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "purpose", + "in": "query", + "description": "the reason for making the call (current options are: email, sms)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Volunteers of Serving Opportunities." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific person's church entity." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/{searchType}/volunteers/extract": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Extracts a list of Volunteers of various Serving Opportunities of the given ministryid/churchEntityId combo.", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Serving Opportunity Volunteers' id, name, opps, roles & groups

\r\n**More Info:**
\r\nServing Opportunities can be selected via servingOpportunityIds or by search (q, searchType, eventIds).
\r\nVolunteers can be selected via volunteerFilterParams.", + "operationId": "RequestVolunteersExport", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "eventIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Core_App_DataExtractFormat" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific person's church entity." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/ministry/{id}/church-entity/{churchEntityId}/public": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Get a list of public Serving Opportunities for specific ministry", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD access to public Serving Opportunity information.", + "operationId": "GetAllPublicForMinistry", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Location ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "id" + ] + } + ] + } + } + }, + "/api/serving-opportunity/public": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Get a list of public Serving Opportunities", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD access to public Serving Opportunity information.", + "operationId": "GetAllPublic", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{id}/complete-draft": { + "put": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Takes serving opportunity out of 'draft' mode.\r\nIMPORTANT: This is NOT the same as \"publishing\" it to the tenant website!", + "operationId": "CompleteServingOpportunityDraft", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Serving Opportunity has been published" + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities UPDATE or not authorized for specific person's church entity." + }, + "404": { + "description": "The Serving Opportunity record is not found." + } + } + } + }, + "/api/serving-opportunity/{id}/set-publish-type/{publishType}": { + "put": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Set Publish type of a serving opportunity", + "operationId": "SetServingOpportunityPublishType", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "publishType", + "in": "path", + "description": "The publish type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_PublishType" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Church entity IDs to publish", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns modified Serving Opportunities." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities UPDATE or not authorized for specific person's church entity." + }, + "404": { + "description": "The Serving Opportunity record is not found." + }, + "409": { + "description": "Serving Opportunity can't change public flag." + } + } + } + }, + "/api/serving-opportunity/set-publish-type/{publishType}": { + "put": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Set Publish type of multiple serving opportunities", + "operationId": "SetMyServingOpportunitiesPublishType", + "parameters": [ + { + "name": "servingOpportunityIds", + "in": "query", + "description": "comma delimited list of Serving Opportunity IDs", + "schema": { + "type": "string" + } + }, + { + "name": "publishType", + "in": "path", + "description": "The publish type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_PublishType" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Church entity IDs to publish", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success, all Serving Opportunities were updated accordingly" + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities UPDATE or not authorized for specific person's church entity." + }, + "404": { + "description": "The Serving Opportunity record is not found." + }, + "409": { + "description": "Serving Opportunity can't change public flag." + } + } + } + }, + "/api/serving-opportunity/{id}/can-change-is-public": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Can Serving Opportunity change published state", + "description": "**Data Access:**
\r\nREAD Access to an individual Serving Opportunity", + "operationId": "CanChangePublishState", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Serving Opportunity can change publish state" + }, + "400": { + "description": "Serving Opportunity is inactive." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + }, + "409": { + "description": "Serving Opportunity can't change publish state." + } + } + } + }, + "/api/serving-opportunity/{id}/close": { + "put": { + "tags": [ + "ServingOpportunity" + ], + "operationId": "CloseServingOpportunity", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/serving-opportunity": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "operationId": "CreateServingOpportunity", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/serving-opportunity/multiple": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Create multiple Serving Opportunities", + "description": "**Data Access:**
\r\nWRITE Access to a Serving Opportunities", + "operationId": "CreateServingOpportunities", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns new Serving Opportunities." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/serving-opportunity/{id}/copy": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Create a copy of Serving Opportunity", + "description": "**Data Access:**
\r\nWRITE Access to a Serving Opportunities\r\n\r\n**More Info**
\r\nStatus and IsPublic fields are not copied\r\nSchedule is not copied\r\nNew Serving Opportunity is created in Draft state", + "operationId": "CopyServingOpportunity", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity ID to Copy", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "copyVolunteers", + "in": "query", + "description": "true for copying volunteer list", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns copied Serving Opportunity.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Source Serving Opportunity is not found." + } + } + } + }, + "/api/serving-opportunity/{id}/notification": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Retrieves last notification results for serving opportunity", + "description": "**Data Access:**
\r\nREAD Access to Ministry", + "operationId": "GetLastNotificationResultsAsync", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns last notification results for serving opportunity", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_NotificationResultViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_NotificationResultViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_NotificationResultViewModel" + } + } + } + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + } + } + }, + "/api/serving-opportunity/{id}/tag": { + "put": { + "tags": [ + "ServingOpportunity" + ], + "operationId": "UpsertTagLinks", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "ServingOpportunity" + ], + "operationId": "GetTagLinks", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/serving-opportunity/ministry/{ministryId}/church-entity/{churchEntityId}/attachment": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Upload a File for Email Attachment", + "description": "**Action Access:**
\r\nAllowed for ministry leader or EmailServingOpportunityVolunteers\r\n\r\nUploads the file to cloud storage (Amazon S3) where it can be viewed/downloaded by unauthenticated callers\r\nwith the URL (intended usage is to embed the URL to the file in an email in lieu of actually \"attaching\" the file).", + "operationId": "UploadAttachment", + "parameters": [ + { + "name": "ministryId", + "in": "path", + "description": "Ministry ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "path", + "description": "Church Entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "File is empty.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + } + } + }, + "/api/serving-opportunity/{id}/web-header": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Retrieves Serving Opportunity web header category image", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nNo restrictions", + "operationId": "GetWebHeaderUrl", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "URL to Serving Opportunity web header image", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "404": { + "description": "Serving Opportunity or Serving Opportunity web header image not found" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Upsert Serving Opportunity web header image for existing Serving Opportunity", + "description": "**Data Access:**
\r\nUpdate Access to Serving Opportunities", + "operationId": "UploadServingOpportunityWebHeaderImage", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "URL and name of Serving Opportunity web header image", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + } + } + }, + "404": { + "description": "Serving Opportunity not found" + } + } + } + }, + "/api/serving-opportunity/web-header": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Upsert Serving Opportunity web header image for Serving Opportunity to be created", + "description": "**Data Access:**
\r\nCreate Access to Serving Opportunities", + "operationId": "UploadServingOpportunityWebHeaderImage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "URL and name of Serving Opportunity web header image", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + } + } + } + } + } + }, + "/api/serving-opportunity/{id}/companion-app-header": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Retrieves Serving Opportunity Companion App header category image", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nNo restrictions", + "operationId": "GetCompanionAppHeaderUrl", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "URL to Serving Opportunity companion app header image", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "404": { + "description": "Serving Opportunity or Serving Opportunity companion app header image not found" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/serving-opportunity/companion-app-header": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Upsert Serving Opportunity companion app header image for Serving Opportunity to be created", + "description": "**Data Access:**
\r\nCreate Access to Serving Opportunities", + "operationId": "UploadServingOpportunityCompanionAppHeaderImage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "URL and name of Serving Opportunity companion app header image", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + } + } + } + } + } + }, + "/api/serving-opportunity/{id}/thumbnail": { + "get": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Retrieves Serving Opportunity Thumbnail category image", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nNo restrictions", + "operationId": "GetThumbnailUrl", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "URL to Serving Opportunity thumbnail image", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "404": { + "description": "Serving Opportunity or Serving Opportunity thumbnail image not found" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/serving-opportunity/thumbnail": { + "post": { + "tags": [ + "ServingOpportunity" + ], + "summary": "Upsert Serving Opportunity thumbnail image for Serving Opportunity to be created", + "description": "**Data Access:**
\r\nCreate Access to Serving Opportunities", + "operationId": "UploadServingOpportunityThumbnailImage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "URL and name of Serving Opportunity thumbnail image", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_WebHeader" + } + } + } + } + } + } + }, + "/api/serving-opportunity/event": { + "get": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Get a list of event assigned to Serving Opportunities in given ministry-location", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD access to Ministries or internal access.", + "operationId": "GetEventIdsAssignedToSpecificMinistryLocation", + "parameters": [ + { + "name": "ministryId", + "in": "query", + "description": "Ministry ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "Church Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ], + "RouteParameters": [ + "churchEntityId" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ], + "RouteParameters": [ + "churchEntityId", + "ministryId" + ] + } + ] + } + } + }, + "/api/serving-opportunity/event/{eventId}": { + "get": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Get a list of Serving Opportunities linked to event", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Data Access:**
\r\nREAD access to Ministries or internal access.

\r\nIt is necessary to set occurrenceID to get serving opportunity statistics for occurrence", + "operationId": "GetServingOpportunitiesAssignedToEvent", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ministryId", + "in": "query", + "description": "Ministry ID (optional)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID (optional)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person Unique ID (optional). If set, eligibility data for person is returned for each serving opportunity", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/serving-opportunity/event/{eventId}/copy/{targetEventId}": { + "post": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Copy a list of Serving Opportunities by event", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Serving Opportunities

\r\nClosed Serving Opportunities have 'Closed' status or all occurrences of this SO are past", + "operationId": "CopyServingOpportunities", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "targetEventId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Messages for Serving Opportunities that were not copied." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific serving opp's church entity." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/serving-opportunity/event/{eventId}/{searchType}": { + "get": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Get a list of Serving Opportunities by search text and schedule type", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Serving Opportunities

\r\nClosed Serving Opportunities have 'Closed' status or all occurrences of this SO are past", + "operationId": "GetWithSearch", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Serving Opportunities." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific serving opp's church entity." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/serving-opportunity/event/{eventId}/{searchType}/attachment": { + "post": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Upload a File for Email Attachment", + "description": "**Action Access:**
\r\nAllowed for ministry leader or EmailServingOpportunityVolunteers

\r\nUploads the file to cloud storage (Amazon S3) where it can be viewed/downloaded by unauthenticated callers
\r\nwith the URL (intended usage is to embed the URL to the file in an email in lieu of actually \"attaching\" the file).", + "operationId": "UploadAttachment", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "File is empty.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + } + } + }, + "/api/serving-opportunity/event/{eventId}/{searchType}/copy": { + "post": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Copy a list of Serving Opportunities by list or event or search text and schedule type", + "description": "**Data Access:**
\r\nREAD Access to a Serving Opportunities

\r\nClosed Serving Opportunities have 'Closed' status or all occurrences of this SO are past", + "operationId": "CopyServingOpportunitiesWithSearch", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "targetEventId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/serving-opportunity/event/{eventId}/{searchType}/email": { + "post": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Send an Email to Volunteers of various Serving Opportunities of the given eventId.", + "description": "**Action Access:**
\r\nCreates \"Notification\" records in the database and sends the Email to the specified recipients.

\r\n**More Info:**
\r\nServing Opportunities can be selected via servingOpportunityIds or by search (q, searchType).
\r\nVolunteers can be selected via volunteerFilterParams.", + "operationId": "SendEmail", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Request Body specifying the email message and recipient filter parameters", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + } + } + }, + "/api/serving-opportunity/event/{eventId}/{searchType}/volunteers": { + "get": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Get a list of Volunteers of various Serving Opportunities of the given eventId.", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Serving Opportunity Volunteers' id, name, opps, roles & groups

\r\n**More Info:**
\r\nServing Opportunities can be selected via servingOpportunityIds or by search (q, searchType).
\r\nVolunteers can be selected via volunteerFilterParams.", + "operationId": "GetVolunteers", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "purpose", + "in": "query", + "description": "the reason for making the call (current options are: email)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found Volunteers of Serving Opportunities." + }, + "400": { + "description": "Invalid parameters.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific serving opp's church entity.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/serving-opportunity/event/{eventId}/{searchType}/volunteers/extract": { + "post": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Extracts a list of Volunteers of various Serving Opportunities of the given ministryeventId", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Data Access:**
\r\nREAD Access to a Serving Opportunity Volunteers' id, name, opps, roles & groups

\r\n**More Info:**
\r\nServing Opportunities can be selected via servingOpportunityIds or by search (q, searchType).
\r\nVolunteers can be selected via volunteerFilterParams.", + "operationId": "RequestVolunteersExport", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchType", + "in": "path", + "description": "Schedule type", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_ScheduleSearchType" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Core_App_DataExtractFormat" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized. Has no access to Serving Opportunities READ or not authorized for specific serving opp's church entity." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/serving-opportunity/event/{servingOpportunityId}/volunteer": { + "post": { + "tags": [ + "ServingOpportunityEvent" + ], + "summary": "Adds a new volunteer to specific serving opportunity for event occurrence", + "description": "**Data Access:**
\r\nINSERTS a new Serving Opportunity Volunteer", + "operationId": "CheckInVolunteerForEvent", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Event Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person Unique ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "force", + "in": "query", + "description": "True to ignore requirements", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Record has been inserted." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Serving opportunity is not found." + } + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/occurrence": { + "get": { + "tags": [ + "ServingOpportunityOccurrence" + ], + "summary": "Gets Serving Opportunity Occurrences for given Date interval", + "description": "**Data Access:**
\r\nREAD Access to the list of occurrences for a Serving Opportunity", + "operationId": "GetOccurrences", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDate", + "in": "query", + "description": "Interval start date", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "endDate", + "in": "query", + "description": "Interval end date", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found records.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + } + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/scheduled-volunteers": { + "get": { + "tags": [ + "ServingOpportunityOccurrence" + ], + "summary": "Gets Serving Opportunity Volunteers that are Scheduled to serve for a specific Occurrence of a Serving Opportunity", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to the list of Volunteers that are Scheduled to serve for a specific Occurrence of a Serving Opportunity\r\n \r\n**More Info:**
\r\nSorting parameter [id | firstname | birthdate | lastname | dateadded]", + "operationId": "GetScheduledVolunteers", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "description": "Occurrence Date Time", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "checkEligibility", + "in": "query", + "description": "Check eligibility", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeSmsEligibility", + "in": "query", + "description": "return Sms eligibility", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "requestGrandTotal", + "in": "query", + "description": "Boolean flag indicating whether to compute an overall total of Scheduled Volunteers for the specified Occurrence\r\nwithout any optional filters applied. Optional; defaults to False.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "requestCapacity", + "in": "query", + "description": "Boolean flag indicating whether to request volunteer capacity for the specified Occurrence.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found records.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduledVolunteersViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduledVolunteersViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduledVolunteersViewModel" + } + } + } + }, + "400": { + "description": "Invalid request parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Serving Opportunity not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/unscheduled-volunteers": { + "get": { + "tags": [ + "ServingOpportunityOccurrence" + ], + "summary": "Gets Serving Opportunity Volunteers from the Roster that are NOT Scheduled to serve for a specific Occurrence of a Serving Opportunity", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to the list of Volunteers that are NOT Scheduled to serve for a specific Occurrence of a Serving Opportunity\r\n \r\n**More Info:**
\r\nSorting parameter [id | firstname | birthdate | lastname | dateadded]", + "operationId": "GetUnscheduledVolunteers", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "description": "Occurrence Date Time", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "checkEligibility", + "in": "query", + "description": "Check eligibility", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "requestGrandTotal", + "in": "query", + "description": "Boolean flag indicating whether to compute an overall total of Unscheduled Volunteers for the specified Occurrence\r\nwithout any optional filters applied. Optional; defaults to False.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found records.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduledVolunteersViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduledVolunteersViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduledVolunteersViewModel" + } + } + } + }, + "400": { + "description": "Invalid request parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Serving Opportunity not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/is-volunteer": { + "get": { + "tags": [ + "ServingOpportunityOccurrence" + ], + "summary": "Given a Serving Opportunity ID, Occurrence ID and a list of Person IDs, \r\nreturns a filtered list of only the IDs for Persons currently volunteering for the Serving Opportunity.", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nREAD Access to the list of volunteers for a Serving Opportunity Occurrence", + "operationId": "IsServingOpportunityVolunteer", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "description": "Occurrence dateTime", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person IDs to check", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns found records.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ] + } + ] + } + } + }, + "/api/serving-opportunity/event/{eventId}/is-volunteer": { + "get": { + "tags": [ + "ServingOpportunityOccurrence" + ], + "summary": "Given a Event ID and a list of Person IDs, \r\nreturns a filtered list of only the IDs for Persons currently volunteering for the Event.", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access only", + "operationId": "IsServingOpportunityVolunteerForEvent", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person IDs to check", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns found records.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + } + } + }, + "400": { + "description": "Invalid data." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/occurrence-capacity": { + "put": { + "tags": [ + "ServingOpportunityOccurrence" + ], + "summary": "Sets a Capacity for a specific Occurrence of the specified Serving Opportunity (that can override the overall Opportunity's default Capacity)", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Access Ministry Central, Access Local Ministries
\r\n
\r\n**Data Access:**
\r\nWRITE (\"Upsert\" - Create if not exists or update if already exists) Access to Serving Opportunity per-Occurrence Capacity.\r\n\r\n**More Info:**
\r\nBy default, an Opportunity has the same capacity (required number of volunteers) for all Occurrences.\r\nBut there is the possibility to vary this capacity by Occurrence. For example, we might normally need\r\n20 volunteers for each Occurrence, but \"next week\", for whatever reason, we require 30 instead.", + "operationId": "SetOccurrenceCapacity", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityOccurrenceCapacityViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityOccurrenceCapacityViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityOccurrenceCapacityViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityOccurrenceCapacityViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns updated data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + } + }, + "400": { + "description": "There ws some issue with the request parameters. Response body should contain more details.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Specified Serving Opportunity was not found." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Access Ministry Central" + ] + }, + { + "Permissions": [ + "Access Local Ministries" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{id}/scheduled-volunteers/email": { + "post": { + "tags": [ + "ServingOpportunityOccurrence" + ], + "summary": "Send an Email to volunteers of the given id on occurrenceDateTime", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Email Serving Opportunity Volunteers
\r\n
\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the SMS to the specified recipients.", + "operationId": "SendEmail", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "description": "Occurrence Date Time", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Message", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Email Serving Opportunity Volunteers" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{id}/scheduled-volunteers/sms": { + "post": { + "tags": [ + "ServingOpportunityOccurrence" + ], + "summary": "Send an SMS to volunteers of the given id on occurrenceDateTime", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Send SMS to Serving Opportunity Volunteers
\r\n
\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the SMS to the specified recipients.", + "operationId": "SendSms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "description": "Occurrence Date Time", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Message", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Send SMS to Serving Opportunity Volunteers" + ] + } + ] + } + } + }, + "/api/serving-opportunity-public": { + "get": { + "tags": [ + "ServingOpportunityPublicSearch" + ], + "operationId": "GetAllPublishedServingOpportunities", + "parameters": [ + { + "name": "ChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Tag", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Days", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "TimeStart", + "in": "query", + "schema": { + "type": "string", + "format": "date-span" + } + }, + { + "name": "TimeEnd", + "in": "query", + "schema": { + "type": "string", + "format": "date-span" + } + }, + { + "name": "Duration", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Frequency", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "EventId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SearchResultsViewModel" + } + } + } + } + } + } + }, + "/api/serving-opportunity-public/search": { + "get": { + "tags": [ + "ServingOpportunityPublicSearch" + ], + "operationId": "Search", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Ids", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MinistryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Tags", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Days", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "Duration", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Frequency", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "TimeRanges", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Bad Request" + } + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/volunteer": { + "get": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Gets volunteers for specific serving opportunity", + "description": "**Data Access:**
\r\nREAD Access to a Serving Opportunity's roster of volunteers\r\n\r\n**More Info:**
\r\nSorting parameter [id | firstname | birthdate | lastname | dateadded]", + "operationId": "GetFilteredServingOpportunityVolunteers", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "checkEligibility", + "in": "query", + "description": "Check eligibility", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeSmsEligibility", + "in": "query", + "description": "Return Sms eligibility", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "date", + "in": "query", + "description": "This Date/Time value typically represents \"now\" or some other \"basis moment\" by which to filter to only Scheduled Volunteers", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns records." + }, + "403": { + "description": "Not authorized." + } + } + }, + "post": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Adds a new volunteer to specific serving opportunity", + "description": "**Data Access:**
\r\nINSERTS a new Serving Opportunity Volunteer", + "operationId": "InsertServingOpportunityVolunteer", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Volunteer to add", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Record has been inserted." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Serving opportunity is not found." + } + } + }, + "put": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Updates volunteers in specific serving opportunity", + "description": "**Data Access:**
\r\nUPDATE Access to a specific Volunteer for a specific Serving Opportunity", + "operationId": "UpdateServingOpportunityVolunteers", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "soVolunteerIds", + "in": "query", + "description": "Serving opportunity volunteers IDs", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Data to update Serving opportunity volunteer records", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServingOpportunityVolunteerBulkUpdateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServingOpportunityVolunteerBulkUpdateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServingOpportunityVolunteerBulkUpdateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_ServingOpportunityVolunteerBulkUpdateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Record has been updated." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + } + }, + "delete": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Deletes Volunteers (in bulk) from the specified Serving Opportunity", + "description": "**Data Access:**
\r\nDELETE Access to multiple Volunteers within a Serving Opportunity.\r\n\r\n**More Info:**
\r\nRemoves the Volunteers specified by ID list or filter specification _completely_ from the roster of the specified Serving Opportunity.\r\nShould only be used to remove \"Unscheduled\" Volunteers with no actual association to having served during an Occurrences of the Serving Opportunity.", + "operationId": "DeleteServingOpportunityVolunteers", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "soVolunteerIds", + "in": "query", + "description": "Serving opportunity volunteers IDs", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Record ." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/volunteer/{id}": { + "get": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Gets volunteer by Id", + "description": "**Data Access:**
\r\nREAD Access to a Serving Opportunity's roster of volunteers", + "operationId": "GetServingOpportunityVolunteer", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Serving Opportunity Volunteer ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns records." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + } + }, + "put": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Updates a volunteer in specific serving opportunity", + "description": "**Data Access:**
\r\nUPDATE Access to a specific Volunteer for a specific Serving Opportunity", + "operationId": "UpdateServingOpportunityVolunteer", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Volunteer ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Volunteer to update", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Record has been updated." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Volunteer was not found." + } + } + }, + "delete": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Deletes a Volunteer from the specified Serving Opportunity", + "description": "**Data Access:**
\r\nDELETE Access to a Volunteer within a Serving Opportunity.\r\n\r\n**More Info:**
\r\nRemoves the Volunteer _completely_ from the roster of the Serving Opportunity.\r\nShould only be used to remove \"Unscheduled\" Volunteers with no actual association to having served during an Occurrences of the Serving Opportunity.", + "operationId": "DeleteServingOpportunityVolunteer", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Volunteer ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully completed the deletion." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Specified Serving Opportunity or Volunteer was not found." + } + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/scheduled-volunteers/cancelation-urls": { + "get": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Gets the cancelation url for the specified Volunteers' Scheduling Commitments", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n", + "operationId": "GetServingOpportunityVolunteerScheduleCancelationUrls", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Serving Opportunity Volunteer IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns the url" + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/volunteer/{id}/schedule": { + "get": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Gets Scheduling Commitment information for the specified Volunteer", + "operationId": "GetServingOpportunityVolunteerSchedulingCommitments", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Serving Opportunity Volunteer ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns records." + }, + "400": { + "description": "Invalid request parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + } + }, + "delete": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Removes a Volunteer from scheduled service for a Specific Serving Opportunity", + "description": "**Data Access:**
\r\nWRITE access to the data that describes the specified Volunteer's scheduled service.\r\n\r\n**More Info:**
\r\nEither removes record(s) of service scheduling completely, or adds an exclusion record (if, for example,\r\nVolunteer is presently committed to serve for all Occurrences of a recurring Opportunity, and only being\r\nremoved from one specific Occurrence).", + "operationId": "RemoveServingOpportunityVolunteerFromSchedule", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Volunteer ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Optional Occurrence ID if only removing a Volunteer from a single Occurrence", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "description": "Optional Occurrence Date/Time if only removing a Volunteer from a single Occurrence", + "schema": { + "type": "string" + } + }, + { + "name": "removeFromSingleOccurrence", + "in": "query", + "description": "(optional) defaults to true unless both occurrenceId and occurrenceDateTime are not specified", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully completed the removal." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Specified Serving Opportunity or Volunteer was not found." + } + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/volunteer/person/{uniqueId}": { + "get": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Gets volunteer by Person Unique Id", + "description": "**Data Access:**
\r\nREAD Access to a Serving Opportunity's roster of volunteers\r\n\r\nUsed only to check if person is a Serving Opportunity Volunteer and fills no person data", + "operationId": "GetServingOpportunityVolunteerByUniqueId", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "uniqueId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns records." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + } + } + }, + "/api/serving-opportunity/volunteer/event/{eventId}": { + "get": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Gets Volunteers assigned to Serving Opportunities associated to the specified Event and Scheduled for the day of the specified Event Occurrence", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\nThis method firstly detects SO Active occurrences, corresponding to given event occurrence,\r\nthen collects volunteers assigned to these SO occurrences", + "operationId": "GetVolunteersByEventId", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "Comma separated Serving Opportunity IDs", + "schema": { + "type": "string" + } + }, + { + "name": "query", + "in": "query", + "description": "Volunteer query", + "schema": { + "type": "string" + } + }, + { + "name": "eventOccurrenceId", + "in": "query", + "description": "Event Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person Unique ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns records." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/volunteers": { + "post": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Adds new volunteers to specific serving opportunity", + "description": "**Data Access:**
\r\nINSERTS new Serving Opportunity Volunteers", + "operationId": "InsertServingOpportunityVolunteers", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Volunteers to add", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Records has been inserted." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Serving opportunity is not found." + } + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/volunteer/{volunteerId}/schedule": { + "put": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Adds a new Scheduling Commitment for the specified Volunteer", + "operationId": "UpdateVolunteerScheduleCommitments", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "volunteerId", + "in": "path", + "description": "Serving Opportunity Volunteer ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Payload describing the Scheduling Commitment to add", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduleCommitmentRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduleCommitmentRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduleCommitmentRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityScheduleCommitmentRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Scheduling Commitment record has been saved.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerScheduleCommitmentResponseViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerScheduleCommitmentResponseViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerScheduleCommitmentResponseViewModel" + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Serving Opportunity or Volunteer was not found." + } + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/volunteer/ministry": { + "put": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Commit volunteers in specific serving opportunity to ministry", + "description": "**Data Access:**
\r\nUPDATE Access to a specific Volunteer for a specific Serving Opportunity", + "operationId": "CommitServingOpportunityVolunteersToMinistry", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "description": "Serving Opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "soVolunteerIds", + "in": "query", + "description": "Serving opportunity volunteers IDs", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": ">Data to update Ministry Member records", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberBulkUpdateViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberBulkUpdateViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberBulkUpdateViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_MinistryMemberBulkUpdateViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Record has been updated." + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/serving-opportunity/{id}/attachment": { + "post": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Upload a File for Email Attachment", + "description": "**Action Access:**
\r\nAllowed for ministry leader or ManageLocalMinistries\r\n\r\nUploads the file to cloud storage (Amazon S3) where it can be viewed/downloaded by unauthenticated callers\r\nwith the URL (intended usage is to embed the URL to the file in an email in lieu of actually \"attaching\" the file).", + "operationId": "UploadAttachment", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "File is empty.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + } + } + }, + "/api/serving-opportunity/{id}/email": { + "post": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Send an Email to Serving Opportunity Volunteers", + "description": "**Action Access:**
\r\nAllowed for ministry leader or ManageLocalMinistries\r\n\r\nCreates \"Notification\" records in the database and sends the email to the specified recipients.", + "operationId": "SendEmail", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving opportunity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + } + } + }, + "/api/serving-opportunity/{id}/sms-eligibility": { + "get": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Get SMS eligibility for a select list of recipients drawn from the ministry roster", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Send SMS to Serving Opportunity Volunteers
\r\n
\r\n**Data Access:**
\r\nREAD access to informational (but not deeply personal) data about eligibility to send SMS messages\r\nto the specified Persons that are volunteers of the specified Serving Opp.\r\n\r\nIf the SMS recipient list is not explicit, but rather based on a filter/query applied to the list view,\r\nthen the M:Saddleback.Cm.Web.Controllers.Ministries.ServingOpportunityVolunteerController.GetFilteredServingOpportunityVolunteers(System.Int32,Saddleback.Cm.Web.ViewModels.Ministries.ServingOpportunityVolunteerFilterParameters,Saddleback.Cm.Common.Contracts.Infrastructure.Pagination,System.Boolean,System.Boolean,System.String) method should be used instead, specifying the flag to\r\nalso perform the SMS eligibility check on all of the filtered ministry members returned by the query.", + "operationId": "GetSmsEligibility", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personUniqueIds", + "in": "query", + "description": "Comma-separated list of Person Unique IDs of the intended SMS recipients", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Send SMS to Serving Opportunity Volunteers" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{id}/sms": { + "post": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "summary": "Send an SMS to volunteers of the given id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Send SMS to Serving Opportunity Volunteers
\r\n
\r\n**Data Access:**
\r\nCreates \"Notification\" records in the database and sends the SMS to the specified recipients.", + "operationId": "SendSms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Serving Opportunity Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Message", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Send SMS to Serving Opportunity Volunteers" + ] + } + ] + } + } + }, + "/api/serving-opportunity/{servingOpportunityId}/volunteer/export": { + "post": { + "tags": [ + "ServingOpportunityVolunteer" + ], + "operationId": "RequestDataExport", + "parameters": [ + { + "name": "servingOpportunityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + { + "name": "IncludeInactiveVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsMinistryMember", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "MissingRequirements", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityRequirements" + } + }, + { + "name": "HomeChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedPersonIds", + "in": "query", + "description": "Person IDs to exclude from filter result\r\nMust be used only for Bulk operations like sending emails", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceDates", + "in": "query", + "description": "Comma delimited list of iso 8601 dates (YYYY-MM-DD)", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Core_App_DataExtractFormat" + } + }, + { + "name": "occurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/share-page": { + "post": { + "tags": [ + "SharePage" + ], + "summary": "Create a Share Page", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: For Events, For Serving Opportunities
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Share Pages", + "operationId": "Create", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "info for the new Share Page", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Share Page successfully created" + }, + "400": { + "description": "Invalid. Something about the provided parameter values is not valid" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "For Events" + ] + }, + { + "Permissions": [ + "For Serving Opportunities" + ] + } + ] + } + } + }, + "/api/share-page/{sharePageId}": { + "get": { + "tags": [ + "SharePage" + ], + "summary": "Get an existing Share Page", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: For Events, For Serving Opportunities
\r\n
\r\n**Data Access:**
\r\nREAD Access to an individual Share Page", + "operationId": "Get", + "parameters": [ + { + "name": "sharePageId", + "in": "path", + "description": "Share Page Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Share Page successfully retrieved" + }, + "400": { + "description": "Invalid. Something about the provided parameters is not valid" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "For Events" + ] + }, + { + "Permissions": [ + "For Serving Opportunities" + ] + } + ] + } + }, + "put": { + "tags": [ + "SharePage" + ], + "summary": "Update an existing Share Page", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: For Events, For Serving Opportunities
\r\n
\r\n**Data Access:**
\r\nWRITE Access to an individual Share Page", + "operationId": "Update", + "parameters": [ + { + "name": "sharePageId", + "in": "path", + "description": "Share Page Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "updates to apply to the existing Share Page", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Share Page successfully updated" + }, + "400": { + "description": "Invalid. Something about the provided parameters is not valid" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "For Events" + ] + }, + { + "Permissions": [ + "For Serving Opportunities" + ] + } + ] + } + } + }, + "/api/share-page/{sharePageType}": { + "get": { + "tags": [ + "SharePage" + ], + "summary": "Get Share Pages by Saddleback.Cm.Contracts.Models.SharePages.SharePageType", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: For Events, For Serving Opportunities
\r\n
\r\n**Data Access:**
\r\nREAD Access to Share Pages", + "operationId": "Get", + "parameters": [ + { + "name": "sharePageType", + "in": "path", + "description": "The Type of SharePages to retrieve - Unknown is not allowed", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_SharePageType" + } + }, + { + "name": "searchString", + "in": "query", + "description": "Search within SharePage titles", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Share Pages successfully retrieved" + }, + "400": { + "description": "Invalid. Something about the provided parameter values is not valid" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "For Events" + ] + }, + { + "Permissions": [ + "For Serving Opportunities" + ] + } + ] + } + } + }, + "/api/share-page/compare-results": { + "post": { + "tags": [ + "SharePage" + ], + "summary": "Compare results for pending changes to a given Share Page", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: For Events, For Serving Opportunities
\r\n
\r\n**Data Access:**
\r\nREAD Access to an individual Share Page", + "operationId": "CompareResults", + "parameters": [ + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "filter updates for the Share Page", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageCompareResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageCompareResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageCompareResultsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SharePageCompareResultsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Share Page successfully retrieved" + }, + "400": { + "description": "Invalid. Something about the provided parameters is not valid" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + }, + "404": { + "description": "Not found" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "For Events" + ] + }, + { + "Permissions": [ + "For Serving Opportunities" + ] + } + ] + } + } + }, + "/api/share-page/image": { + "post": { + "tags": [ + "SharePage" + ], + "summary": "Upload image for use w/ Share Page", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: For Events, For Serving Opportunities
\r\n
\r\n**Data Access:**
\r\nN/A", + "operationId": "Image", + "parameters": [ + { + "name": "imageSizeType", + "in": "query", + "description": "Cannot be Saddleback.Cm.Common.Services.Images.ImageSizeType.Unknown", + "schema": { + "$ref": "#/components/schemas/Core_App_ImageSizeType" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "successfully uploaded the image", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Core_App_UploadImageResultViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_UploadImageResultViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_UploadImageResultViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "For Events" + ] + }, + { + "Permissions": [ + "For Serving Opportunities" + ] + } + ] + } + } + }, + "/api/share-page-public/{sharePageId}": { + "get": { + "tags": [ + "SharePagePublic" + ], + "summary": "Get Content for Share Page of given sharePageId", + "description": "**Data Access:**
\r\nREAD Access to an individual Share Page", + "operationId": "Get", + "parameters": [ + { + "name": "sharePageId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Share Page Content successfully retrieved" + }, + "400": { + "description": "Invalid. Something about the provided parameters is not valid" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/api/speaker": { + "get": { + "tags": [ + "Speaker" + ], + "summary": "Get all speakers or by data source id", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "personId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "Speaker" + ], + "summary": "Create a new speaker", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Speakers
\r\n", + "operationId": "CreateSpeaker", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SpeakerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SpeakerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SpeakerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SpeakerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Speakers" + ] + } + ] + } + } + }, + "/api/speaker/{id}": { + "get": { + "tags": [ + "Speaker" + ], + "summary": "Get a speaker by id", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "Speaker" + ], + "summary": "Update the speaker", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Speakers
\r\n", + "operationId": "UpdateSpeaker", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SpeakerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SpeakerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SpeakerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_SpeakerViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Speakers" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Speaker" + ], + "summary": "Delete the speaker", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Speakers
\r\n", + "operationId": "DeleteSpeaker", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Speakers" + ] + } + ] + } + } + }, + "/api/venue/on-campus/{venueId}/subvenue": { + "get": { + "tags": [ + "SubVenue" + ], + "summary": "Get all sub-venues by venue Id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "GetAllSubVenueByVenueId", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "post": { + "tags": [ + "SubVenue" + ], + "summary": "Create a new sub-venues", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "CreateSubVenue", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + } + }, + "/api/venue/off-campus/{venueId}/subvenue": { + "get": { + "tags": [ + "SubVenue" + ], + "summary": "Get all sub-venues by venue Id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "GetAllSubVenueByVenueId", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "post": { + "tags": [ + "SubVenue" + ], + "summary": "Create a new sub-venues", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "CreateSubVenue", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + } + }, + "/api/venue/on-campus/{venueId}/subvenue/{subVenueId}": { + "get": { + "tags": [ + "SubVenue" + ], + "summary": "Get a sub-venue by id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "GetSubVenueById", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "put": { + "tags": [ + "SubVenue" + ], + "summary": "Update the sub-venues", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "UpdateSubVenue", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "delete": { + "tags": [ + "SubVenue" + ], + "summary": "Delete the on-campus sub-venues", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "DeleteSubVenue", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + } + }, + "/api/venue/off-campus/{venueId}/subvenue/{subVenueId}": { + "get": { + "tags": [ + "SubVenue" + ], + "summary": "Get a sub-venue by id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "GetSubVenueById", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "put": { + "tags": [ + "SubVenue" + ], + "summary": "Update the sub-venues", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "UpdateSubVenue", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "delete": { + "tags": [ + "SubVenue" + ], + "summary": "Delete the on-campus sub-venues", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "DeleteSubVenue", + "parameters": [ + { + "name": "venueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + } + }, + "/api/venue/subvenue": { + "get": { + "tags": [ + "SubVenue" + ], + "summary": "Get sub-venues by IDs", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nInternal systems access only", + "operationId": "GetByIds", + "parameters": [ + { + "name": "subVenueIds", + "in": "query", + "description": "Sub-Venue IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of sub-venues.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/tag": { + "get": { + "tags": [ + "Tag" + ], + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "deprecated": true + }, + "post": { + "tags": [ + "Tag" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Tags
\r\n", + "operationId": "Post", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Tags" + ] + } + ] + } + } + }, + "/api/tag/{id}": { + "get": { + "tags": [ + "Tag" + ], + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "Tag" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Tags
\r\n", + "operationId": "Put", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_TagViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Tags" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Tag" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Tags
\r\n", + "operationId": "Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Tags" + ] + } + ] + } + } + }, + "/api/tag/id": { + "post": { + "tags": [ + "Tag" + ], + "operationId": "GetById", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/tag/category": { + "get": { + "tags": [ + "Tag" + ], + "operationId": "GetByCategoryId", + "parameters": [ + { + "name": "categoryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "category", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/tag-category": { + "get": { + "tags": [ + "TagCategory" + ], + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/tag-category/{id}": { + "get": { + "tags": [ + "TagCategory" + ], + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/tag-category/filter": { + "get": { + "tags": [ + "TagCategory" + ], + "operationId": "GetByCategoryName", + "parameters": [ + { + "name": "name", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/team": { + "get": { + "tags": [ + "Team" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "churchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "Team" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Teams
\r\n", + "operationId": "CreateTeam", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamDetailedViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamDetailedViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamDetailedViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamDetailedViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Teams" + ], + "ModelParameterName": [ + "viewModel" + ] + } + ] + } + } + }, + "/api/team/church-entity/{churchEntityId}": { + "get": { + "tags": [ + "Team" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetTeamsByCampus", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/team/{id}": { + "get": { + "tags": [ + "Team" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetTeam", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "Team" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Teams
\r\n", + "operationId": "UpdateTeam", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamDetailedViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamDetailedViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamDetailedViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_App_TeamDetailedViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Teams" + ], + "ModelParameterName": [ + "viewModel" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Team" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Teams
\r\n", + "operationId": "DeleteTeam", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Teams" + ] + } + ] + } + } + }, + "/api/team/my": { + "get": { + "tags": [ + "Team" + ], + "operationId": "GetMyTeams", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/team/{id}/members": { + "get": { + "tags": [ + "Team" + ], + "operationId": "GetTeamMembers", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "schema": { + "type": "string", + "default": "lastName,ASC" + } + }, + { + "name": "pageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 150 + } + }, + { + "name": "pageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "post": { + "tags": [ + "Team" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Teams
\r\n", + "operationId": "AddTeamMembers", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Teams" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Team" + ], + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Teams
\r\n", + "operationId": "RemoveTeamMembers", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Teams" + ] + } + ] + } + } + }, + "/api/template/name": { + "get": { + "tags": [ + "Template" + ], + "summary": "Gets Template by name", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Manage Event Attendees
\r\n
\r\n**Data Access:**
\r\nREAD access to a single specified Template.\r\n\r\n**More Info:**
\r\nThis operation is presently restricted to callers with 'Internal System' resource scope,\r\nas it is presently only used by REST SDK for obtaining Templates in other Microservices.", + "operationId": "GetTemplateByName", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "Template Name", + "schema": { + "type": "string" + } + }, + { + "name": "keepRazorSyntax", + "in": "query", + "description": "Boolean flag indicating whether or not any Razor syntax in the Template (assuming it is HTML/Razor) needs to be translated into UI-friendly markers.
\r\nShould be True if the caller wishes to keep the Template as Razor (i.e. to use the template to construct and send an email message).
\r\nShould be False (or omitted as this is the default) to translate the Razor syntax into UI-friendly markers (i.e. to fetch the template for editing in the UI, using a tool like CKEditor or Unlayer).", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Template." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + } + ] + } + } + }, + "/api/template/type/{templateType}": { + "get": { + "tags": [ + "Template" + ], + "summary": "Gets Templates by type", + "description": "**Data Access:**
", + "operationId": "GetTemplatesByType", + "parameters": [ + { + "name": "templateType", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/Core_Model_TemplateType" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of Templates." + }, + "401": { + "description": "Not authorized." + } + } + } + }, + "/api/time-zone": { + "get": { + "tags": [ + "TimeZone" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAllTimeZones", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/touchpoint": { + "get": { + "tags": [ + "Touchpoint" + ], + "summary": "Get paged list of Touchpoints", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Manage Journeys
\r\n
\r\n**Data Access:**
\r\nREAD Access to Touchpoints", + "operationId": "Get", + "parameters": [ + { + "name": "searchString", + "in": "query", + "description": "Search within Touchpoint names", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Touchpoints successfully retrieved" + }, + "400": { + "description": "Invalid. Something about the provided parameter values is not valid" + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Manage Journeys" + ] + } + ] + } + } + }, + "/api/venue/on-campus": { + "get": { + "tags": [ + "Venue" + ], + "summary": "Get all on-campus venues", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAllOnCampus", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "Venue" + ], + "summary": "Create a new on-campus venue", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "CreateOnCampusVenue", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ], + "ModelParameterName": [ + "venueViewModel" + ] + } + ] + } + } + }, + "/api/venue/off-campus": { + "get": { + "tags": [ + "Venue" + ], + "summary": "Get all off-campus venues", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetAllOffCampus", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "Venue" + ], + "summary": "Create a new off-campus venue", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "CreateOffCampusVenue", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ], + "ModelParameterName": [ + "venueViewModel" + ] + } + ] + } + } + }, + "/api/venue/{id}": { + "get": { + "tags": [ + "Venue" + ], + "summary": "Get a on-campus venue by id", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\nThis method returns correct HasAssociation property", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeAddress", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/venue": { + "get": { + "tags": [ + "Venue" + ], + "summary": "Get venues by IDs", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetByIds", + "parameters": [ + { + "name": "venueIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "includeRelatedVenues", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "includeSubVenues", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "fillCampusAddress", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/venue/on-campus/{id}": { + "get": { + "tags": [ + "Venue" + ], + "summary": "Get a on-campus venue by id", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\nThis method returns correct HasAssociation property", + "operationId": "GetOnCampusById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "Venue" + ], + "summary": "Update the on-campus venue", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "UpdateOnCampusVenue", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Venue" + ], + "summary": "Delete the on-campus venue", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "DeleteOnCampusVenue", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + } + }, + "/api/venue/off-campus/{id}": { + "get": { + "tags": [ + "Venue" + ], + "summary": "Get a off-campus venue by id", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\nThis method returns correct HasAssociation property", + "operationId": "GetOffCampusById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "Venue" + ], + "summary": "Update the on-campus venue", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "UpdateOffCampusVenue", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Venue" + ], + "summary": "Delete the off-campus venue", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "DeleteOffCampusVenue", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + } + }, + "/api/venue/on-campus/churchentity/{churchEntityId}": { + "get": { + "tags": [ + "Venue" + ], + "summary": "Get a venues by church entity id", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetOnCampusByChurchEntityId", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeSubVenues", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/venueaddress": { + "get": { + "tags": [ + "VenueAddress" + ], + "summary": "Get all venues addresses", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "GetAll", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "post": { + "tags": [ + "VenueAddress" + ], + "summary": "Create a new venue Address", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "CreateVenueAddress", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueAddressViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueAddressViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueAddressViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueAddressViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + } + }, + "/api/venueaddress/{id}": { + "get": { + "tags": [ + "VenueAddress" + ], + "summary": "Get a venue address by id", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "put": { + "tags": [ + "VenueAddress" + ], + "summary": "Update the venue address", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "UpdateVenueAddress", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueAddressViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueAddressViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueAddressViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Core_VenueAddressViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + }, + "delete": { + "tags": [ + "VenueAddress" + ], + "summary": "Delete the venue Address", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Venues
\r\n", + "operationId": "DeleteVenueAddress", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Venues" + ] + } + ] + } + } + }, + "/api/version": { + "get": { + "tags": [ + "Version" + ], + "operationId": "Get", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + } + }, + "components": { + "schemas": { + "Core_AgreementLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "version": { + "type": "integer", + "format": "int32" + }, + "active": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_AgreementViewModel": { + "required": [ + "content", + "name", + "title" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 256, + "type": "string" + }, + "version": { + "type": "integer", + "format": "int32" + }, + "title": { + "maxLength": 256, + "type": "string" + }, + "content": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "predecessorId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_AnswerCustomFieldBulkDeletionRequestViewModel": { + "required": [ + "entityId", + "entityType" + ], + "type": "object", + "properties": { + "entityType": { + "type": "string" + }, + "entityId": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_AgeGroupStatisticsViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "total": { + "type": "number", + "format": "double" + } + }, + "additionalProperties": false + }, + "Core_App_AnnouncementCategoryViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_App_AnnouncementViewModel": { + "required": [ + "body", + "title" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string" + }, + "categoryId": { + "type": "integer", + "format": "int32" + }, + "categoryName": { + "type": "string", + "nullable": true + }, + "categoryDescription": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string" + }, + "heroImage": { + "type": "string", + "nullable": true + }, + "callToAction": { + "type": "string", + "nullable": true + }, + "callToActionType": { + "$ref": "#/components/schemas/Core_Model_CallToActionType" + }, + "callToActionEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "callToActionEntityName": { + "type": "string", + "nullable": true + }, + "contentId": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "modifiedBy": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ApplicationUser": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "personId": { + "type": "string", + "nullable": true + }, + "userName": { + "type": "string", + "nullable": true + }, + "emailConfirmed": { + "type": "boolean" + }, + "accessFailedCount": { + "type": "integer", + "format": "int32" + }, + "lockoutEnd": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isLockedOut": { + "type": "boolean" + }, + "mergeableItem": { + "$ref": "#/components/schemas/Core_Model_MergeItemDto" + } + }, + "additionalProperties": false + }, + "Core_App_Assembly": { + "type": "object", + "properties": { + "definedTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "readOnly": true + }, + "exportedTypes": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true, + "readOnly": true + }, + "codeBase": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "entryPoint": { + "$ref": "#/components/schemas/Core_App_MethodInfo" + }, + "fullName": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "imageRuntimeVersion": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "isDynamic": { + "type": "boolean", + "readOnly": true + }, + "location": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "reflectionOnly": { + "type": "boolean", + "readOnly": true + }, + "isCollectible": { + "type": "boolean", + "readOnly": true + }, + "isFullyTrusted": { + "type": "boolean", + "readOnly": true + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CustomAttributeData" + }, + "nullable": true, + "readOnly": true + }, + "escapedCodeBase": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "manifestModule": { + "$ref": "#/components/schemas/Core_App_Module" + }, + "modules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_Module" + }, + "nullable": true, + "readOnly": true + }, + "globalAssemblyCache": { + "type": "boolean", + "readOnly": true, + "deprecated": true + }, + "hostContext": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "securityRuleSet": { + "$ref": "#/components/schemas/Core_App_SecurityRuleSet" + } + }, + "additionalProperties": false + }, + "Core_App_AuditLogNoteCreateViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "note": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_AuditLogNoteViewModel": { + "type": "object", + "properties": { + "note": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "createdBy": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_AuditLogViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "entityId": { + "type": "integer", + "format": "int32" + }, + "entityName": { + "type": "string", + "nullable": true + }, + "isEntityActive": { + "type": "boolean" + }, + "correlationId": { + "type": "integer", + "format": "int32" + }, + "source": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "integer", + "format": "int64" + }, + "createdBy": { + "type": "integer", + "format": "int32" + }, + "createdByFullName": { + "type": "string", + "nullable": true + }, + "categories": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "details": { + "type": "array", + "items": { }, + "nullable": true + }, + "notes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AuditLogNoteViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_Body": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "content": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Core_App_CallingConventions": { + "enum": [ + "Standard", + "VarArgs", + "Any", + "HasThis", + "ExplicitThis" + ], + "type": "string" + }, + "Core_App_CampusServiceTemplateViewModel": { + "required": [ + "description", + "name" + ], + "type": "object", + "properties": { + "serviceTemplateId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "occurrenceIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "occurrences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel" + }, + "nullable": true + }, + "isPublished": { + "type": "boolean" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "connectionQuestions": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "nextStepQuestions": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "announcements": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "services": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "nullable": true + }, + "servicesToCreate": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_EventOccurrenceViewModel" + }, + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "modifiedBy": { + "type": "string", + "nullable": true + }, + "image": { + "type": "string", + "nullable": true + }, + "speakerIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "speakers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ServiceSpeaker" + }, + "nullable": true + }, + "seriesId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "seriesName": { + "type": "string", + "nullable": true + }, + "seriesHeroImage": { + "type": "string", + "nullable": true + }, + "seriesDescription": { + "type": "string", + "nullable": true + }, + "seriesTagline": { + "type": "string", + "nullable": true + }, + "seriesPartNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "outline": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateOutline" + }, + "songIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "mediaId": { + "type": "string", + "nullable": true + }, + "mediaUrl": { + "type": "string", + "nullable": true + }, + "isExternalMedia": { + "type": "boolean" + }, + "serviceQuestions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + }, + "nullable": true + }, + "sortedServiceQuestions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_CampusStatisticsViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "total": { + "type": "number", + "format": "double" + }, + "byService": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ServiceStatisticsViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ClientRateLimitOptions": { + "type": "object", + "properties": { + "clientPolicyPrefix": { + "type": "string", + "nullable": true + }, + "generalRules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_RateLimitRule" + }, + "nullable": true + }, + "endpointWhitelist": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "clientIdHeader": { + "type": "string", + "nullable": true + }, + "clientWhitelist": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "realIpHeader": { + "type": "string", + "nullable": true + }, + "ipWhitelist": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "httpStatusCode": { + "type": "integer", + "format": "int32" + }, + "quotaExceededMessage": { + "type": "string", + "nullable": true + }, + "quotaExceededResponse": { + "$ref": "#/components/schemas/Core_App_QuotaExceededResponse" + }, + "rateLimitCounterPrefix": { + "type": "string", + "nullable": true + }, + "stackBlockedRequests": { + "type": "boolean" + }, + "enableEndpointRateLimiting": { + "type": "boolean" + }, + "disableRateLimitHeaders": { + "type": "boolean" + }, + "enableRegexRuleMatching": { + "type": "boolean" + }, + "requestBlockedBehaviorAsync": { + "$ref": "#/components/schemas/Core_Func_HttpContext_ClientRequestIdentity_RateLimitCounter_RateLimitRule_Task" + } + }, + "additionalProperties": false + }, + "Core_App_ConstructorInfo": { + "type": "object", + "properties": { + "memberType": { + "$ref": "#/components/schemas/Core_App_MemberTypes" + }, + "attributes": { + "$ref": "#/components/schemas/Core_App_MethodAttributes" + }, + "methodImplementationFlags": { + "$ref": "#/components/schemas/Core_App_MethodImplAttributes" + }, + "callingConvention": { + "$ref": "#/components/schemas/Core_App_CallingConventions" + }, + "isAbstract": { + "type": "boolean", + "readOnly": true + }, + "isConstructor": { + "type": "boolean", + "readOnly": true + }, + "isFinal": { + "type": "boolean", + "readOnly": true + }, + "isHideBySig": { + "type": "boolean", + "readOnly": true + }, + "isSpecialName": { + "type": "boolean", + "readOnly": true + }, + "isStatic": { + "type": "boolean", + "readOnly": true + }, + "isVirtual": { + "type": "boolean", + "readOnly": true + }, + "isAssembly": { + "type": "boolean", + "readOnly": true + }, + "isFamily": { + "type": "boolean", + "readOnly": true + }, + "isFamilyAndAssembly": { + "type": "boolean", + "readOnly": true + }, + "isFamilyOrAssembly": { + "type": "boolean", + "readOnly": true + }, + "isPrivate": { + "type": "boolean", + "readOnly": true + }, + "isPublic": { + "type": "boolean", + "readOnly": true + }, + "isConstructedGenericMethod": { + "type": "boolean", + "readOnly": true + }, + "isGenericMethod": { + "type": "boolean", + "readOnly": true + }, + "isGenericMethodDefinition": { + "type": "boolean", + "readOnly": true + }, + "containsGenericParameters": { + "type": "boolean", + "readOnly": true + }, + "methodHandle": { + "$ref": "#/components/schemas/Core_App_RuntimeMethodHandle" + }, + "isSecurityCritical": { + "type": "boolean", + "readOnly": true + }, + "isSecuritySafeCritical": { + "type": "boolean", + "readOnly": true + }, + "isSecurityTransparent": { + "type": "boolean", + "readOnly": true + }, + "name": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "declaringType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "reflectedType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "module": { + "$ref": "#/components/schemas/Core_App_Module" + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CustomAttributeData" + }, + "nullable": true, + "readOnly": true + }, + "isCollectible": { + "type": "boolean", + "readOnly": true + }, + "metadataToken": { + "type": "integer", + "format": "int32", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_CustomAttributeData": { + "type": "object", + "properties": { + "attributeType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "constructor": { + "$ref": "#/components/schemas/Core_App_ConstructorInfo" + }, + "constructorArguments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CustomAttributeTypedArgument" + }, + "nullable": true, + "readOnly": true + }, + "namedArguments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CustomAttributeNamedArgument" + }, + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_CustomAttributeNamedArgument": { + "type": "object", + "properties": { + "memberInfo": { + "$ref": "#/components/schemas/Core_App_MemberInfo" + }, + "typedValue": { + "$ref": "#/components/schemas/Core_App_CustomAttributeTypedArgument" + }, + "memberName": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "isField": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_CustomAttributeTypedArgument": { + "type": "object", + "properties": { + "argumentType": { + "type": "string", + "nullable": true + }, + "value": { + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_DailyDevotionalContent": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "nullable": true + }, + "publishedDate": { + "type": "string", + "format": "date-time" + }, + "owner": { + "type": "string", + "nullable": true + }, + "author": { + "type": "string", + "nullable": true + }, + "day": { + "type": "string", + "nullable": true + }, + "year": { + "type": "string", + "nullable": true + }, + "citation": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "heroImage": { + "$ref": "#/components/schemas/Core_App_LinkContent" + }, + "plainTextBody": { + "type": "string", + "nullable": true + }, + "htmlBody": { + "type": "string", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "contentItemId": { + "type": "string", + "nullable": true + }, + "contentItemVersionId": { + "type": "string", + "nullable": true + }, + "contentType": { + "type": "string", + "nullable": true + }, + "isLatest": { + "type": "boolean" + }, + "isPublished": { + "type": "boolean" + }, + "modifiedDate": { + "type": "string", + "format": "date-time" + }, + "createdDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_App_DailyVerseContent": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "nullable": true + }, + "publishedDate": { + "type": "string", + "format": "date-time" + }, + "owner": { + "type": "string", + "nullable": true + }, + "author": { + "type": "string", + "nullable": true + }, + "day": { + "type": "string", + "nullable": true + }, + "year": { + "type": "string", + "nullable": true + }, + "citation": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "heroImage": { + "$ref": "#/components/schemas/Core_App_LinkContent" + }, + "plainTextBody": { + "type": "string", + "nullable": true + }, + "htmlBody": { + "type": "string", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "contentItemId": { + "type": "string", + "nullable": true + }, + "contentItemVersionId": { + "type": "string", + "nullable": true + }, + "contentType": { + "type": "string", + "nullable": true + }, + "isLatest": { + "type": "boolean" + }, + "isPublished": { + "type": "boolean" + }, + "modifiedDate": { + "type": "string", + "format": "date-time" + }, + "createdDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_App_DataExtractFormat": { + "enum": [ + "Unknown", + "Excel", + "CSV" + ], + "type": "string" + }, + "Core_App_DayOfWeek": { + "enum": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + "type": "string" + }, + "Core_App_EmailVerificationFullfillmentViewModel": { + "type": "object", + "properties": { + "token": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_EmailVerificationRequestViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "description": "Person UNIQUE ID", + "format": "int32" + }, + "email": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_EngagementViewModel": { + "type": "object", + "properties": { + "categoryName": { + "type": "string", + "nullable": true + }, + "dateUtc": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "touchpointId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "eventName": { + "type": "string", + "nullable": true + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "ministryName": { + "type": "string", + "nullable": true + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ErrorType": { + "enum": [ + "None", + "RequestNotValid", + "RequestedEntityNotFound", + "UserNotAuthorized", + "Conflict", + "RuntimeException", + "NoContent" + ], + "type": "string" + }, + "Core_App_ErrorViewModel": { + "type": "object", + "properties": { + "message": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_EventOccurrenceViewModel": { + "required": [ + "actualStartDateTime", + "churchEntityId", + "scheduleId" + ], + "type": "object", + "properties": { + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "actualStartDateTime": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Core_App_FactStatisticsViewModel": { + "type": "object", + "properties": { + "dates": { + "$ref": "#/components/schemas/Core_App_WeekendFlashReportQueryDatesViewModel" + }, + "total": { + "type": "number", + "format": "double" + }, + "byCampus": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CampusStatisticsViewModel" + }, + "nullable": true + }, + "totalByAge": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AgeGroupStatisticsViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_FamilyAddressUpdateViewModel": { + "required": [ + "personIds" + ], + "type": "object", + "properties": { + "address": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + }, + "personIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Should be a collection of Person Unique IDs" + } + }, + "additionalProperties": false, + "description": "This view model is for the use case of updating all members of a family\r\nto have the same Primary Address" + }, + "Core_App_FamilyCampusUpdateViewModel": { + "required": [ + "personIds" + ], + "type": "object", + "properties": { + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityKnown": { + "type": "boolean" + }, + "personIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Should be a collection of Person Unique IDs" + } + }, + "additionalProperties": false, + "description": "This view model is for the use case of updating all members of a family\r\nto have the same Home Campus" + }, + "Core_App_FeatureToggleRequestViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_App_FollowUpRuleCountViewModel": { + "type": "object", + "properties": { + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32" + }, + "ruleCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_FollowUpTaskBulkActionRequestViewModel": { + "type": "object", + "properties": { + "taskIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_FollowUpTaskCommentViewModel": { + "required": [ + "comment", + "taskId" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "taskId": { + "type": "integer", + "format": "int32" + }, + "comment": { + "type": "string" + }, + "author": { + "$ref": "#/components/schemas/Core_App_PersonSecurityLiteViewModel" + }, + "date": { + "type": "integer", + "format": "int64" + }, + "modified": { + "type": "integer", + "format": "int64" + } + }, + "additionalProperties": false + }, + "Core_App_FollowUpTaskEscalationRequestViewModel": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "nullable": true + }, + "taskIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_FollowUpTaskReassignmentRequestViewModel": { + "type": "object", + "properties": { + "assigneeId": { + "type": "integer", + "description": "Person Unique ID of the Person/User to which the referenced Tasks should be reassigned", + "format": "int32" + }, + "comment": { + "type": "string", + "nullable": true + }, + "taskIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_FollowUpTaskStatusUpdateRequestViewModel": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/Core_Model_FollowUpTaskStatus" + }, + "taskIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_GenderTypeCode": { + "enum": [ + "Unspecified", + "Male", + "Female" + ], + "type": "string" + }, + "Core_App_ICustomAttributeProvider": { + "type": "object", + "additionalProperties": false + }, + "Core_App_ImageSizeType": { + "enum": [ + "Unknown", + "Desktop", + "Mobile", + "Thumbnail" + ], + "type": "string" + }, + "Core_App_ImageViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "fileName": { + "type": "string", + "nullable": true + }, + "fileSize": { + "type": "integer", + "format": "int32" + }, + "placementId": { + "type": "string", + "nullable": true + }, + "mimeType": { + "type": "string", + "nullable": true + }, + "aspectRatio": { + "type": "string", + "nullable": true + }, + "height": { + "type": "integer", + "format": "int32" + }, + "width": { + "type": "integer", + "format": "int32" + }, + "url": { + "type": "string", + "nullable": true + }, + "playlistId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_ImportFieldMappingViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "dataSourceId": { + "type": "integer", + "format": "int32" + }, + "dataSourceType": { + "$ref": "#/components/schemas/Core_Model_IntegrationDataSourceType" + }, + "mapping": { + "$ref": "#/components/schemas/Core_App_ImportMappingViewModel" + } + }, + "additionalProperties": false + }, + "Core_App_ImportMappingItemViewModel": { + "type": "object", + "properties": { + "cmField": { + "type": "string", + "nullable": true + }, + "externalField": { + "type": "string", + "nullable": true + }, + "cmMilestoneId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "restrictions": { + "$ref": "#/components/schemas/Core_Model_ImportFieldRestriction" + }, + "valueMap": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ImportMappingPreviewViewModel": { + "type": "object", + "properties": { + "filePreview": { + "type": "string", + "nullable": true + }, + "maxRecordsCount": { + "type": "integer", + "format": "int32" + }, + "mapping": { + "$ref": "#/components/schemas/Core_App_ImportMappingViewModel" + } + }, + "additionalProperties": false + }, + "Core_App_ImportMappingViewModel": { + "type": "object", + "properties": { + "sourceFieldsHaveNames": { + "type": "boolean" + }, + "map": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ImportMappingItemViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ImportRecordViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "importHistoryId": { + "type": "integer", + "format": "int32" + }, + "personStatus": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + }, + "personAction": { + "$ref": "#/components/schemas/Core_Model_ImportRecordAction" + }, + "personPerformerPersonId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personActionStatus": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + }, + "milestoneStatus": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + }, + "milestoneAction": { + "$ref": "#/components/schemas/Core_Model_ImportRecordAction" + }, + "milestonePerformerPersonId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "milestoneActionStatus": { + "$ref": "#/components/schemas/Core_Model_ImportRecordStatus" + }, + "details": { + "$ref": "#/components/schemas/Core_Model_ImportRecordDetails" + }, + "firstNameFilter": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_IndexOperation": { + "enum": [ + "Invalid", + "Insert", + "Update", + "Delete" + ], + "type": "string" + }, + "Core_App_IntegrationDataSourceViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "processor": { + "type": "string", + "nullable": true + }, + "syncFeatures": { + "$ref": "#/components/schemas/Core_Model_SyncFeatures" + } + }, + "additionalProperties": false + }, + "Core_App_IpRateLimitOptions": { + "type": "object", + "properties": { + "ipPolicyPrefix": { + "type": "string", + "nullable": true + }, + "generalRules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_RateLimitRule" + }, + "nullable": true + }, + "endpointWhitelist": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "clientIdHeader": { + "type": "string", + "nullable": true + }, + "clientWhitelist": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "realIpHeader": { + "type": "string", + "nullable": true + }, + "ipWhitelist": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "httpStatusCode": { + "type": "integer", + "format": "int32" + }, + "quotaExceededMessage": { + "type": "string", + "nullable": true + }, + "quotaExceededResponse": { + "$ref": "#/components/schemas/Core_App_QuotaExceededResponse" + }, + "rateLimitCounterPrefix": { + "type": "string", + "nullable": true + }, + "stackBlockedRequests": { + "type": "boolean" + }, + "enableEndpointRateLimiting": { + "type": "boolean" + }, + "disableRateLimitHeaders": { + "type": "boolean" + }, + "enableRegexRuleMatching": { + "type": "boolean" + }, + "requestBlockedBehaviorAsync": { + "$ref": "#/components/schemas/Core_Func_HttpContext_ClientRequestIdentity_RateLimitCounter_RateLimitRule_Task" + } + }, + "additionalProperties": false + }, + "Core_App_IsoDayOfWeek": { + "enum": [ + "None", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" + ], + "type": "string" + }, + "Core_App_LinkContent": { + "type": "object", + "properties": { + "url": { + "type": "string", + "nullable": true + }, + "text": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MediaViewModel": { + "required": [ + "title", + "url" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "maxLength": 256, + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "descriptionLong": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string" + }, + "publishDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "trackNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "tags": { + "type": "string", + "nullable": true + }, + "playlist": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PlaylistViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MemberInfo": { + "type": "object", + "properties": { + "memberType": { + "$ref": "#/components/schemas/Core_App_MemberTypes" + }, + "name": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "declaringType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "reflectedType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "module": { + "$ref": "#/components/schemas/Core_App_Module" + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CustomAttributeData" + }, + "nullable": true, + "readOnly": true + }, + "isCollectible": { + "type": "boolean", + "readOnly": true + }, + "metadataToken": { + "type": "integer", + "format": "int32", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_MemberTypes": { + "enum": [ + "Constructor", + "Event", + "Field", + "Method", + "Property", + "TypeInfo", + "Custom", + "NestedType", + "All" + ], + "type": "string" + }, + "Core_App_MembershipStatusUpdateViewModel": { + "type": "object", + "properties": { + "newStatus": { + "type": "integer", + "format": "int32" + }, + "note": { + "type": "string", + "nullable": true + }, + "noteSensitive": { + "type": "boolean" + }, + "disengagementReason": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MethodAttributes": { + "enum": [ + "ReuseSlot", + "PrivateScope, Private", + "PrivateScope, FamANDAssem", + "PrivateScope, Assembly", + "PrivateScope, Family", + "PrivateScope, FamORAssem", + "PrivateScope, Public", + "PrivateScope, MemberAccessMask", + "PrivateScope, UnmanagedExport", + "PrivateScope, Static", + "PrivateScope, Final", + "PrivateScope, Virtual", + "PrivateScope, HideBySig", + "PrivateScope, VtableLayoutMask", + "PrivateScope, CheckAccessOnOverride", + "PrivateScope, Abstract", + "PrivateScope, SpecialName", + "PrivateScope, RTSpecialName", + "PrivateScope, PinvokeImpl", + "PrivateScope, HasSecurity", + "PrivateScope, RequireSecObject", + "PrivateScope, ReservedMask" + ], + "type": "string" + }, + "Core_App_MethodImplAttributes": { + "enum": [ + "Managed", + "Native", + "OPTIL", + "CodeTypeMask", + "Unmanaged", + "NoInlining", + "ForwardRef", + "Synchronized", + "NoOptimization", + "PreserveSig", + "AggressiveInlining", + "AggressiveOptimization", + "InternalCall", + "MaxMethodImplVal" + ], + "type": "string" + }, + "Core_App_MethodInfo": { + "type": "object", + "properties": { + "memberType": { + "$ref": "#/components/schemas/Core_App_MemberTypes" + }, + "returnParameter": { + "$ref": "#/components/schemas/Core_App_ParameterInfo" + }, + "returnType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "returnTypeCustomAttributes": { + "$ref": "#/components/schemas/Core_App_ICustomAttributeProvider" + }, + "attributes": { + "$ref": "#/components/schemas/Core_App_MethodAttributes" + }, + "methodImplementationFlags": { + "$ref": "#/components/schemas/Core_App_MethodImplAttributes" + }, + "callingConvention": { + "$ref": "#/components/schemas/Core_App_CallingConventions" + }, + "isAbstract": { + "type": "boolean", + "readOnly": true + }, + "isConstructor": { + "type": "boolean", + "readOnly": true + }, + "isFinal": { + "type": "boolean", + "readOnly": true + }, + "isHideBySig": { + "type": "boolean", + "readOnly": true + }, + "isSpecialName": { + "type": "boolean", + "readOnly": true + }, + "isStatic": { + "type": "boolean", + "readOnly": true + }, + "isVirtual": { + "type": "boolean", + "readOnly": true + }, + "isAssembly": { + "type": "boolean", + "readOnly": true + }, + "isFamily": { + "type": "boolean", + "readOnly": true + }, + "isFamilyAndAssembly": { + "type": "boolean", + "readOnly": true + }, + "isFamilyOrAssembly": { + "type": "boolean", + "readOnly": true + }, + "isPrivate": { + "type": "boolean", + "readOnly": true + }, + "isPublic": { + "type": "boolean", + "readOnly": true + }, + "isConstructedGenericMethod": { + "type": "boolean", + "readOnly": true + }, + "isGenericMethod": { + "type": "boolean", + "readOnly": true + }, + "isGenericMethodDefinition": { + "type": "boolean", + "readOnly": true + }, + "containsGenericParameters": { + "type": "boolean", + "readOnly": true + }, + "methodHandle": { + "$ref": "#/components/schemas/Core_App_RuntimeMethodHandle" + }, + "isSecurityCritical": { + "type": "boolean", + "readOnly": true + }, + "isSecuritySafeCritical": { + "type": "boolean", + "readOnly": true + }, + "isSecurityTransparent": { + "type": "boolean", + "readOnly": true + }, + "name": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "declaringType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "reflectedType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "module": { + "$ref": "#/components/schemas/Core_App_Module" + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CustomAttributeData" + }, + "nullable": true, + "readOnly": true + }, + "isCollectible": { + "type": "boolean", + "readOnly": true + }, + "metadataToken": { + "type": "integer", + "format": "int32", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_MetricAgeGroupViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Core_App_MetricCategoryViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Core_App_MinistryCentralEmailViewModel": { + "required": [ + "body", + "ministryIds", + "replyEmail", + "senderName", + "subject" + ], + "type": "object", + "properties": { + "ministryIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "recipientIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "senderName": { + "type": "string" + }, + "fromEmail": { + "type": "string", + "nullable": true + }, + "replyEmail": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "body": { + "type": "string" + }, + "bodyTemplateName": { + "type": "string", + "nullable": true + }, + "bodyMergeVars": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "attachments": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MinistryContactViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "fullName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phoneNumber": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MinistryGroupDetailViewModel": { + "required": [ + "churchEntityId", + "ministryId", + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MinistryLeaderDetailedViewModel": { + "type": "object", + "properties": { + "leadershipPositions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryLeadershipPositionViewModel" + }, + "nullable": true + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "phoneType": { + "$ref": "#/components/schemas/Core_Model_PhoneType" + }, + "publicEmail": { + "type": "string", + "nullable": true + }, + "publicPhone": { + "type": "string", + "nullable": true + }, + "publicPhoneType": { + "$ref": "#/components/schemas/Core_Model_PhoneType" + } + }, + "additionalProperties": false + }, + "Core_App_MinistryLeadershipPositionViewModel": { + "type": "object", + "properties": { + "ministryId": { + "type": "integer", + "format": "int32" + }, + "ministryName": { + "type": "string", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "leadershipPositions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MinistryLocationBulkUpdateViewModel": { + "type": "object", + "properties": { + "isAcceptingNewMembers": { + "type": "boolean", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + } + }, + "additionalProperties": false + }, + "Core_App_MinistryLocationStatisticsViewModel": { + "type": "object", + "properties": { + "membersCount": { + "type": "integer", + "format": "int32" + }, + "notContactedMembersCount": { + "type": "integer", + "format": "int32" + }, + "firstContactMembersCount": { + "type": "integer", + "format": "int32" + }, + "secondContactMembersCount": { + "type": "integer", + "format": "int32" + }, + "pendingMembersCount": { + "type": "integer", + "format": "int32" + }, + "ineligibleMembersCount": { + "type": "integer", + "format": "int32" + }, + "activeMembersCount": { + "type": "integer", + "format": "int32" + }, + "inactiveMembersCount": { + "type": "integer", + "format": "int32" + }, + "inTrainingMembersCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_MinistryLocationViewModel": { + "type": "object", + "properties": { + "ministryId": { + "type": "integer", + "format": "int32" + }, + "ministryName": { + "type": "string", + "nullable": true + }, + "ministryAbbreviation": { + "type": "string", + "description": "Ministry Abbreviation (short name indentifying the ministry used in SMS message prefixes and such)", + "nullable": true + }, + "parentMinistryStatus": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "churchEntityAbbreviation": { + "type": "string", + "description": "Campus Abbreviation (short name indentifying the campus used in SMS message prefixes and such)", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "purposeStatement": { + "type": "string", + "nullable": true + }, + "isAcceptingNewMembers": { + "type": "boolean" + }, + "membershipMetrics": { + "$ref": "#/components/schemas/Core_Model_MinistryMembershipMetrics" + }, + "settings": { + "$ref": "#/components/schemas/Core_MinistrySettingsViewModel" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + }, + "inactiveDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sendInterestedToLeader": { + "type": "boolean" + }, + "sendInterestedToColeader": { + "type": "boolean" + }, + "sendInterestedToStaffConnector": { + "type": "boolean" + }, + "leader": { + "$ref": "#/components/schemas/Core_MinistryLeaderViewModel" + }, + "coLeaders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLeaderViewModel" + }, + "nullable": true + }, + "staffConnectors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLeaderViewModel" + }, + "nullable": true + }, + "hasMembersWithValidEmail": { + "type": "boolean", + "nullable": true + }, + "socialMedia": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistrySocialMediaViewModel" + }, + "nullable": true + }, + "ministryContacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryContactViewModel" + }, + "nullable": true + }, + "alternateWebsite": { + "$ref": "#/components/schemas/Core_MinistryAlternateWebsiteViewModel" + }, + "personsToRemoveFromMinistry": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MinistryLocationWebSettingsViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "alternateWebsite": { + "$ref": "#/components/schemas/Core_MinistryAlternateWebsiteViewModel" + }, + "contacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryContactViewModel" + }, + "nullable": true + }, + "meetingTimes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistryScheduleViewModel" + }, + "nullable": true + }, + "socialMedia": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MinistrySocialMediaViewModel" + }, + "nullable": true + }, + "adSliderId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "blogId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "blueHornetSegmentId": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "wufooFormId1": { + "type": "string", + "nullable": true + }, + "wufooFormId2": { + "type": "string", + "nullable": true + }, + "relatedStoryTags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MinistryMemberDetailedViewModel": { + "type": "object", + "properties": { + "ministryCategory": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "ministryName": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "dateAdded": { + "type": "integer", + "format": "int64" + }, + "sourceId": { + "type": "integer", + "format": "int32" + }, + "source": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatus" + }, + "statusName": { + "type": "string", + "nullable": true + }, + "statusChanged": { + "type": "integer", + "format": "int64" + }, + "daysInStatus": { + "type": "integer", + "format": "int32" + }, + "isMember": { + "type": "boolean" + }, + "becameMember": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "daysAsMember": { + "type": "integer", + "format": "int32" + }, + "groupDateAdded": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Core_PersonViewModel" + }, + "contactPreferences": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + }, + "smsEligibility": { + "$ref": "#/components/schemas/Core_App_SmsEligibilityViewModel" + }, + "leadershipPositions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + }, + "eligibility": { + "$ref": "#/components/schemas/Core_EligibilityInfoViewModel" + }, + "hasPublicContacts": { + "type": "boolean", + "nullable": true + }, + "publicEmail": { + "type": "string", + "nullable": true + }, + "publicPhone": { + "type": "string", + "nullable": true + }, + "isServingOpportunityVolunteer": { + "type": "boolean", + "nullable": true + }, + "lastServeDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ministryMemberServeHours": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_MinistryScheduleViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "dayOfWeek": { + "$ref": "#/components/schemas/Core_App_DayOfWeek" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "location": { + "type": "string", + "nullable": true + }, + "isService": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_App_MinistrySocialMediaViewModel": { + "type": "object", + "properties": { + "platformId": { + "type": "integer", + "format": "int32" + }, + "platform": { + "type": "string", + "nullable": true + }, + "handle": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MismatchViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "refPersonId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_Module": { + "type": "object", + "properties": { + "assembly": { + "$ref": "#/components/schemas/Core_App_Assembly" + }, + "fullyQualifiedName": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "name": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "mdStreamVersion": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "moduleVersionId": { + "type": "string", + "format": "uuid", + "readOnly": true + }, + "scopeName": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "moduleHandle": { + "$ref": "#/components/schemas/Core_App_ModuleHandle" + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CustomAttributeData" + }, + "nullable": true, + "readOnly": true + }, + "metadataToken": { + "type": "integer", + "format": "int32", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_ModuleHandle": { + "type": "object", + "properties": { + "mdStreamVersion": { + "type": "integer", + "format": "int32", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_MultipleMinistryEmailRequestViewModel": { + "required": [ + "body", + "replyEmail", + "senderName", + "subject" + ], + "type": "object", + "properties": { + "excludedPersonIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "ministries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MinistryLocationIds" + }, + "nullable": true + }, + "recipientIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "senderName": { + "type": "string" + }, + "fromEmail": { + "type": "string", + "nullable": true + }, + "replyEmail": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "body": { + "type": "string" + }, + "bodyTemplateName": { + "type": "string", + "nullable": true + }, + "bodyMergeVars": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "attachments": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_MyMinistryWithLocationViewModel": { + "type": "object", + "properties": { + "canLogServingHours": { + "type": "boolean" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "categoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "categoryName": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "purposeStatement": { + "type": "string", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean", + "nullable": true + }, + "isAcceptingNewMembers": { + "type": "boolean", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + }, + "inactiveDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "mastheadImage": { + "type": "string", + "nullable": true + }, + "thumbnailImage": { + "type": "string", + "nullable": true + }, + "tags": { + "type": "string", + "nullable": true + }, + "contactFullName": { + "type": "string", + "nullable": true + }, + "contactPhone": { + "type": "string", + "nullable": true + }, + "contactEmail": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_NamedEntityViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_NullableDateTimeRange": { + "type": "object", + "properties": { + "start": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "end": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_Operation": { + "enum": [ + "Unknown", + "Reindex", + "Delete", + "Delete_Reindex" + ], + "type": "string" + }, + "Core_App_ParameterAttributes": { + "enum": [ + "None", + "In", + "Out", + "Lcid", + "Retval", + "Optional", + "HasDefault", + "HasFieldMarshal", + "Reserved3", + "Reserved4", + "ReservedMask" + ], + "type": "string" + }, + "Core_App_ParameterInfo": { + "type": "object", + "properties": { + "attributes": { + "$ref": "#/components/schemas/Core_App_ParameterAttributes" + }, + "member": { + "$ref": "#/components/schemas/Core_App_MemberInfo" + }, + "name": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "parameterType": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "position": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "isIn": { + "type": "boolean", + "readOnly": true + }, + "isLcid": { + "type": "boolean", + "readOnly": true + }, + "isOptional": { + "type": "boolean", + "readOnly": true + }, + "isOut": { + "type": "boolean", + "readOnly": true + }, + "isRetval": { + "type": "boolean", + "readOnly": true + }, + "defaultValue": { + "nullable": true, + "readOnly": true + }, + "rawDefaultValue": { + "nullable": true, + "readOnly": true + }, + "hasDefaultValue": { + "type": "boolean", + "readOnly": true + }, + "customAttributes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CustomAttributeData" + }, + "nullable": true, + "readOnly": true + }, + "metadataToken": { + "type": "integer", + "format": "int32", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_PermissionNodeViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "isSensitive": { + "type": "boolean" + }, + "isLeaf": { + "type": "boolean" + }, + "enabled": { + "type": "boolean" + }, + "readonly": { + "type": "boolean" + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PermissionNodeViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_PermissionViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_App_PersonConnectionMinistryInfoViewModel": { + "type": "object", + "properties": { + "ministryId": { + "type": "integer", + "format": "int32" + }, + "ministryName": { + "type": "string", + "nullable": true + }, + "ministryCategory": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "dateAddedToMinistry": { + "type": "string", + "description": "The Date the \"Reference\" Person was added to the Ministry", + "format": "date-time" + }, + "dateBecameMinistryMember": { + "type": "string", + "description": "The Date the \"Reference\" Person became a Member of the Ministry\r\n(i.e. either joining the Ministry as a Member, or transitioning from an Interested status to a Member status)", + "format": "date-time", + "nullable": true + }, + "ministryMemberStatus": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatus" + }, + "ministryMemberStatusType": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatusType" + } + }, + "additionalProperties": false + }, + "Core_App_PersonConnectionViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "fullName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "birthDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "maritalStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maritalStatus": { + "type": "string", + "nullable": true + }, + "membershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "membershipStatus": { + "type": "string", + "nullable": true + }, + "relation": { + "type": "string", + "nullable": true + }, + "relationshipType": { + "type": "string", + "nullable": true + }, + "connectionType": { + "type": "string", + "nullable": true + }, + "age": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "isAdult": { + "type": "boolean", + "nullable": true + }, + "isStudent": { + "type": "boolean", + "nullable": true + }, + "isChild": { + "type": "boolean", + "nullable": true + }, + "profilePictureUrl": { + "type": "string", + "description": "Should be set to Avatar URL if Person has an Avatar image set, or NULL otherwise", + "nullable": true + }, + "isAddressMatch": { + "type": "boolean", + "description": "Flag indicating whether Primary Address matches that of some \"reference\" Person", + "nullable": true + }, + "ministries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonConnectionMinistryInfoViewModel" + }, + "description": "For Ministry Leader Connections, this is the list of Ministry Locations led by the related Person\r\nwith information about the Reference Person's Membership in each.", + "nullable": true + }, + "isAttended": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_PersonFacebookViewModel": { + "required": [ + "fbAppId", + "fbEmail", + "fbFirstName", + "fbId", + "fbLastName" + ], + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "fbFirstName": { + "type": "string" + }, + "fbLastName": { + "type": "string" + }, + "fbEmail": { + "type": "string" + }, + "fbId": { + "type": "integer", + "format": "int64" + }, + "fbAppId": { + "type": "integer", + "format": "int64" + } + }, + "additionalProperties": false + }, + "Core_App_PersonGivingViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "lastGivingDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "fullName": { + "type": "string", + "nullable": true + }, + "relationType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_PersonMinistryServingHoursViewModel": { + "required": [ + "churchEntityId", + "ministryId", + "personId", + "serveDate", + "serveHours", + "timeZone" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "serveHours": { + "type": "string", + "format": "date-span" + }, + "serveDate": { + "type": "string", + "format": "date-time" + }, + "timeZone": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Core_App_PersonPermissionViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "scope": { + "$ref": "#/components/schemas/Core_Model_SecurityScope" + }, + "scopeHashCode": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_PersonRelationshipViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "inferred": { + "type": "boolean", + "description": "Flag indicating whether the Relationhip was created from explicit data, or infered from other Retionships." + }, + "invalidReason": { + "type": "string", + "description": "Explains why a (proposed) relationship might not be valid", + "nullable": true + }, + "isAddressMatch": { + "type": "boolean", + "description": "Flag indicating whether Primary Address matches that of some \"reference\" Person" + }, + "personBirthdate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "personDeceasedDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "personFullName": { + "type": "string", + "nullable": true + }, + "personGender": { + "type": "string", + "nullable": true + }, + "personId": { + "type": "integer", + "description": "Unique ID of the reference Person", + "format": "int32" + }, + "personMembershipStatus": { + "type": "string", + "nullable": true + }, + "relation": { + "type": "string", + "description": "Friendly and gender-specific (if gender of relative is available) relationship description", + "nullable": true + }, + "relationType": { + "$ref": "#/components/schemas/Core_Model_PersonRelationType" + }, + "relativeAge": { + "type": "integer", + "description": "Calculated Age from Birth Date (if BirthDate is populated)", + "format": "int32", + "nullable": true + }, + "relativeBirthdate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "relativeDeceasedDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "relativeFullName": { + "type": "string", + "nullable": true + }, + "relativeGender": { + "type": "string", + "nullable": true + }, + "relativeId": { + "type": "integer", + "description": "Unique ID of the related person", + "format": "int32" + }, + "relativeMembershipStatus": { + "type": "string", + "nullable": true + }, + "relativeProfilePhotoUrl": { + "type": "string", + "nullable": true + }, + "relativeProfilePictureUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_PersonSecurityLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "Corresponds to Saddleback.Cm.Contracts.Models.People.Person.UniqueId (visible unique identifier)", + "format": "int32" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "fullName": { + "type": "string", + "nullable": true + }, + "avatar": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "description": "User's Primary Email Address", + "nullable": true + }, + "publicEmail": { + "type": "string", + "description": "User's Public Email Address (if specified)", + "nullable": true + }, + "hasPublicContact": { + "type": "boolean", + "description": "Indicates if user has either a public email or public phone" + }, + "personChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personChurchEntity": { + "type": "string", + "nullable": true + }, + "personChurchEntityKnown": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_App_PersonSecurityRoleViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "type": { + "$ref": "#/components/schemas/Core_Model_SecurityRoleType" + }, + "permissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PermissionViewModel" + }, + "nullable": true + }, + "scope": { + "$ref": "#/components/schemas/Core_Model_SecurityScope" + }, + "scopeHashCode": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_PersonSecurityViewModel": { + "type": "object", + "properties": { + "deceasedDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "membershipStatus": { + "type": "string", + "nullable": true + }, + "permissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonPermissionViewModel" + }, + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonSecurityRoleViewModel" + }, + "nullable": true + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_TeamDetailedViewModel" + }, + "nullable": true + }, + "loginDisableDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "loginDisabledBy": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "disabledByName": { + "type": "string", + "nullable": true + }, + "ministryNames": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Used for displaying ministries in scopes", + "nullable": true + }, + "servingOpportunityNames": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Used for displaying serving opportunities in scopes", + "nullable": true + }, + "connectionFormNames": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Used for displaying connection form in scopes", + "nullable": true + }, + "noteCategoryNames": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Used for displaying note categories in scopes", + "nullable": true + }, + "eventNames": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "description": "Used for displaying event scopes", + "nullable": true + }, + "allNoteCategories": { + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "nullable": true + }, + "id": { + "type": "integer", + "description": "Corresponds to Saddleback.Cm.Contracts.Models.People.Person.UniqueId (visible unique identifier)", + "format": "int32" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "fullName": { + "type": "string", + "nullable": true + }, + "avatar": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "description": "User's Primary Email Address", + "nullable": true + }, + "publicEmail": { + "type": "string", + "description": "User's Public Email Address (if specified)", + "nullable": true + }, + "hasPublicContact": { + "type": "boolean", + "description": "Indicates if user has either a public email or public phone" + }, + "personChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personChurchEntity": { + "type": "string", + "nullable": true + }, + "personChurchEntityKnown": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_App_PlaylistViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "subTitle": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "active": { + "type": "boolean" + }, + "featured": { + "type": "boolean" + }, + "ordinal": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "media": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + }, + "nullable": true + }, + "image": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ImageViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_PodcastViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "frequency": { + "type": "string", + "nullable": true + }, + "media": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_MediaViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": { } + }, + "Core_App_QuickViewMinistryLocationViewModel": { + "type": "object", + "properties": { + "ministryId": { + "type": "integer", + "format": "int32" + }, + "ministryName": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "purposeStatement": { + "type": "string", + "nullable": true + }, + "isAcceptingNewMembers": { + "type": "boolean" + }, + "ministryCategoryId": { + "type": "integer", + "format": "int32" + }, + "ministryCategoryName": { + "type": "string", + "nullable": true + }, + "ministryTags": { + "type": "string", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + }, + "inactiveDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "activeMembers": { + "type": "integer", + "format": "int32" + }, + "interestedMembers": { + "type": "integer", + "format": "int32" + }, + "leaderName": { + "type": "string", + "nullable": true + }, + "leaderEmail": { + "type": "string", + "nullable": true + }, + "leaderPublicEmail": { + "type": "string", + "nullable": true + }, + "staffConnectorName": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "locationServeHours": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_QuickViewMinistryLocationsViewModel": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "locations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_QuickViewMinistryLocationViewModel" + }, + "nullable": true + }, + "locationsServeHours": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_QuotaExceededResponse": { + "type": "object", + "properties": { + "contentType": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string", + "nullable": true + }, + "statusCode": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_RateLimitRule": { + "type": "object", + "properties": { + "endpoint": { + "type": "string", + "nullable": true + }, + "period": { + "type": "string", + "nullable": true + }, + "periodTimespan": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "limit": { + "type": "number", + "format": "double" + }, + "quotaExceededResponse": { + "$ref": "#/components/schemas/Core_App_QuotaExceededResponse" + }, + "monitorMode": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_App_RecommendedMinistryToggleViewModel": { + "type": "object", + "properties": { + "ministryId": { + "type": "integer", + "format": "int32" + }, + "isRecommended": { + "type": "boolean" + }, + "recommendationOrder": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ResponseCardEntryIntegrationViewModel": { + "type": "object", + "properties": { + "cardId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntrySectionIntegrationViewModel" + }, + "nullable": true + }, + "selectedEvent": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + } + }, + "additionalProperties": false + }, + "Core_App_ResponseCardEntrySearchResultsViewModel": { + "type": "object", + "properties": { + "currentWeekCount": { + "type": "integer", + "format": "int32" + }, + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ResponseCardEntrySectionIntegrationViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "subFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ResponseCardEntrySectionViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "subtitle": { + "type": "string", + "nullable": true + }, + "values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryValueViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ResponseCardEntryValueViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "responseCardEntryId": { + "type": "integer", + "format": "int32" + }, + "responseCardSectionId": { + "type": "integer", + "format": "int32" + }, + "responseCardFieldId": { + "type": "integer", + "format": "int32" + }, + "fieldLabel": { + "type": "string", + "nullable": true + }, + "fieldType": { + "type": "string", + "nullable": true + }, + "fieldSortOrder": { + "type": "integer", + "format": "int32" + }, + "fieldInstructions": { + "type": "string", + "nullable": true + }, + "fieldIsRequired": { + "type": "boolean" + }, + "fieldIsSensitive": { + "type": "boolean" + }, + "responseCardSubFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "subFieldLabel": { + "type": "string", + "nullable": true + }, + "subFieldSortOrder": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "subFieldIsRequired": { + "type": "boolean", + "nullable": true + }, + "textValue": { + "type": "string", + "nullable": true + }, + "numericValue": { + "type": "number", + "format": "double", + "nullable": true + }, + "dateTimeValue": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "values": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntryValueViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ResponseCardEntryViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "responseCardId": { + "type": "integer", + "format": "int32" + }, + "responseCardName": { + "type": "string", + "nullable": true + }, + "responseCardVersion": { + "type": "integer", + "format": "int32" + }, + "responseCardInactiveDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "localeId": { + "type": "integer", + "format": "int32" + }, + "localeLCID": { + "type": "string", + "nullable": true + }, + "localeName": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "occurrenceStartTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string", + "nullable": true + }, + "occurrenceTimeZone": { + "type": "string", + "nullable": true + }, + "occurrenceDateTime": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "dataEntryNotes": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "createdBy": { + "$ref": "#/components/schemas/Core_App_NamedEntityViewModel" + }, + "modifyDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "modifiedBy": { + "$ref": "#/components/schemas/Core_App_NamedEntityViewModel" + }, + "sections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ResponseCardEntrySectionViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ResponseCardFieldFollowUpRuleCountViewModel": { + "type": "object", + "properties": { + "fieldId": { + "type": "integer", + "format": "int32" + }, + "fieldPredecessorId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fieldLabel": { + "type": "string", + "nullable": true + }, + "fieldType": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "subFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "subFieldPredecessorId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "subFieldLabel": { + "type": "string", + "nullable": true + }, + "sectionTitle": { + "type": "string", + "nullable": true + }, + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "ruleCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_ResponseCardFollowUpRulesViewModel": { + "type": "object", + "properties": { + "template": { + "$ref": "#/components/schemas/Core_App_FollowUpRuleCountViewModel" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ResponseCardFieldFollowUpRuleCountViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ResponseCardViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "localeId": { + "maximum": 4, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "localeLCID": { + "type": "string", + "nullable": true + }, + "localeName": { + "type": "string", + "nullable": true + }, + "scheduleEntityTypeId": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "version": { + "type": "integer", + "format": "int32" + }, + "predecessorId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "active": { + "type": "boolean" + }, + "modifyDate": { + "type": "integer", + "format": "int64" + }, + "published": { + "type": "boolean" + }, + "inactiveDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ResponseCardSection" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_RpcRestContainer": { + "type": "object", + "properties": { + "body": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_RuntimeMethodHandle": { + "type": "object", + "properties": { + "value": { + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_ScheduleVenueMetricsViewModel": { + "type": "object", + "properties": { + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "metrics": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ScheduleVenueMetricViewModel" + }, + "nullable": true + }, + "description": "Map of venues ID to list of metrics", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_SearchResultsViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_SecurityRoleManagementViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "type": { + "$ref": "#/components/schemas/Core_Model_SecurityRoleType" + }, + "permissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PermissionNodeViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_SecurityRuleSet": { + "enum": [ + "None", + "Level1", + "Level2" + ], + "type": "string" + }, + "Core_App_SeriesSearchViewModel": { + "type": "object", + "properties": { + "query": { + "type": "string", + "nullable": true + }, + "isInUseFilter": { + "type": "boolean", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_SeriesViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 256, + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "heroImage": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "tagline": { + "type": "string", + "nullable": true + }, + "serviceTemplateNames": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_SermonSearchResultViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "campusServiceTemplate": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_CampusServiceTemplateViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ServiceOutlinePersonViewModel": { + "type": "object", + "properties": { + "serviceTemplateId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "content": { + "type": "string", + "nullable": true + }, + "version": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_ServiceSpeakerViewModel": { + "required": [ + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "firstName": { + "maxLength": 100, + "type": "string" + }, + "lastName": { + "maxLength": 100, + "type": "string" + } + }, + "additionalProperties": false + }, + "Core_App_ServiceStatisticsViewModel": { + "type": "object", + "properties": { + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "dayOfWeek": { + "type": "integer", + "format": "int32" + }, + "startTime": { + "type": "string", + "nullable": true + }, + "total": { + "type": "number", + "format": "double" + }, + "byAge": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AgeGroupStatisticsViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ServiceTemplateOutlineViewModel": { + "type": "object", + "properties": { + "serviceTemplateId": { + "type": "integer", + "format": "int32" + }, + "content": { + "type": "string", + "nullable": true + }, + "category": { + "$ref": "#/components/schemas/Core_Model_ServiceOutlineCategory" + }, + "version": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_ServiceTemplateViewModel": { + "required": [ + "description", + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "connectionQuestions": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "nextStepQuestions": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "announcements": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "services": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "nullable": true + }, + "servicesToCreate": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_EventOccurrenceViewModel" + }, + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "modifiedBy": { + "type": "string", + "nullable": true + }, + "image": { + "type": "string", + "nullable": true + }, + "speakerIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "speakers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ServiceSpeaker" + }, + "nullable": true + }, + "seriesId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "seriesName": { + "type": "string", + "nullable": true + }, + "seriesHeroImage": { + "type": "string", + "nullable": true + }, + "seriesDescription": { + "type": "string", + "nullable": true + }, + "seriesTagline": { + "type": "string", + "nullable": true + }, + "seriesPartNumber": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "outline": { + "$ref": "#/components/schemas/Core_Model_ServiceTemplateOutline" + }, + "songIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "mediaId": { + "type": "string", + "nullable": true + }, + "mediaUrl": { + "type": "string", + "nullable": true + }, + "isExternalMedia": { + "type": "boolean" + }, + "serviceQuestions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + }, + "nullable": true + }, + "sortedServiceQuestions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Question" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_ServingOpportunityVolunteerBulkUpdateViewModel": { + "type": "object", + "properties": { + "scheduleType": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + } + }, + "additionalProperties": false + }, + "Core_App_SharePageCompareResultsViewModel": { + "type": "object", + "properties": { + "filterCategoryIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "filterChurchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "filterDateTimeUtcRange": { + "$ref": "#/components/schemas/Core_App_NullableDateTimeRange" + }, + "filterEventIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "filterMinistryIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "filterTagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "sharePageType": { + "$ref": "#/components/schemas/Core_Model_SharePageType" + } + }, + "additionalProperties": false + }, + "Core_App_SharePageViewModel": { + "required": [ + "description", + "title" + ], + "type": "object", + "properties": { + "createDate": { + "type": "string", + "format": "date-time", + "nullable": true, + "readOnly": true + }, + "description": { + "type": "string" + }, + "filterCategoryIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "filterChurchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "filterDateTimeUtcRange": { + "$ref": "#/components/schemas/Core_App_NullableDateTimeRange" + }, + "filterEventIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "filterMinistryIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "filterTagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "filterTimezone": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "imageUrl": { + "maxLength": 500, + "type": "string", + "nullable": true + }, + "mobileImageUrl": { + "maxLength": 500, + "type": "string", + "nullable": true + }, + "publishedDateTimeUtcRange": { + "$ref": "#/components/schemas/Core_App_NullableDateTimeRange" + }, + "publishedTimezone": { + "type": "string", + "nullable": true + }, + "sharePageType": { + "$ref": "#/components/schemas/Core_Model_SharePageType" + }, + "thumbnailImageUrl": { + "maxLength": 500, + "type": "string", + "nullable": true + }, + "title": { + "maxLength": 100, + "type": "string" + }, + "url": { + "type": "string", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_App_SmallGroupParticipantViewModel": { + "type": "object", + "properties": { + "participantId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personUniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "homePhone": { + "type": "string", + "nullable": true + }, + "workPhone": { + "type": "string", + "nullable": true + }, + "mobilePhone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false, + "description": "View Model for M:Saddleback.Cm.Web.Controllers.People.PersonGroupsController.AcceptSmallGroupInvite(Saddleback.Cm.Web.ViewModels.People.SmallGroupParticipantViewModel)" + }, + "Core_App_SmallGroupViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "hostPersonUniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "smallGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "name": { + "type": "string" + }, + "address": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "state": { + "type": "string", + "nullable": true + }, + "zipCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "campusName": { + "type": "string", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "visibility": { + "type": "string", + "nullable": true + }, + "meetingDay": { + "type": "string", + "description": "Should be a valid day of week name (in English) e.g. Sunday, Monday, etc.", + "nullable": true + }, + "meetingTime": { + "type": "string", + "description": "Should be a valid time of day string (e.g. 2:30 PM etc.)", + "nullable": true + }, + "groupType": { + "type": "string", + "nullable": true + }, + "parsedMeetingTime": { + "type": "string", + "format": "date-span", + "nullable": true, + "readOnly": true + }, + "parsedMeetingDay": { + "$ref": "#/components/schemas/Core_App_IsoDayOfWeek" + } + }, + "additionalProperties": false + }, + "Core_App_SmsEligibilityViewModel": { + "type": "object", + "properties": { + "hasConsented": { + "type": "boolean" + }, + "hasMobilePhones": { + "type": "boolean" + }, + "hasOptedOut": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_App_SongViewModel": { + "required": [ + "link", + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "artist": { + "type": "string", + "nullable": true + }, + "lyrics": { + "type": "string", + "nullable": true + }, + "link": { + "type": "string", + "format": "uri" + } + }, + "additionalProperties": false + }, + "Core_App_SortDirection": { + "enum": [ + "Ascending", + "Descending" + ], + "type": "string" + }, + "Core_App_Sorting": { + "type": "object", + "properties": { + "sortColumn": { + "type": "string", + "nullable": true + }, + "sortDirection": { + "$ref": "#/components/schemas/Core_App_SortDirection" + } + }, + "additionalProperties": false + }, + "Core_App_SpeakerViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "organization": { + "type": "string", + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Core_PersonViewModel" + } + }, + "additionalProperties": false + }, + "Core_App_SubscriberSegmentUpdateViewModel": { + "type": "object", + "properties": { + "email": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "segmentIdsToAdd": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "segmentIdsToDelete": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_SubscriberSegmentViewModel": { + "type": "object", + "properties": { + "email": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "segmentIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_TeamDetailedViewModel": { + "required": [ + "churchEntityId", + "name" + ], + "type": "object", + "properties": { + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "memberCount": { + "type": "integer", + "format": "int32" + }, + "dateAdded": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_TeamTaskReassignmentViewModel": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "nullable": true + }, + "taskIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "teamId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_UploadImageResultViewModel": { + "type": "object", + "properties": { + "contentType": { + "type": "string", + "nullable": true + }, + "error": { + "$ref": "#/components/schemas/Core_App_ErrorViewModel" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "isUploaded": { + "type": "boolean" + }, + "url": { + "type": "string", + "nullable": true + }, + "width": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_App_UserListViewModel": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_PersonSecurityViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_WebMinistrySignUpViewModel": { + "required": [ + "churchEntityId", + "ministryId" + ], + "type": "object", + "properties": { + "ministryId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "sourceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "pattern": "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:|\\\\)+)\\])", + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_WebMinistryViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "purposeStatement": { + "type": "string", + "nullable": true + }, + "categoryId": { + "type": "integer", + "format": "int32" + }, + "categoryName": { + "type": "string", + "nullable": true + }, + "imageUrl": { + "type": "string", + "nullable": true + }, + "companionAppImageUrl": { + "type": "string", + "nullable": true + }, + "thumbnailUrl": { + "type": "string", + "nullable": true + }, + "customHtml": { + "type": "string", + "nullable": true + }, + "alternateWebsite": { + "$ref": "#/components/schemas/Core_MinistryAlternateWebsiteViewModel" + }, + "relatedMinistries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLiteViewModel" + }, + "nullable": true + }, + "servingOpportunities": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityViewModel" + }, + "nullable": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_TagViewModel" + }, + "nullable": true + }, + "locations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MinistryLocation" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_WebServingOpportunitySignUpViewModel": { + "required": [ + "servingOpportunityId" + ], + "type": "object", + "properties": { + "occurrenceDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "sourceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "answers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + }, + "nullable": true + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "pattern": "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:|\\\\)+)\\])", + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_App_WeekendFlashReportQueryDatesViewModel": { + "type": "object", + "properties": { + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time" + }, + "rangeType": { + "$ref": "#/components/schemas/Core_Model_WeekendFlashReportRangeType" + }, + "serviceCategory": { + "type": "string", + "nullable": true + }, + "timeZone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ApplicationSettingsViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "churchName": { + "type": "string", + "nullable": true + }, + "enforceMembershipStatusRules": { + "type": "boolean" + }, + "logoImage": { + "type": "string", + "nullable": true + }, + "logoImageUrl": { + "type": "string", + "nullable": true + }, + "defaultSendInterestedToLeader": { + "type": "boolean" + }, + "defaultSendInterestedToColeader": { + "type": "boolean" + }, + "defaultSendInterestedToStaffConnector": { + "type": "boolean" + }, + "tenantUrl": { + "type": "string", + "nullable": true + }, + "weekdayRuleDayOfWeek": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "weekdayRuleStartTime": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_BulkDeleteFormEntryRequest": { + "type": "object", + "properties": { + "formEntryIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_BulkUpdateEventOccurrenceAssociationRequestViewModel": { + "required": [ + "eventId", + "formEntryIds", + "occurrence" + ], + "type": "object", + "properties": { + "formEntryIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "occurrence": { + "$ref": "#/components/schemas/Core_PublicOccurrenceViewModelWithScheduleId_Core_V2" + } + }, + "additionalProperties": false + }, + "Core_ChurchEntityViewModel": { + "required": [ + "abbreviation" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "parentEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "churchEntityRegionId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "dateStarted": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "inactiveDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "extension": { + "maxLength": 4, + "minLength": 0, + "pattern": "\\d*", + "type": "string", + "nullable": true + }, + "displayPhoneNumber": { + "type": "string", + "nullable": true + }, + "officeCountryCode": { + "type": "string", + "nullable": true + }, + "officePhone": { + "type": "string", + "nullable": true + }, + "officeExtension": { + "maxLength": 4, + "minLength": 0, + "pattern": "\\d*", + "type": "string", + "nullable": true + }, + "displayOfficePhoneNumber": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "websiteUrl": { + "type": "string", + "nullable": true + }, + "latitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "type": "number", + "format": "double", + "nullable": true + }, + "officeAddress1": { + "type": "string", + "nullable": true + }, + "officeAddress2": { + "type": "string", + "nullable": true + }, + "officeCity": { + "type": "string", + "nullable": true + }, + "officeRegion": { + "type": "string", + "nullable": true + }, + "officePostalCode": { + "type": "string", + "nullable": true + }, + "officeCountry": { + "type": "string", + "nullable": true + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "abbreviation": { + "maxLength": 3, + "minLength": 0, + "type": "string" + } + }, + "additionalProperties": false + }, + "Core_CommunicationTemplateAttachmentViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "emailTemplateId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "nullable": true + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_CommunicationTemplateDetailViewModel": { + "required": [ + "churchEntityId", + "name" + ], + "type": "object", + "properties": { + "emailSubject": { + "$ref": "#/components/schemas/Core_TemplateViewModel" + }, + "emailBodyContent": { + "$ref": "#/components/schemas/Core_TemplateViewModel" + }, + "emailBodyLayout": { + "$ref": "#/components/schemas/Core_TemplateViewModel" + }, + "sms": { + "$ref": "#/components/schemas/Core_TemplateViewModel" + }, + "emailAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CommunicationTemplateAttachmentViewModel" + }, + "nullable": true + }, + "tempEmailAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CommunicationTemplateTempAttachmentDto" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "emailBody": { + "type": "string", + "nullable": true + }, + "emailSubjectContent": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + }, + "smsBody": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "isEmail": { + "type": "boolean" + }, + "isSMS": { + "type": "boolean" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "thumbnailImageUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormContributorsViewModel": { + "type": "object", + "properties": { + "personContributors": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "teamContributors": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormEntryDateViewModel": { + "type": "object", + "properties": { + "entryDateTime": { + "type": "string", + "format": "date-time" + }, + "entryTimeZone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormEntryLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "connectionFormTemplateId": { + "type": "integer", + "format": "int32" + }, + "connectionFormTemplateChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "eventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "entryDateTime": { + "type": "string", + "format": "date-time" + }, + "entryTimeZone": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "$ref": "#/components/schemas/Core_NamedEntityViewModel" + }, + "modifiedBy": { + "$ref": "#/components/schemas/Core_NamedEntityViewModel" + }, + "personalInfo": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryPersonalInfoViewModel" + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormEntryPersonalInfoViewModel": { + "type": "object", + "properties": { + "connectionFormEntryId": { + "type": "integer", + "format": "int32" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityKnown": { + "type": "boolean" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "homePhone": { + "type": "string", + "nullable": true + }, + "cellPhone": { + "type": "string", + "nullable": true + }, + "workPhone": { + "type": "string", + "nullable": true + }, + "formattedHomePhone": { + "$ref": "#/components/schemas/Core_PhoneNumberViewModel" + }, + "formattedCellPhone": { + "$ref": "#/components/schemas/Core_PhoneNumberViewModel" + }, + "formattedWorkPhone": { + "$ref": "#/components/schemas/Core_PhoneNumberViewModel" + }, + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormEntryPublicCreateRequestViewModel": { + "required": [ + "connectionFormTemplateId" + ], + "type": "object", + "properties": { + "connectionFormTemplateId": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "personalInfo": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryPublicPersonalInformationCreateRequestViewModel" + }, + "eventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrence": { + "$ref": "#/components/schemas/Core_PublicOccurrenceRequestViewModel_Core" + }, + "entryTimeZone": { + "type": "string", + "nullable": true + }, + "answers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerLiteViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormEntryPublicPersonalInformationCreateRequestViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "maxLength": 100, + "type": "string", + "nullable": true + }, + "lastName": { + "maxLength": 100, + "type": "string", + "nullable": true + }, + "email": { + "maxLength": 256, + "pattern": "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:|\\\\)+)\\])", + "type": "string", + "nullable": true + }, + "homePhone": { + "maxLength": 33, + "type": "string", + "format": "tel", + "nullable": true + }, + "cellPhone": { + "maxLength": 33, + "type": "string", + "format": "tel", + "nullable": true + }, + "workPhone": { + "maxLength": 33, + "type": "string", + "format": "tel", + "nullable": true + }, + "gender": { + "$ref": "#/components/schemas/Core_Model_Gender" + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityKnown": { + "type": "boolean" + }, + "address1": { + "maxLength": 100, + "type": "string", + "nullable": true + }, + "address2": { + "maxLength": 100, + "type": "string", + "nullable": true + }, + "city": { + "maxLength": 50, + "type": "string", + "nullable": true + }, + "region": { + "maxLength": 50, + "type": "string", + "nullable": true + }, + "postalCode": { + "maxLength": 16, + "type": "string", + "nullable": true + }, + "country": { + "maxLength": 30, + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormEntryRequestViewModel": { + "required": [ + "connectionFormTemplateId" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "connectionFormTemplateId": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "eventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrence": { + "$ref": "#/components/schemas/Core_PublicOccurrenceViewModelWithScheduleId_Core_V2" + }, + "entryTimeZone": { + "type": "string", + "nullable": true + }, + "personalInfo": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryPersonalInfoViewModel" + }, + "answers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormEntryViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "connectionFormTemplateId": { + "type": "integer", + "format": "int32" + }, + "formTemplateName": { + "type": "string", + "nullable": true + }, + "formTemplateType": { + "$ref": "#/components/schemas/Core_Model_ConnectionFormType" + }, + "formTemplateChurchEntityName": { + "type": "string", + "nullable": true + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "eventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "eventName": { + "type": "string", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "entryDateTime": { + "type": "string", + "format": "date-time" + }, + "entryTimeZone": { + "type": "string", + "nullable": true + }, + "eventDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "eventTimeZone": { + "type": "string", + "nullable": true + }, + "coreMilestones": { + "$ref": "#/components/schemas/Core_CoreMilestonesViewModel" + }, + "answers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + }, + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Core_PersonDetailsLiteViewModel" + }, + "occurrence": { + "$ref": "#/components/schemas/Core_PublicOccurrenceViewModelWithScheduleId_Core_V2" + }, + "creatorName": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "personalInfo": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryPersonalInfoViewModel" + }, + "form": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormFieldFollowUpRuleCountViewModel": { + "type": "object", + "properties": { + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionAnswerChoiceViewModel" + }, + "nullable": true + }, + "questionId": { + "type": "integer", + "format": "int32" + }, + "questionType": { + "$ref": "#/components/schemas/Core_Model_QuestionType" + }, + "ruleCount": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormOwnerViewModel": { + "type": "object", + "properties": { + "ownerPersonId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormTemplateContainerViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "connectionFormTemplateSectionId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateFieldViewModel" + }, + "nullable": true + }, + "isDeleted": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormTemplateFieldViewModel": { + "type": "object", + "properties": { + "connectionFormTemplateSectionId": { + "type": "integer", + "format": "int32" + }, + "connectionFormTemplateContainerId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "questionId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isRequired": { + "type": "boolean" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "question": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + }, + "isDeleted": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormTemplateFollowUpRulesCount": { + "type": "object", + "properties": { + "template": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateLiteViewModel" + }, + "templateRuleCount": { + "type": "integer", + "format": "int32" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormFieldFollowUpRuleCountViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormTemplateLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Core_Model_ConnectionFormType" + }, + "isActive": { + "type": "boolean" + }, + "published": { + "type": "boolean" + }, + "modifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "version": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormTemplateSectionViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "connectionFormTemplateId": { + "type": "integer", + "format": "int32" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "containers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateContainerViewModel" + }, + "nullable": true + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateFieldViewModel" + }, + "nullable": true + }, + "isDeleted": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormTemplateViewModel": { + "required": [ + "name", + "publicTitle" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 100, + "type": "string" + }, + "publicTitle": { + "maxLength": 256, + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Core_Model_ConnectionFormType" + }, + "isActive": { + "type": "boolean" + }, + "ownerPersonId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "published": { + "type": "boolean" + }, + "litePersonalPanel": { + "type": "boolean" + }, + "personalPanelRequiredFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonalInformationPanelField" + }, + "nullable": true + }, + "sections": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateSectionViewModel" + }, + "nullable": true + }, + "personContributors": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "personContributorDetails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonSecuritySortaLiteViewModel" + }, + "nullable": true + }, + "teamContributors": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "modifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ownerPerson": { + "$ref": "#/components/schemas/Core_PersonSecuritySortaLiteViewModel" + }, + "entryCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "lastEntryDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "version": { + "type": "integer", + "format": "int32" + }, + "tenantFormUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionFormTemplatesViewModel": { + "type": "object", + "properties": { + "forms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormTemplateViewModel" + }, + "nullable": true + }, + "statistics": { + "$ref": "#/components/schemas/Core_Dto_ConnectionFormStatistics" + } + }, + "additionalProperties": false + }, + "Core_ConnectionQuestionAnswerDetailViewModel": { + "required": [ + "answerSourceId", + "questionId" + ], + "type": "object", + "properties": { + "person": { + "$ref": "#/components/schemas/Core_PersonBasicViewModel" + }, + "occurrence": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core_V2" + }, + "connectionFormEntry": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryLiteViewModel" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "questionId": { + "type": "integer", + "format": "int32" + }, + "answerSourceId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "answerCustomFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "questionCustomFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "booleanValue": { + "type": "boolean", + "nullable": true + }, + "dateTimeValue": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "numericValue": { + "type": "number", + "format": "double", + "nullable": true + }, + "textValue": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "$ref": "#/components/schemas/Core_NamedEntityViewModel" + }, + "modifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "modifiedBy": { + "$ref": "#/components/schemas/Core_NamedEntityViewModel" + } + }, + "additionalProperties": false + }, + "Core_ConnectionQuestionAnswerLiteViewModel": { + "required": [ + "questionId" + ], + "type": "object", + "properties": { + "questionId": { + "type": "integer", + "format": "int32" + }, + "booleanValue": { + "type": "boolean", + "nullable": true + }, + "dateTimeValue": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "numericValue": { + "type": "number", + "format": "double", + "nullable": true + }, + "selectedAnswerChoiceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "textValue": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionQuestionAnswerViewModel": { + "required": [ + "answerSourceId", + "questionId" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "questionId": { + "type": "integer", + "format": "int32" + }, + "answerSourceId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "answerCustomFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "questionCustomFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "booleanValue": { + "type": "boolean", + "nullable": true + }, + "dateTimeValue": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "numericValue": { + "type": "number", + "format": "double", + "nullable": true + }, + "textValue": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "$ref": "#/components/schemas/Core_NamedEntityViewModel" + }, + "modifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "modifiedBy": { + "$ref": "#/components/schemas/Core_NamedEntityViewModel" + } + }, + "additionalProperties": false + }, + "Core_ConnectionQuestionAnswersViewModel": { + "required": [ + "answers", + "isAnonymous" + ], + "type": "object", + "properties": { + "answers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionAnswerViewModel" + } + }, + "isAnonymous": { + "type": "boolean" + }, + "person": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionQuestionDetailedViewModel": { + "required": [ + "name", + "questionTypeId", + "title" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string" + }, + "placeholder": { + "maxLength": 128, + "type": "string", + "nullable": true + }, + "questionTypeId": { + "type": "integer", + "format": "int32" + }, + "questionTypeName": { + "type": "string", + "nullable": true + }, + "questionClassification": { + "$ref": "#/components/schemas/Core_Model_QuestionClassification" + }, + "milestoneId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "milestoneName": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "modifiedBy": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "published": { + "type": "boolean" + }, + "active": { + "type": "boolean" + }, + "questionSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionSourceViewModel" + }, + "nullable": true + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionAnswerChoiceViewModel" + }, + "nullable": true + }, + "answerCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "defaultAutoReplyEmailContentTemplate": { + "$ref": "#/components/schemas/Core_TemplateViewModel" + } + }, + "additionalProperties": false + }, + "Core_ConnectionQuestionViewModel": { + "required": [ + "name", + "questionTypeId", + "title" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string" + }, + "placeholder": { + "maxLength": 128, + "type": "string", + "nullable": true + }, + "questionTypeId": { + "type": "integer", + "format": "int32" + }, + "questionTypeName": { + "type": "string", + "nullable": true + }, + "questionClassification": { + "$ref": "#/components/schemas/Core_Model_QuestionClassification" + }, + "milestoneId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "milestoneName": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "modifiedBy": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "published": { + "type": "boolean" + }, + "active": { + "type": "boolean" + }, + "questionSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionSourceViewModel" + }, + "nullable": true + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionAnswerChoiceViewModel" + }, + "nullable": true + }, + "answerCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ConnectionQuestionsSearchResultsViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionQuestionViewModel" + }, + "nullable": true + }, + "countsByMilestone": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_ConnectionQuestionMilestoneCountDto" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_CoreMilestonesViewModel": { + "type": "object", + "properties": { + "uniquePersonID": { + "type": "integer", + "format": "int32" + }, + "hasAcceptedChrist": { + "type": "boolean" + }, + "isBaptised": { + "type": "boolean" + }, + "hasAttendedClass101": { + "type": "boolean" + }, + "hasAttendedClass201": { + "type": "boolean" + }, + "hasAttendedClass301": { + "type": "boolean" + }, + "hasAttendedClass401": { + "type": "boolean" + }, + "hasSignedMembershipAgreement": { + "type": "boolean" + }, + "hasSignedMaturityCovenant": { + "type": "boolean" + }, + "hasSignedMinistryCovenant": { + "type": "boolean" + }, + "hasSignedMissionCovenant": { + "type": "boolean" + }, + "acceptedChristDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "baptismDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "attendedClass101Date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "attendedClass201Date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "attendedClass301Date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "attendedClass401Date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMembershipAgreementDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMaturityCovenantDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMinistryCovenantDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMissionCovenantDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstContactDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "congregationDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isInMinistry": { + "type": "boolean" + }, + "firstMinistryJoinDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isInSmallGroup": { + "type": "boolean" + }, + "firstSmallGroupJoinDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isActiveInMissions": { + "type": "boolean" + }, + "activeInMissionsDate": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_CustomFieldViewModel": { + "required": [ + "name", + "questionTypeId", + "title" + ], + "type": "object", + "properties": { + "isContainer": { + "type": "boolean" + }, + "customFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_CustomFieldViewModel" + }, + "nullable": true + }, + "questionCustomFieldId": { + "type": "integer", + "format": "int32" + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "isRequired": { + "type": "boolean" + }, + "isDeleted": { + "type": "boolean" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string" + }, + "placeholder": { + "maxLength": 128, + "type": "string", + "nullable": true + }, + "questionTypeId": { + "type": "integer", + "format": "int32" + }, + "questionTypeName": { + "type": "string", + "nullable": true + }, + "questionClassification": { + "$ref": "#/components/schemas/Core_Model_QuestionClassification" + }, + "milestoneId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "milestoneName": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "modifiedBy": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "published": { + "type": "boolean" + }, + "active": { + "type": "boolean" + }, + "questionSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionSourceViewModel" + }, + "nullable": true + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_QuestionAnswerChoiceViewModel" + }, + "nullable": true + }, + "answerCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_DataSubscriptionPayload_IndividualProfileSearchDocument": { + "required": [ + "data" + ], + "type": "object", + "properties": { + "key": { + "type": "string", + "nullable": true + }, + "application": { + "type": "string", + "nullable": true + }, + "user": { + "type": "string", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/Core_Model_IndividualProfileSearchDocument" + } + }, + "additionalProperties": false + }, + "Core_DataSubscriptionPayload_PaymentSearchDocument": { + "required": [ + "data" + ], + "type": "object", + "properties": { + "key": { + "type": "string", + "nullable": true + }, + "application": { + "type": "string", + "nullable": true + }, + "user": { + "type": "string", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/Core_Model_PaymentSearchDocument" + } + }, + "additionalProperties": false + }, + "Core_Dto_AddMinistryMemberResult": { + "type": "object", + "properties": { + "addedToMinistry": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Dto_AgeCategory": { + "enum": [ + "None", + "Adult", + "Student", + "Child", + "AdultOrStudent", + "ChildOrStudent" + ], + "type": "string" + }, + "Core_Dto_ConnectionFormStatistics": { + "type": "object", + "properties": { + "activeCount": { + "type": "integer", + "format": "int32" + }, + "inactiveCount": { + "type": "integer", + "format": "int32" + }, + "regularCount": { + "type": "integer", + "format": "int32" + }, + "worshipServiceCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Dto_ConnectionQuestionMilestoneCountDto": { + "type": "object", + "properties": { + "milestoneId": { + "type": "integer", + "format": "int32" + }, + "milestoneName": { + "type": "string", + "nullable": true + }, + "questionCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Dto_MinistryWithServingOpportunityStatistics": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "categoryId": { + "type": "integer", + "format": "int32" + }, + "categoryName": { + "type": "string", + "nullable": true + }, + "servingOpportunitiesCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Dto_NotesCount": { + "type": "object", + "properties": { + "entityId": { + "type": "integer", + "format": "int32" + }, + "count": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Dto_NotificationPerson": { + "type": "object", + "properties": { + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "prefix": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "primaryEmail": { + "type": "string", + "nullable": true + }, + "cellPhone": { + "type": "string", + "nullable": true + }, + "isDeceased": { + "type": "boolean" + }, + "doNotContact": { + "type": "boolean", + "nullable": true + }, + "doNotEmail": { + "type": "boolean", + "nullable": true + }, + "doNotText": { + "type": "boolean", + "nullable": true + }, + "alternatePersonId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "alternateEmail": { + "type": "string", + "nullable": true + }, + "alternateCellPhone": { + "type": "string", + "nullable": true + }, + "gradeLevel": { + "$ref": "#/components/schemas/Core_Model_GradeLevel" + } + }, + "additionalProperties": false + }, + "Core_Dto_PersonAttendance": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "historicAttendeeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Dto_PersonCheckInType": { + "enum": [ + "None", + "Attendee", + "Volunteer" + ], + "type": "string" + }, + "Core_Dto_PersonProfilePictureKeyValuePair": { + "type": "object", + "properties": { + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "personProfilePicture": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Dto_QuestionAutoReplyEmailContentLiteDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "defaultAutoReplyEmailContent": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Dto_ServingOpportunityWithInterestedStatus": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "isPublic": { + "type": "boolean" + }, + "eventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "hasInterestedVolunteers": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_EligibilityInfoViewModel": { + "type": "object", + "properties": { + "isEligible": { + "type": "boolean" + }, + "notEligible": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "missingMilestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + }, + "nullable": true + }, + "minAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_EmailViewModel": { + "required": [ + "body", + "replyEmail", + "senderName", + "subject" + ], + "type": "object", + "properties": { + "recipientIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "senderName": { + "type": "string" + }, + "fromEmail": { + "type": "string", + "nullable": true + }, + "replyEmail": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "body": { + "type": "string" + }, + "bodyTemplateName": { + "type": "string", + "nullable": true + }, + "bodyMergeVars": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "attachments": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_FactLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "venueId": { + "type": "integer", + "format": "int32" + }, + "metricAgeGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "metricAgeGroupName": { + "type": "string", + "nullable": true + }, + "metricCategoryId": { + "type": "integer", + "format": "int32" + }, + "metricCategoryName": { + "type": "string", + "nullable": true + }, + "metricName": { + "type": "string", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "occurrenceStartTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string", + "nullable": true + }, + "occurrenceTimeZone": { + "type": "string", + "nullable": true + }, + "value": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_FollowUpTaskActionResultViewModel": { + "type": "object", + "properties": { + "taskId": { + "type": "integer", + "format": "int32" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_FollowUpTaskActionStatus" + } + }, + "additionalProperties": false + }, + "Core_FollowUpTaskBasicViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "taskName": { + "type": "string", + "nullable": true + }, + "taskTemplateId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "received": { + "type": "string", + "format": "date-time" + }, + "due": { + "type": "string", + "format": "date-time" + }, + "closed": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_FollowUpTaskStatus" + }, + "highPriority": { + "type": "boolean" + }, + "assigneeId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "assignee": { + "type": "string", + "nullable": true + }, + "teamId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "team": { + "type": "string", + "nullable": true + }, + "teamChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "teamChurchEntityName": { + "type": "string", + "nullable": true + }, + "escalatesToId": { + "type": "integer", + "format": "int32" + }, + "escalatesTo": { + "type": "string", + "nullable": true + }, + "subjectMappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskSubjectMappingViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_FollowUpTaskBulkActionResultViewModel": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskActionResultViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_FollowUpTaskCreationRequestViewModel": { + "required": [ + "subjectPerson", + "taskTemplateId" + ], + "type": "object", + "properties": { + "taskTemplateId": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "subjectPerson": { + "$ref": "#/components/schemas/Core_PersonBasicViewModel" + }, + "additionalSubjects": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskSubjectMappingViewModel" + }, + "nullable": true + }, + "dependencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_FollowUpTaskSubjectMappingViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_FollowUpTaskLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "received": { + "type": "string", + "format": "date-time" + }, + "due": { + "type": "string", + "format": "date-time" + }, + "closed": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_FollowUpTaskStatus" + }, + "highPriority": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_FollowUpTaskSubjectMappingViewModel": { + "type": "object", + "properties": { + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_FollowUpTaskTemplateViewModel": { + "required": [ + "defaultSupervisor", + "defaultTimeLimit", + "taskName" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "taskName": { + "type": "string" + }, + "taskInstructions": { + "type": "string", + "nullable": true + }, + "defaultAssigneePerson": { + "$ref": "#/components/schemas/Core_PersonSecurityUltraLiteViewModel" + }, + "defaultAssigneeTeam": { + "$ref": "#/components/schemas/Core_TeamBasicViewModel" + }, + "defaultSupervisor": { + "$ref": "#/components/schemas/Core_PersonSecurityUltraLiteViewModel" + }, + "defaultTimeLimit": { + "type": "string", + "format": "date-span" + } + }, + "additionalProperties": false + }, + "Core_Func_HttpContext_ClientRequestIdentity_RateLimitCounter_RateLimitRule_Task": { + "type": "object", + "properties": { + "target": { + "nullable": true, + "readOnly": true + }, + "method": { + "$ref": "#/components/schemas/Core_App_MethodInfo" + } + }, + "additionalProperties": false + }, + "Core_MilestoneInboundViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 50, + "type": "string" + }, + "description": { + "maxLength": 100, + "type": "string", + "nullable": true + }, + "category": { + "$ref": "#/components/schemas/Core_Model_MilestoneCategory" + }, + "uiOrder": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + }, + "allowablePersonRecordTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonRecordType" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MilestoneUsageStatsViewModel": { + "type": "object", + "properties": { + "numberOfPeopleWithMilestone": { + "type": "integer", + "format": "int32" + }, + "numberOfMinistryLocationsRequiringMilestone": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_MilestoneViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "category": { + "$ref": "#/components/schemas/Core_Model_MilestoneCategory" + }, + "uiOrder": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "$ref": "#/components/schemas/Core_PersonSecurityUltraLiteViewModel" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "modifiedBy": { + "$ref": "#/components/schemas/Core_PersonSecurityUltraLiteViewModel" + }, + "inactivateDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "inactivatedBy": { + "$ref": "#/components/schemas/Core_PersonSecurityUltraLiteViewModel" + }, + "allowablePersonRecordTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonRecordType" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryAlternateWebsiteViewModel": { + "type": "object", + "properties": { + "url": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "image": { + "type": "string", + "nullable": true + }, + "imageUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryCategoryViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryCentralWebSettingsLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "customHtml": { + "type": "string", + "nullable": true + }, + "mastheadImage": { + "type": "string", + "nullable": true + }, + "mastheadImageUrl": { + "type": "string", + "nullable": true + }, + "appHeaderImage": { + "type": "string", + "nullable": true + }, + "appHeaderImageUrl": { + "type": "string", + "nullable": true + }, + "thumnailImage": { + "type": "string", + "nullable": true + }, + "thumnailImageUrl": { + "type": "string", + "nullable": true + }, + "adSliderId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "blogId": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryCentralWebSettingsViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "purposeStatement": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "customHtml": { + "type": "string", + "nullable": true + }, + "mastheadImage": { + "type": "string", + "nullable": true + }, + "mastheadImageUrl": { + "type": "string", + "nullable": true + }, + "appHeaderImage": { + "type": "string", + "nullable": true + }, + "appHeaderImageUrl": { + "type": "string", + "nullable": true + }, + "thumnailImage": { + "type": "string", + "nullable": true + }, + "thumnailImageUrl": { + "type": "string", + "nullable": true + }, + "relatedMinistries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLiteViewModel" + }, + "nullable": true + }, + "alternateWebsite": { + "$ref": "#/components/schemas/Core_MinistryAlternateWebsiteViewModel" + }, + "adSliderId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "blogId": { + "type": "string", + "format": "uuid", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryCommunicationTemplateViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "communicationTemplateId": { + "type": "integer", + "format": "int32" + }, + "ministryCommunicationType": { + "$ref": "#/components/schemas/Core_Model_MinistryCommunicationType" + }, + "senderDisplayName": { + "type": "string", + "nullable": true + }, + "senderEmailAddress": { + "type": "string", + "nullable": true + }, + "communicationTemplate": { + "$ref": "#/components/schemas/Core_CommunicationTemplateDetailViewModel" + } + }, + "additionalProperties": false + }, + "Core_MinistryGenderRequirement": { + "enum": [ + "MalesAndFemales", + "MalesOnly", + "FemalesOnly" + ], + "type": "string" + }, + "Core_MinistryGroupLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "memberCount": { + "type": "integer", + "format": "int32" + }, + "dateAdded": { + "type": "integer", + "format": "int64", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryLeaderViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "phoneType": { + "$ref": "#/components/schemas/Core_Model_PhoneType" + }, + "publicEmail": { + "type": "string", + "nullable": true + }, + "publicPhone": { + "type": "string", + "nullable": true + }, + "publicPhoneType": { + "$ref": "#/components/schemas/Core_Model_PhoneType" + } + }, + "additionalProperties": false + }, + "Core_MinistryLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "thumbnailUrl": { + "type": "string", + "nullable": true + }, + "mastheadUrl": { + "type": "string", + "nullable": true + }, + "isAcceptingNewMembers": { + "type": "boolean" + }, + "isRecommended": { + "type": "boolean" + }, + "recommendationOrder": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ministryCategory": { + "$ref": "#/components/schemas/Core_MinistryCategoryViewModel" + }, + "mastheadImage": { + "type": "string", + "nullable": true + }, + "thumbnailImage": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryLocationGroupMemberViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "groupDateAdded": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isMinistryMember": { + "type": "boolean" + }, + "person": { + "$ref": "#/components/schemas/Core_PersonViewModel" + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryLocationIdsViewModel": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MinistryLocationIds" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryLocationLiteViewModel": { + "type": "object", + "properties": { + "ministryId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "purposeStatement": { + "type": "string", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "isAcceptingNewMembers": { + "type": "boolean" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + }, + "inactiveDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + }, + "thumbnailImage": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryMemberBulkUpdateViewModel": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatus" + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryMemberViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "ministryName": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "dateAdded": { + "type": "integer", + "format": "int64" + }, + "sourceId": { + "type": "integer", + "format": "int32" + }, + "source": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatus" + }, + "statusName": { + "type": "string", + "nullable": true + }, + "statusChanged": { + "type": "integer", + "format": "int64" + }, + "daysInStatus": { + "type": "integer", + "format": "int32" + }, + "isMember": { + "type": "boolean" + }, + "becameMember": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "daysAsMember": { + "type": "integer", + "format": "int32" + }, + "groupDateAdded": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Core_PersonViewModel" + }, + "contactPreferences": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + }, + "smsEligibility": { + "$ref": "#/components/schemas/Core_App_SmsEligibilityViewModel" + }, + "leadershipPositions": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + }, + "eligibility": { + "$ref": "#/components/schemas/Core_EligibilityInfoViewModel" + }, + "hasPublicContacts": { + "type": "boolean", + "nullable": true + }, + "publicEmail": { + "type": "string", + "nullable": true + }, + "publicPhone": { + "type": "string", + "nullable": true + }, + "isServingOpportunityVolunteer": { + "type": "boolean", + "nullable": true + }, + "lastServeDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "ministryMemberServeHours": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_MinistrySettingsViewModel": { + "type": "object", + "properties": { + "minAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gender": { + "$ref": "#/components/schemas/Core_MinistryGenderRequirement" + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MilestoneViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MinistryViewModel": { + "required": [ + "abbreviation", + "description", + "name", + "shortDescription" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "url": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "nullable": true + }, + "shortDescription": { + "maxLength": 140, + "minLength": 0, + "type": "string" + }, + "description": { + "type": "string" + }, + "purposeStatement": { + "type": "string", + "nullable": true + }, + "categoryId": { + "type": "integer", + "format": "int32" + }, + "categoryName": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "sendInterestedToLeader": { + "type": "boolean" + }, + "sendInterestedToColeader": { + "type": "boolean" + }, + "sendInterestedToStaffConnector": { + "type": "boolean" + }, + "tagList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Tag" + }, + "nullable": true + }, + "locations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLocationLiteViewModel" + }, + "nullable": true + }, + "membershipMetrics": { + "$ref": "#/components/schemas/Core_Model_MinistryMembershipMetrics" + }, + "settings": { + "$ref": "#/components/schemas/Core_MinistrySettingsViewModel" + }, + "leaders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryLeaderViewModel" + }, + "nullable": true + }, + "ministryWebSettings": { + "$ref": "#/components/schemas/Core_MinistryCentralWebSettingsLiteViewModel" + }, + "hasMembersWithValidEmail": { + "type": "boolean" + }, + "numLocations": { + "type": "integer", + "format": "int32" + }, + "abbreviation": { + "maxLength": 10, + "minLength": 0, + "type": "string" + }, + "isRecommended": { + "type": "boolean" + }, + "recommendationOrder": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_AddressSearchDocument": { + "type": "object", + "properties": { + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "standardizedAddress": { + "type": "string", + "nullable": true + }, + "geoLocation": { + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "addressType": { + "type": "string", + "nullable": true + }, + "inactiveAsOf": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "addressExternalKeys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ExternalKey" + }, + "nullable": true + }, + "personAddress": { + "$ref": "#/components/schemas/Core_Model_PersonAddress" + } + }, + "additionalProperties": false + }, + "Core_Model_Address_SDK": { + "type": "object", + "properties": { + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "regionCode": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryAlpha2": { + "type": "string", + "nullable": true + }, + "countryAlpha3": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_Model_AgeGroupStatistics": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "data": { + "$ref": "#/components/schemas/Core_Model_StatisticsValue" + }, + "difference": { + "$ref": "#/components/schemas/Core_Model_StatisticsValue" + } + }, + "additionalProperties": false + }, + "Core_Model_CallToActionType": { + "enum": [ + "Website", + "Ministry", + "Event" + ], + "type": "string" + }, + "Core_Model_CampusChanges": { + "type": "object", + "properties": { + "campusName": { + "type": "string", + "nullable": true + }, + "changeData": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Core_Model_StatisticsValue" + }, + "nullable": true + }, + "venueChanges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_VenueChanges" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_CampusOccurrenceDto": { + "type": "object", + "properties": { + "occurrences": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "servicesToCreate": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_EventOccurrence" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_CategoryStatistics": { + "type": "object", + "properties": { + "categoryName": { + "type": "string", + "nullable": true + }, + "graphData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_GraphData" + }, + "nullable": true + }, + "campusAverages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CampusChanges" + }, + "nullable": true + }, + "ageGroupAverages": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_AgeGroupStatistics" + } + }, + "nullable": true + }, + "weekSumData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_NamedArray" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ChurchEntityRegion": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_Client": { + "required": [ + "idServerClientId" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "idServerClientId": { + "type": "string" + }, + "name": { + "type": "string", + "nullable": true + }, + "isWhitelisted": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_Model_CommunicationTemplateAttachment": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "communicationTemplateId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "nullable": true + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_CommunicationTemplateDetail": { + "type": "object", + "properties": { + "emailSubjectTemplate": { + "$ref": "#/components/schemas/Core_Model_Template" + }, + "emailBodyLayoutTemplate": { + "$ref": "#/components/schemas/Core_Model_Template" + }, + "emailBodyContentTemplate": { + "$ref": "#/components/schemas/Core_Model_Template" + }, + "smsTemplate": { + "$ref": "#/components/schemas/Core_Model_Template" + }, + "emailAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CommunicationTemplateAttachment" + }, + "nullable": true + }, + "tempEmailAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_CommunicationTemplateTempAttachmentDto" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "isEmail": { + "type": "boolean" + }, + "isSMS": { + "type": "boolean" + }, + "thumbnailImageUrl": { + "type": "string", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_CommunicationTemplateTempAttachmentDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "fileName": { + "type": "string", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ConnectionFormType": { + "enum": [ + "Regular", + "WorshipService" + ], + "type": "string" + }, + "Core_Model_Department": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "isUsed": { + "type": "boolean" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_EligibilityInfo": { + "type": "object", + "properties": { + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "isEligible": { + "type": "boolean" + }, + "notEligible": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "missingMilestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Milestone" + }, + "nullable": true + }, + "source": { + "$ref": "#/components/schemas/Core_Model_IPersonRequirements" + } + }, + "additionalProperties": false + }, + "Core_Model_EmailSearchDocument": { + "type": "object", + "properties": { + "emailAddress": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "emailExternalKeys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ExternalKey" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_EmailType": { + "enum": [ + "Ministry", + "MinistryLocation", + "ServingOpportunity" + ], + "type": "string" + }, + "Core_Model_Email_SDK": { + "type": "object", + "properties": { + "email": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_Model_Endpoint": { + "required": [ + "path" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "path": { + "type": "string" + }, + "isWhitelisted": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_Model_EngagementZoomLevel": { + "enum": [ + "None" + ], + "type": "string" + }, + "Core_Model_EventOccurrence": { + "type": "object", + "properties": { + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "actualStartDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_EventRelativeDataClass": { + "type": "object", + "properties": { + "scheduleRelativeData": { + "$ref": "#/components/schemas/Core_Model_ScheduleRelativeData" + } + }, + "additionalProperties": false + }, + "Core_Model_EventReminderType": { + "enum": [ + "Common", + "InviteNotification", + "EventApproaching" + ], + "type": "string" + }, + "Core_Model_ExportHistory": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_ExportStatus" + }, + "statistics": { + "type": "string", + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Core_Model_Person" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ExportStatus": { + "enum": [ + "Unknown", + "InProgress", + "Completed", + "Failed", + "Cancelled" + ], + "type": "string" + }, + "Core_Model_ExternalKey": { + "type": "object", + "properties": { + "systemId": { + "type": "integer", + "format": "int32" + }, + "keyValue": { + "type": "string", + "nullable": true + }, + "systemName": { + "type": "string", + "nullable": true + }, + "dateUpdated": { + "type": "string", + "format": "date-time" + }, + "versionNumber": { + "type": "integer", + "format": "int32" + }, + "keyValidation": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_FactStatisticsType": { + "enum": [ + "Unknown", + "YearToDateTotal", + "YearToDateAverages", + "MonthlyTotal", + "MonthlyAverages", + "WeeklySums", + "ToDateTotal" + ], + "type": "string" + }, + "Core_Model_FollowUpTaskActionStatus": { + "enum": [ + "TaskNotFound", + "UserNotAuthorized", + "NoOp", + "Successful" + ], + "type": "string" + }, + "Core_Model_FollowUpTaskDueDateBucket": { + "enum": [ + "DueToday", + "Upcoming", + "PastDue" + ], + "type": "string" + }, + "Core_Model_FollowUpTaskQueryType": { + "enum": [ + "Unknown", + "MyFollowUpsInProgress", + "MyFollowUpsCompleted", + "MyFollowUpsUnclaimed", + "MyFollowUpsEscalated", + "SupervisorOverviewUnclaimed", + "SupervisorOverviewByAssignee", + "AllFollowUpsUnclaimed", + "AllFollowUpsByAssignee" + ], + "type": "string" + }, + "Core_Model_FollowUpTaskStatus": { + "enum": [ + "Open", + "Blocked", + "Successful", + "Unsuccessful", + "Canceled" + ], + "type": "string" + }, + "Core_Model_Gender": { + "enum": [ + "Unspecified", + "Male", + "Female" + ], + "type": "string" + }, + "Core_Model_GradeLevel": { + "enum": [ + "None", + "PreK", + "Kindergarten", + "First", + "Second", + "Third", + "Fourth", + "Fifth", + "Sixth", + "Seventh", + "Eighth", + "Ninth", + "Tenth", + "Eleventh", + "Twelfth", + "Invalid" + ], + "type": "string" + }, + "Core_Model_GraphData": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "total": { + "$ref": "#/components/schemas/Core_Model_StatisticsValue" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_StatisticsValue" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_IPersonRequirements": { + "type": "object", + "properties": { + "minAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Milestone" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ImportFieldRestriction": { + "enum": [ + "None", + "NotEmpty", + "Unique", + "Numeric" + ], + "type": "string" + }, + "Core_Model_ImportMilestone": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "dates": { + "type": "array", + "items": { + "type": "string", + "format": "date-time" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ImportPerson": { + "type": "object", + "properties": { + "cmPersonId": { + "type": "integer", + "format": "int32" + }, + "cmPersonUniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cmHouseholdId": { + "type": "integer", + "format": "int32" + }, + "cmPersonMapId": { + "type": "integer", + "format": "int32" + }, + "cmHouseholdMapId": { + "type": "integer", + "format": "int32" + }, + "cmChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "cmMilestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ImportMilestone" + }, + "nullable": true + }, + "rowNumber": { + "type": "integer", + "format": "int32" + }, + "error": { + "type": "string", + "nullable": true + }, + "sourceId": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "prefix": { + "type": "string", + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "birthDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "maritalStatus": { + "$ref": "#/components/schemas/Core_Model_MaritalStatus" + }, + "membershipStatus": { + "$ref": "#/components/schemas/Core_Model_MembershipStatus" + }, + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "homePhone": { + "type": "string", + "nullable": true + }, + "workPhone": { + "type": "string", + "nullable": true + }, + "cellPhone": { + "type": "string", + "nullable": true + }, + "notes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ImportPersonNote" + }, + "nullable": true + }, + "allergies": { + "type": "string", + "nullable": true + }, + "gradeLevel": { + "$ref": "#/components/schemas/Core_Model_GradeLevel" + }, + "churchEntityId": { + "type": "string", + "nullable": true + }, + "milestones": { + "$ref": "#/components/schemas/Core_Model_ImportPersonMilestones" + }, + "householdId": { + "type": "string", + "nullable": true + }, + "householdName": { + "type": "string", + "nullable": true + }, + "householdRelationship": { + "$ref": "#/components/schemas/Core_Model_PersonRelationType" + } + }, + "additionalProperties": false + }, + "Core_Model_ImportPersonMilestones": { + "type": "object", + "properties": { + "class101": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMembershipAgreement": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstContactDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "saddlebackKidsBaptismClass": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "class201": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMaturityCovenantCard": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "class301": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMinistryCovenant": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "completedSHAPEDiscoverySession": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "class401": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMissionCommitment": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "acceptedChrist": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "baptism": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "becameMember": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "dojCleared": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "fbiCleared": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "fingerprinted": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "dataCovenant": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "dataEntry": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "prayerMinistryCovenant": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sK_EmailToStaff": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sK_Interview": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sK_MegansLaw": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sK_NameBadge": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sK_Orientation": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "cL_QuickStart": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lT1": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lT2_Empower": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lT2_Tools": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lT2_Character": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lT2_Health": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lT2_PEACE": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lT2_Reconciliation": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lT2_Skills": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lT5_Advanced": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "newHostGathering": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "childrensMembership": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ImportPersonNote": { + "type": "object", + "properties": { + "cmNoteId": { + "type": "integer", + "format": "int32" + }, + "cmNeedToUpdate": { + "type": "boolean" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "note": { + "type": "string", + "nullable": true + }, + "date": { + "type": "string", + "format": "date-time" + }, + "noteType": { + "type": "string", + "nullable": true + }, + "editorIndividualFirstName": { + "type": "string", + "nullable": true + }, + "editorIndividualLastName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ImportRecordAction": { + "enum": [ + "Unknown", + "New", + "Update", + "Skip" + ], + "type": "string" + }, + "Core_Model_ImportRecordDetails": { + "type": "object", + "properties": { + "parsed": { + "$ref": "#/components/schemas/Core_Model_ImportPerson" + }, + "matched": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ImportPerson" + }, + "nullable": true + }, + "destination": { + "$ref": "#/components/schemas/Core_Model_ImportPerson" + }, + "errorText": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ImportRecordStatus": { + "enum": [ + "Unknown", + "New", + "Unchanged", + "Changed", + "Error" + ], + "type": "string" + }, + "Core_Model_IndividualNameSearchDocument": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "firstNamePhonetic": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "lastNamePhonetic": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "nameExternalKeys": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_Model_IndividualProfileSearchDocument": { + "type": "object", + "properties": { + "organizationId": { + "type": "integer", + "format": "int32" + }, + "userAccountId": { + "type": "integer", + "format": "int32" + }, + "masterProfileId": { + "type": "integer", + "format": "int32" + }, + "birthDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isDeceased": { + "type": "boolean" + }, + "deceasedAsOf": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "searchTag": { + "type": "string", + "nullable": true + }, + "dateCreated": { + "type": "string", + "format": "date-time" + }, + "isArchived": { + "type": "boolean" + }, + "siteId": { + "type": "integer", + "format": "int32" + }, + "names": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_IndividualNameSearchDocument" + }, + "nullable": true + }, + "addresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_AddressSearchDocument" + }, + "nullable": true + }, + "emailAddresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_EmailSearchDocument" + }, + "nullable": true + }, + "phoneNumbers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PhoneSearchDocument" + }, + "nullable": true + }, + "noteDetails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_NoteSearchDocument" + }, + "nullable": true + }, + "display": { + "$ref": "#/components/schemas/Core_Model_IndividualSearchItem" + }, + "primaryAddress": { + "$ref": "#/components/schemas/Core_Model_AddressSearchDocument" + }, + "primaryName": { + "$ref": "#/components/schemas/Core_Model_IndividualNameSearchDocument" + }, + "gender": { + "$ref": "#/components/schemas/Core_App_GenderTypeCode" + }, + "profileExternalKeys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ExternalKey" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Model_IndividualSearchItem": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "address": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + }, + "birthDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Model_IntegrationDataSourceType": { + "enum": [ + "Unknown", + "CSV", + "XLS" + ], + "type": "string" + }, + "Core_Model_IpAddress": { + "required": [ + "address" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "address": { + "type": "string" + }, + "isWhitelisted": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_Model_MaritalStatus": { + "enum": [ + "Single", + "Married", + "Divorced", + "Widowed" + ], + "type": "string" + }, + "Core_Model_MatchingClassification": { + "enum": [ + "Self", + "Best", + "Good", + "Average", + "Bad", + "Undefined" + ], + "type": "string" + }, + "Core_Model_MembershipStatus": { + "enum": [ + "Unknown", + "NonMember", + "Member", + "DisengagedMember", + "MembershipReview", + "Pending" + ], + "type": "string" + }, + "Core_Model_MergeActionType": { + "enum": [ + "ManualFields", + "ManualList", + "AutoList", + "ManualWholeList" + ], + "type": "string" + }, + "Core_Model_MergeDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "target": { + "$ref": "#/components/schemas/Core_Model_MergeObjectDto" + }, + "sources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MergeObjectDto" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_MergeGroupDto": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Core_Model_MergeGroupType" + }, + "action": { + "$ref": "#/components/schemas/Core_Model_MergeActionType" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MergeItemDto" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_MergeGroupType": { + "enum": [ + "Person", + "Email", + "Phone", + "Address", + "Occupation", + "Milestone", + "Note", + "User", + "Membership", + "Doc", + "Relationship", + "RcEntry", + "PersonDupe", + "Speaker", + "MinistryContact", + "MinistryMember", + "ServingOpportunityVolunteer", + "ServingOpportunityContact", + "NotificationRecipient", + "NotificationPreferences", + "PersonNote", + "IntegrationPersonDataSourceMap", + "PersonPreference", + "FlowWorkItemAssignee", + "FlowWorkItemSupervisor", + "FlowConfigurationAssignee", + "FlowConfigurationSupervisor", + "ImportHistory", + "ImportRecordPersonPerformer", + "ImportRecordHouseholdPerformer", + "ImportRecordMilestonePerformer", + "ExportHistory", + "PrayerRequest", + "SecurityData", + "Giving", + "SmallGroups", + "Facebook", + "Credentials", + "Teams", + "Tasks_AsAssignee", + "TaskTemplates", + "Tasks_AsSubject", + "ConnectionQuestionAnswers", + "EventContact", + "EventAttendee", + "EventHistoricAttendee", + "EventAttendeeOccurrence", + "MinistryGroup", + "AttendeeCheckIn", + "VolunteerCheckIn", + "PinnedNote", + "PromotionHistory", + "ConnectionFormOwner", + "ConnectionFormEntryPerson", + "ConnectionFormContributorUpdate", + "ConnectionFormContributorDelete", + "ServingHours" + ], + "type": "string" + }, + "Core_Model_MergeItemDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Core_Model_MergeItemType" + }, + "name": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_MergeItemType": { + "enum": [ + "Common", + "Image" + ], + "type": "string" + }, + "Core_Model_MergeObjectDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "alternateId": { + "type": "integer", + "format": "int32" + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MergeGroupDto" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_Milestone": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "category": { + "$ref": "#/components/schemas/Core_Model_MilestoneCategory" + }, + "uiOrder": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "inactiveDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "inactivatedBy": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "inactivatedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "allowablePersonRecordTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonRecordType" + }, + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_MilestoneCategory": { + "enum": [ + "Undefined", + "Personal", + "Discipleship", + "Security" + ], + "type": "string" + }, + "Core_Model_MinistryCommunicationType": { + "enum": [ + "Unknown", + "InterestedInMinistryEmail", + "MinistryMembershipEmail" + ], + "type": "string" + }, + "Core_Model_MinistryDeactivationValidationResult": { + "type": "object", + "properties": { + "activeMinistryLocations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_MinistryLocationDeactivationValidationResult" + }, + "nullable": true + }, + "numberOfMinistryLocationsToDeactivate": { + "type": "integer", + "format": "int32" + }, + "numberOfServingOpportunitiesToDeactivate": { + "type": "integer", + "format": "int32" + }, + "inactivationAllowed": { + "type": "boolean", + "readOnly": true + }, + "errorType": { + "$ref": "#/components/schemas/Core_App_ErrorType" + }, + "isValid": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_Model_MinistryLocation": { + "type": "object", + "properties": { + "ministryId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "abbreviation": { + "type": "string", + "nullable": true + }, + "parentMinistryStatus": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "churchEntityAbbreviation": { + "type": "string", + "nullable": true + }, + "churchEntityUrl": { + "type": "string", + "nullable": true + }, + "churchEntityCountry": { + "type": "string", + "nullable": true + }, + "shortDescription": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "purposeStatement": { + "type": "string", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "isAcceptingNewMembers": { + "type": "boolean" + }, + "sendInterestedToLeader": { + "type": "boolean" + }, + "sendInterestedToColeader": { + "type": "boolean" + }, + "sendInterestedToStaffConnector": { + "type": "boolean" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryStatus" + }, + "inactiveDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_MinistryLocationDeactivationValidationResult": { + "type": "object", + "properties": { + "ministryLocation": { + "$ref": "#/components/schemas/Core_Model_MinistryLocation" + }, + "hasNotEmptyInterestedQueue": { + "type": "boolean" + }, + "activeServingOpportunities": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Dto_ServingOpportunityWithInterestedStatus" + }, + "nullable": true + }, + "numberOfServingOpportunitiesToDeactivate": { + "type": "integer", + "format": "int32" + }, + "inactivationAllowed": { + "type": "boolean", + "readOnly": true + }, + "errorType": { + "$ref": "#/components/schemas/Core_App_ErrorType" + }, + "isValid": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_Model_MinistryLocationIds": { + "type": "object", + "properties": { + "ministryId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Model_MinistryMemberStatus": { + "enum": [ + "NotContacted", + "FirstContact", + "SecondContact", + "Pending", + "Ineligible", + "Active", + "Inactive", + "InTraining", + "Unknown" + ], + "type": "string" + }, + "Core_Model_MinistryMemberStatusHistory": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "ministryMemberId": { + "type": "integer", + "format": "int32" + }, + "memberFirstName": { + "type": "string", + "nullable": true + }, + "memberLastName": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatus" + }, + "isAddition": { + "type": "boolean" + }, + "isDeletion": { + "type": "boolean" + }, + "createdBy": { + "type": "integer", + "format": "int32" + }, + "createdByName": { + "type": "string", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_MinistryMemberStatusType": { + "enum": [ + "Interested", + "Member" + ], + "type": "string" + }, + "Core_Model_MinistryMembershipMetrics": { + "type": "object", + "properties": { + "notContacted": { + "type": "integer", + "format": "int32" + }, + "firstContact": { + "type": "integer", + "format": "int32" + }, + "secondContact": { + "type": "integer", + "format": "int32" + }, + "pending": { + "type": "integer", + "format": "int32" + }, + "ineligible": { + "type": "integer", + "format": "int32" + }, + "active": { + "type": "integer", + "format": "int32" + }, + "inactive": { + "type": "integer", + "format": "int32" + }, + "inTraining": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Model_MinistryScope": { + "type": "object", + "properties": { + "regions": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "churchEntities": { + "type": "object", + "additionalProperties": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "nullable": true + }, + "servingOpportunities": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "extractedChurchEntities": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_MinistryStatus": { + "enum": [ + "Pending", + "Active", + "Inactive" + ], + "type": "string" + }, + "Core_Model_NamedArray": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "total": { + "type": "number", + "format": "double" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_NamedValue" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_NamedEntity": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_NamedValue": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "value": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_NoteSearchDocument": { + "type": "object", + "properties": { + "note": { + "type": "string", + "nullable": true + }, + "noteDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "noteExternalKeys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ExternalKey" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_NotificationChannelType": { + "enum": [ + "All", + "Email", + "Sms", + "App", + "Push" + ], + "type": "string" + }, + "Core_Model_NotificationLabelType": { + "enum": [ + "None", + "Favorite" + ], + "type": "string" + }, + "Core_Model_NotificationSourceType": { + "enum": [ + "Unknown", + "FlowWorkItemAssigned", + "FlowWorkItemReassigned", + "FlowWorkItemCommented", + "FlowWorkItemOverdue", + "FlowWorkItemBlocked", + "MinistryMemberInterested", + "MinistryMemberStatusChanged", + "MinistryMemberNoteCreated", + "MinistryMember", + "DeliveryResult", + "ServingOpportunityVolunteer", + "ServingOpportunityVolunteerInterested", + "DebugEmail", + "VerificationEmail", + "AddedToMinistryAsLeader", + "WorkflowCommunication", + "ReminderNotification", + "EventAttendee", + "WorkflowTaskEscalated", + "WorkflowTaskCommented", + "WorkflowTaskReassigned", + "WorkflowTaskBlocked", + "WorkflowTasksPastDueDigest", + "WorkflowTasksDueTodayDigest", + "WorkflowTasksNewlyCreatedOrAssignedDigest", + "MemberEngagementStartOfService", + "MemberEngagementDailyVerse", + "MemberEngagementMilestoneAchieved", + "MemberEngagementCustomPastorMessage", + "InviteAndNotifyMinistry", + "SystemCommunication", + "MinistryMemberSms", + "SmsConsentRequest", + "EventCheckInVolunteer", + "GivingCommunication", + "EventContact", + "EventCheckInAttendee", + "ServingOpportunityVolunteerSms", + "ServingOpportunityVolunteerUnscheduled", + "MemberEngagementDailyDevotional", + "MyFollowUpsManualCommunication" + ], + "type": "string" + }, + "Core_Model_NotificationSourceTypeCategory": { + "enum": [ + "Discipleship", + "Events", + "Ministry", + "System", + "Workflow", + "MemberEngagement", + "Giving" + ], + "type": "string" + }, + "Core_Model_NotificationStatusType": { + "enum": [ + "Unprocessed", + "Pending", + "Running", + "Succeeded", + "Failed", + "Skipped" + ], + "type": "string" + }, + "Core_Model_OccurrenceStatus": { + "enum": [ + "Active", + "Canceled", + "Removed" + ], + "type": "string" + }, + "Core_Model_PaymentSearchDocument": { + "type": "object", + "properties": { + "batchId": { + "type": "integer", + "format": "int32" + }, + "paymentMethodType": { + "type": "integer", + "format": "int32" + }, + "paymentMethodTypeName": { + "type": "string", + "nullable": true + }, + "paymentStatusType": { + "$ref": "#/components/schemas/Core_Model_PaymentStatusType" + }, + "amountDouble": { + "type": "number", + "format": "double" + }, + "amount": { + "type": "string", + "nullable": true + }, + "netAmountDouble": { + "type": "number", + "format": "double" + }, + "netAmount": { + "type": "string", + "nullable": true + }, + "individual": { + "$ref": "#/components/schemas/Core_Model_IndividualProfileSearchDocument" + }, + "paymentDateDate": { + "type": "string", + "format": "date-time" + }, + "paymentDate": { + "type": "string", + "nullable": true + }, + "depositDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "currencyType": { + "type": "integer", + "format": "int32" + }, + "currencyTypeName": { + "type": "string", + "nullable": true + }, + "sourceCurrencyAmount": { + "type": "number", + "format": "double" + }, + "paymentType": { + "type": "integer", + "format": "int32" + }, + "isArchived": { + "type": "boolean" + }, + "paymentSiteId": { + "type": "integer", + "format": "int32" + }, + "settledAmount": { + "type": "number", + "format": "double" + }, + "isIndividual": { + "type": "boolean" + }, + "bankAccountId": { + "type": "integer", + "format": "int32" + }, + "paymentMethodDisplayLine": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Model_PaymentStatusType": { + "enum": [ + "None", + "ToBeSettled", + "ToBeDeposited", + "Deposited", + "Refunded", + "Voided", + "Chargeback", + "ToBeRefunded", + "Error" + ], + "type": "string" + }, + "Core_Model_Person": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "uniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityKnown": { + "type": "boolean" + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "prefix": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "maritalStatus": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "membershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "disengagementReason": { + "type": "string", + "nullable": true + }, + "birthDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deceasedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "gradeLevel": { + "$ref": "#/components/schemas/Core_Model_GradeLevel" + }, + "allergies": { + "type": "string", + "nullable": true + }, + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "homePhone": { + "type": "string", + "nullable": true + }, + "cellPhone": { + "type": "string", + "nullable": true + }, + "workPhone": { + "type": "string", + "nullable": true + }, + "primaryPhoneType": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonMilestone" + }, + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentName": { + "type": "string", + "nullable": true + }, + "departmentChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentChurchEntityName": { + "type": "string", + "nullable": true + }, + "preferredServiceEventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isUser": { + "type": "boolean" + }, + "profilePictureUrl": { + "type": "string", + "nullable": true + }, + "profilePhotoUrl": { + "type": "string", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_PersonAddress": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "mergeableItem": { + "$ref": "#/components/schemas/Core_Model_MergeItemDto" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_PersonBase": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "uniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "previousUniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "deceasedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isDeceased": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_Model_PersonBasic": { + "type": "object", + "properties": { + "prefix": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "emailVerifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isEmailVerified": { + "type": "boolean" + }, + "avatar": { + "$ref": "#/components/schemas/Core_Model_PersonProfilePicture" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "uniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "previousUniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "deceasedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isDeceased": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_Model_PersonContactPreference": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "preferredMethod": { + "type": "string", + "nullable": true + }, + "doNotMail": { + "type": "boolean" + }, + "doNotPhone": { + "type": "boolean" + }, + "doNotText": { + "type": "boolean" + }, + "doNotEmail": { + "type": "boolean" + }, + "doNotContact": { + "type": "boolean" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_PersonDocument": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "filename": { + "type": "string", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "nullable": true + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "fileTitle": { + "type": "string", + "nullable": true + }, + "deleteDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "mergeableItem": { + "$ref": "#/components/schemas/Core_Model_MergeItemDto" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_PersonEmail": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "email": { + "type": "string", + "nullable": true + }, + "isPublic": { + "type": "boolean" + }, + "mergeableItem": { + "$ref": "#/components/schemas/Core_Model_MergeItemDto" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_PersonMilestone": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "milestoneId": { + "type": "integer", + "format": "int32" + }, + "milestoneOrder": { + "type": "integer", + "format": "int32" + }, + "milestone": { + "type": "string", + "nullable": true + }, + "milestoneCategory": { + "$ref": "#/components/schemas/Core_Model_MilestoneCategory" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "location": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "document": { + "$ref": "#/components/schemas/Core_Model_PersonDocument" + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonDocument" + }, + "nullable": true + }, + "mergeableItem": { + "$ref": "#/components/schemas/Core_Model_MergeItemDto" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_PersonPhone": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "phoneTypeId": { + "type": "integer", + "format": "int32" + }, + "phoneNumber": { + "type": "string", + "nullable": true + }, + "isPublic": { + "type": "boolean" + }, + "mergeableItem": { + "$ref": "#/components/schemas/Core_Model_MergeItemDto" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_PersonProfilePicture": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "pictureType": { + "$ref": "#/components/schemas/Core_Model_PersonProfilePictureType" + }, + "picture": { + "type": "string", + "format": "byte", + "nullable": true + }, + "mimeType": { + "type": "string", + "nullable": true + }, + "mergeableItem": { + "$ref": "#/components/schemas/Core_Model_MergeItemDto" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_PersonProfilePictureType": { + "enum": [ + "Photo", + "Avatar" + ], + "type": "string" + }, + "Core_Model_PersonRecordType": { + "enum": [ + "Adult", + "Student", + "Child" + ], + "type": "string" + }, + "Core_Model_PersonRelationType": { + "enum": [ + "Unknown", + "Parent", + "Child", + "Sibling", + "Spouse", + "Other", + "StepParent", + "FormerSpouse", + "StepChild", + "StepSibling", + "Grandparent", + "StepGrandparent", + "Grandchild", + "StepGrandchild", + "ParentsSibling", + "SiblingsChild", + "SeparatedSpouse", + "Cousin", + "Neighbor", + "Friend", + "CoWorker", + "SmallGroupLeader", + "MinistryLeader", + "FosterParent", + "FosterChild" + ], + "type": "string" + }, + "Core_Model_PersonRelationship": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "inferred": { + "type": "boolean" + }, + "personBirthdate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "personDeceasedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "personFirstName": { + "type": "string", + "nullable": true + }, + "personGender": { + "type": "string", + "nullable": true + }, + "personGradeLevel": { + "$ref": "#/components/schemas/Core_Model_GradeLevel" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "personLastName": { + "type": "string", + "nullable": true + }, + "personMaritalStatus": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personMembershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personNickName": { + "type": "string", + "nullable": true + }, + "personPrefix": { + "type": "string", + "nullable": true + }, + "personRelationId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "personSuffix": { + "type": "string", + "nullable": true + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "reciprocalRelationId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "relativeBirthdate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "relativeDeceasedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "relativeFirstName": { + "type": "string", + "nullable": true + }, + "relativeGender": { + "type": "string", + "nullable": true + }, + "relativeGradeLevel": { + "$ref": "#/components/schemas/Core_Model_GradeLevel" + }, + "relativeId": { + "type": "integer", + "format": "int32" + }, + "relativeLastName": { + "type": "string", + "nullable": true + }, + "relativeMaritalStatus": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "relativeMembershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "relativeNickName": { + "type": "string", + "nullable": true + }, + "relativePrefix": { + "type": "string", + "nullable": true + }, + "relativeProfilePhotoUrl": { + "type": "string", + "nullable": true + }, + "relativeProfilePictureUrl": { + "type": "string", + "nullable": true + }, + "relativeSuffix": { + "type": "string", + "nullable": true + }, + "relativeUniqueId": { + "type": "integer", + "format": "int32" + }, + "invalidReason": { + "type": "string", + "nullable": true + }, + "isAddressMatch": { + "type": "boolean" + }, + "personAge": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "relativeAge": { + "type": "integer", + "format": "int32", + "nullable": true, + "readOnly": true + }, + "personMaritalStatusDescription": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "relativeMaritalStatusDescription": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_PersonSecurityLite": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "uniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fullName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "avatarUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_PersonUserPreference": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "localeId": { + "type": "integer", + "format": "int32" + }, + "localeLCID": { + "type": "string", + "nullable": true + }, + "timeZoneId": { + "type": "string", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_Person_SDK": { + "type": "object", + "properties": { + "profilePictureUrl": { + "type": "string", + "nullable": true + }, + "addresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Address_SDK" + }, + "nullable": true + }, + "phones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PhoneNumber_SDK" + }, + "nullable": true + }, + "emails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Email_SDK" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "birthDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "prefix": { + "type": "string", + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + }, + "maritalStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maritalStatus": { + "type": "string", + "nullable": true + }, + "membershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "membershipStatus": { + "type": "string", + "nullable": true + }, + "deceasedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "gradeLevel": { + "type": "string", + "nullable": true + }, + "allergies": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_PersonalInformationPanelField": { + "enum": [ + "Unknown", + "FirstName", + "LastName", + "Email", + "SinglePhoneNumberWithSpecifiedType", + "Gender", + "Campus", + "Address1", + "Address2", + "City", + "Region", + "PostalCode", + "Country", + "HomePhone", + "MobilePhone", + "WorkPhone" + ], + "type": "string" + }, + "Core_Model_PhoneNumber_SDK": { + "type": "object", + "properties": { + "phoneType": { + "type": "string", + "nullable": true + }, + "phoneNumber": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_Model_PhoneSearchDocument": { + "type": "object", + "properties": { + "phoneNumber": { + "type": "string", + "nullable": true + }, + "phoneType": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "phoneExternalKeys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ExternalKey" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_PhoneType": { + "enum": [ + "Unknown", + "Home", + "Work", + "Cell", + "Other" + ], + "type": "string" + }, + "Core_Model_PublishType": { + "enum": [ + "NotPublished", + "PublishedPrivate", + "PublishedPublic" + ], + "type": "string" + }, + "Core_Model_Question": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "placeholder": { + "type": "string", + "nullable": true + }, + "questionTypeId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "questionType": { + "$ref": "#/components/schemas/Core_Model_QuestionType" + }, + "questionClassificationId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "questionClassification": { + "$ref": "#/components/schemas/Core_Model_QuestionClassification" + }, + "milestoneId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "milestoneName": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "published": { + "type": "boolean" + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_QuestionAnswerChoice" + }, + "nullable": true + }, + "questionSources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_QuestionSource" + }, + "nullable": true + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "modifiedBy": { + "type": "string", + "nullable": true + }, + "inactiveDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "inactivatedBy": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "numAnswers": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "defaultAutoReplyEmailContentSpotTemplateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_QuestionAnswerChoice": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "questionId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_QuestionClassification": { + "enum": [ + "Invalid", + "Custom", + "Foundation", + "General" + ], + "type": "string" + }, + "Core_Model_QuestionSource": { + "type": "object", + "properties": { + "questionId": { + "type": "integer", + "format": "int32" + }, + "answerSourceId": { + "type": "integer", + "format": "int32" + }, + "answerSource": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_QuestionType": { + "enum": [ + "SingleLineText", + "ParagraphText", + "Checkbox", + "Date", + "MultipleChoice", + "DropDown" + ], + "type": "string" + }, + "Core_Model_RateLimitRule": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "endpointId": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "period": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int64" + }, + "callLimit": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "isGeneral": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_Model_Region": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ReminderData": { + "type": "object", + "properties": { + "emailData": { + "$ref": "#/components/schemas/Core_Model_ReminderEmailData" + }, + "eventData": { + "$ref": "#/components/schemas/Core_Model_ReminderEventData" + } + }, + "additionalProperties": false + }, + "Core_Model_ReminderEmailData": { + "type": "object", + "properties": { + "emailTemplateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "emailTemplateName": { + "type": "string", + "nullable": true + }, + "senderId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "senderName": { + "type": "string", + "nullable": true + }, + "replyEmail": { + "type": "string", + "nullable": true + }, + "subject": { + "type": "string", + "nullable": true + }, + "htmlBody": { + "type": "string", + "nullable": true + }, + "bodyTemplateName": { + "type": "string", + "nullable": true + }, + "attachments": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "ccToSender": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ReminderEventData": { + "type": "object", + "properties": { + "eventId": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/Core_Model_EventReminderType" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Model_ReminderInterval": { + "enum": [ + "Unknown", + "Minutes", + "Hours", + "Days", + "Weeks" + ], + "type": "string" + }, + "Core_Model_ResponseCardField": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "responseCardId": { + "type": "integer", + "format": "int32" + }, + "responseCardSectionId": { + "type": "integer", + "format": "int32" + }, + "predecessorId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fieldType": { + "type": "string", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "labelPublic": { + "type": "string", + "nullable": true + }, + "instructions": { + "type": "string", + "nullable": true + }, + "isRequired": { + "type": "boolean" + }, + "isSensitive": { + "type": "boolean" + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "subFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ResponseCardSubField" + }, + "nullable": true + }, + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ResponseCardFieldChoice" + }, + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ResponseCardFieldChoice": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "parentFieldId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "labelPublic": { + "type": "string", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ResponseCardSection": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "responseCardId": { + "type": "integer", + "format": "int32" + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "titlePublic": { + "type": "string", + "nullable": true + }, + "subtitle": { + "type": "string", + "nullable": true + }, + "subtitlePublic": { + "type": "string", + "nullable": true + }, + "icon": { + "type": "string", + "nullable": true + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ResponseCardField" + }, + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ResponseCardSubField": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "parentFieldId": { + "type": "integer", + "format": "int32" + }, + "predecessorId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "label": { + "type": "string", + "nullable": true + }, + "labelPublic": { + "type": "string", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "isRequired": { + "type": "boolean" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ScheduleRelativeData": { + "type": "object", + "properties": { + "startTimeOffset": { + "$ref": "#/components/schemas/Core_Model_TimeOffset" + }, + "durationOffset": { + "$ref": "#/components/schemas/Core_Model_TimeOffset" + } + }, + "additionalProperties": false + }, + "Core_Model_ScheduleSearchType": { + "enum": [ + "None", + "Recurring", + "OneTime", + "Closed", + "Active" + ], + "type": "string" + }, + "Core_Model_SecurityRoleType": { + "enum": [ + "Common", + "System", + "Special" + ], + "type": "string" + }, + "Core_Model_SecurityScope": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "notAssignedChurchEntities": { + "type": "boolean" + }, + "regions": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "churchEntities": { + "type": "object", + "additionalProperties": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "nullable": true + }, + "ministries": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Core_Model_MinistryScope" + }, + "nullable": true + }, + "events": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "connectionForms": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "noteCategories": { + "type": "object", + "additionalProperties": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "nullable": true + }, + "extractedChurchEntities": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_ServiceOutlineCategory": { + "enum": [ + "WorshipService" + ], + "type": "string" + }, + "Core_Model_ServiceOutlinePerson": { + "type": "object", + "properties": { + "serviceTemplateId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "content": { + "type": "string", + "nullable": true + }, + "version": { + "type": "integer", + "format": "int32" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ServiceSpeaker": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "createdBy": { + "type": "string", + "nullable": true + }, + "modifiedBy": { + "type": "string", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ServiceTemplateOutline": { + "type": "object", + "properties": { + "serviceTemplateId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "category": { + "$ref": "#/components/schemas/Core_Model_ServiceOutlineCategory" + }, + "categoryId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "categoryName": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "content": { + "type": "string", + "nullable": true + }, + "version": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Model_ServiceTemplateType": { + "enum": [ + "GeneralTemplate", + "CampusTemplate" + ], + "type": "string" + }, + "Core_Model_ServingOpportunityCommunicationTemplate": { + "type": "object", + "properties": { + "communicationTemplate": { + "$ref": "#/components/schemas/Core_Model_CommunicationTemplateDetail" + }, + "communicationTemplateId": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "senderDisplayName": { + "type": "string", + "nullable": true + }, + "senderEmailAddress": { + "type": "string", + "nullable": true + }, + "servingOpportunityCommunicationType": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityCommunicationType" + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ServingOpportunityCommunicationType": { + "enum": [ + "Unknown", + "UnscheduledEmailConfirmation", + "ScheduledEmailConfirmation" + ], + "type": "string" + }, + "Core_Model_ServingOpportunityRequirements": { + "enum": [ + "None", + "Age", + "Gender", + "Milestones", + "All" + ], + "type": "string" + }, + "Core_Model_ServingOpportunityScheduleCommitmentType": { + "enum": [ + "AllOccurrences", + "SingleOccurrence" + ], + "type": "string" + }, + "Core_Model_ServingOpportunitySettingsDto": { + "type": "object", + "properties": { + "milestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_Milestone" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "quantityNeeded": { + "type": "integer", + "format": "int32" + }, + "minAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "virtualUrl": { + "type": "string", + "nullable": true + }, + "disabledCommunicationTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityCommunicationType" + }, + "nullable": true + }, + "disabledCommunicationTypeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "eventRelativeData": { + "$ref": "#/components/schemas/Core_Model_EventRelativeDataClass" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ServingOpportunityStatistics": { + "type": "object", + "properties": { + "capacity": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "duration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "publishType": { + "$ref": "#/components/schemas/Core_Model_PublishType" + }, + "startTime": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "total": { + "type": "integer", + "format": "int32" + }, + "volunteerCommitted": { + "type": "integer", + "format": "int32" + }, + "volunteerInterested": { + "type": "integer", + "format": "int32" + }, + "filledSlots": { + "type": "integer", + "format": "int32", + "readOnly": true, + "deprecated": true + }, + "openSlots": { + "type": "integer", + "format": "int32", + "readOnly": true, + "deprecated": true + } + }, + "additionalProperties": false + }, + "Core_Model_ServingOpportunityStatus": { + "enum": [ + "PendingApproval", + "Open", + "Closed" + ], + "type": "string" + }, + "Core_Model_ServingOpportunityVolunteerOccurrence": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityVolunteerId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "occurrenceTimeZone": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "exclusions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerOccurrenceExclusion" + }, + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ServingOpportunityVolunteerOccurrenceExclusion": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityVolunteerOccurrenceId": { + "type": "integer", + "format": "int32" + }, + "excludedOccurrenceId": { + "type": "integer", + "format": "int32" + }, + "excludedOccurrenceDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_ServingOpportunityVolunteerScheduleType": { + "enum": [ + "Unscheduled", + "Scheduled" + ], + "type": "string" + }, + "Core_Model_ServingOpportunityVolunteerStatus": { + "enum": [ + "Interested", + "Committed" + ], + "type": "string" + }, + "Core_Model_SharePageType": { + "enum": [ + "Unknown", + "Event", + "ServingOpportunity" + ], + "type": "string" + }, + "Core_Model_StandardErrorResponse": { + "type": "object", + "properties": { + "message": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_StatisticsValue": { + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true + }, + "noData": { + "type": "boolean" + }, + "value": { + "type": "number", + "format": "double", + "nullable": true + }, + "difference": { + "type": "number", + "format": "double", + "nullable": true + }, + "percentage": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_SyncFeatures": { + "enum": [ + "None", + "ImportEnabled", + "DataSyncEnabled" + ], + "type": "string" + }, + "Core_Model_Tag": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "categoryId": { + "type": "integer", + "format": "int32" + }, + "type": { + "type": "integer", + "format": "int32" + }, + "slug": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_Template": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/Core_Model_TemplateType" + }, + "format": { + "$ref": "#/components/schemas/Core_Model_TemplateFormat" + }, + "isRazor": { + "type": "boolean" + }, + "name": { + "type": "string", + "nullable": true + }, + "templateValue": { + "type": "string", + "nullable": true + }, + "isSystem": { + "type": "boolean" + }, + "designData": { + "type": "string", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Core_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_Model_TemplateFormat": { + "enum": [ + "Unknown", + "PlainText", + "Html", + "PrinterLabel" + ], + "type": "string" + }, + "Core_Model_TemplateType": { + "enum": [ + "Unknown", + "ContentSpot", + "Layout", + "CompleteDocument", + "Base" + ], + "type": "string" + }, + "Core_Model_TimeOffset": { + "type": "object", + "properties": { + "days": { + "type": "integer", + "format": "int32" + }, + "hours": { + "type": "integer", + "format": "int32" + }, + "minutes": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_Model_UserPassword": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "oldPassword": { + "type": "string", + "nullable": true + }, + "newPassword": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_VenueChanges": { + "type": "object", + "properties": { + "venueName": { + "type": "string", + "nullable": true + }, + "changeData": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Core_Model_StatisticsValue" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_WebHeader": { + "type": "object", + "properties": { + "value": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_Model_WeekendFlashReportRangeType": { + "enum": [ + "Regular", + "ServiceCategory" + ], + "type": "string" + }, + "Core_MyPersonServingOpportunityDataViewModel": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "myPersonServingOpportunities": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MyPersonServingOpportunityViewModel" + }, + "nullable": true + }, + "signedUpForAllIdList": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "signedUpAsinterestedIdList": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "signedUpForSpecificOccurrencesList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerOccurrence" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_MyPersonServingOpportunityViewModel": { + "required": [ + "churchEntityId", + "ministryId", + "volunteerSettings" + ], + "type": "object", + "properties": { + "privateId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean", + "nullable": true, + "readOnly": true + }, + "communicationTemplates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityCommunicationTemplate" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 250, + "minLength": 0, + "type": "string", + "nullable": true + }, + "eventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "eventName": { + "type": "string", + "nullable": true + }, + "eventUrl": { + "maxLength": 2048, + "minLength": 0, + "type": "string", + "nullable": true + }, + "description": { + "maxLength": 2048, + "minLength": 0, + "type": "string", + "nullable": true + }, + "shortDescription": { + "maxLength": 140, + "minLength": 0, + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityStatus" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "scheduleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ministry": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + }, + "venue": { + "$ref": "#/components/schemas/Core_VenueViewModel" + }, + "venueData": { + "$ref": "#/components/schemas/Core_VenueDataViewModel" + }, + "venueId": { + "type": "integer", + "format": "int32", + "nullable": true, + "deprecated": true + }, + "contacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityContactViewModel" + }, + "nullable": true + }, + "tagList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_TagViewModel" + }, + "nullable": true + }, + "schedule": { + "$ref": "#/components/schemas/Core_ScheduleViewModel_Core" + }, + "settings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunitySettingsViewModel" + }, + "nullable": true + }, + "occurrence": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + }, + "statistics": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityStatistics" + }, + "isClosedBySchedule": { + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "isPublic": { + "type": "boolean", + "deprecated": true + }, + "isRecurring": { + "type": "boolean", + "nullable": true + }, + "isSelfCheckInEnabled": { + "type": "boolean" + }, + "verse": { + "type": "string", + "nullable": true + }, + "churchEntityAbbreviation": { + "type": "string", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "volunteerSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerSettingsViewModel" + } + }, + "publishType": { + "$ref": "#/components/schemas/Core_Model_PublishType" + }, + "publishTypeId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "publishedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "publishedChurchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "tenantUrl": { + "type": "string", + "nullable": true + }, + "webHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "companionAppHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "thumbnail": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "eligibility": { + "$ref": "#/components/schemas/Core_EligibilityInfoViewModel" + } + }, + "additionalProperties": false + }, + "Core_NamedEntityViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_NewMinistryMembersViewModel": { + "type": "object", + "properties": { + "personIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_MinistryMemberStatus" + }, + "sourceId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_NoteCategoryInboundViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 100, + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_NoteCategoryViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + }, + "inactivateDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "inactivatedBy": { + "type": "string", + "nullable": true + }, + "isSystem": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_NoteReminderScheduleViewModel": { + "type": "object", + "properties": { + "occurrencesCount": { + "maximum": 10000, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "custom": { + "type": "boolean" + }, + "sequences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ScheduleSequenceViewModel_Core_V2" + }, + "nullable": true + }, + "startDayOfWeek": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_NoteReminderViewModel": { + "required": [ + "noteDirectLink", + "reminderDate" + ], + "type": "object", + "properties": { + "schedule": { + "$ref": "#/components/schemas/Core_NoteReminderScheduleViewModel" + }, + "reminderDate": { + "type": "string" + }, + "noteDirectLink": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "interval": { + "$ref": "#/components/schemas/Core_Model_ReminderInterval" + }, + "before": { + "type": "integer", + "format": "int32" + }, + "scheduleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "enabled": { + "type": "boolean" + }, + "processed": { + "type": "boolean" + }, + "reminderData": { + "$ref": "#/components/schemas/Core_Model_ReminderData" + } + }, + "additionalProperties": false + }, + "Core_NoteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32" + }, + "purpose": { + "type": "string", + "nullable": true + }, + "subject": { + "type": "string", + "nullable": true + }, + "noteText": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "isPinned": { + "type": "boolean", + "nullable": true + }, + "createdBy": { + "type": "integer", + "format": "int32" + }, + "createdByName": { + "type": "string", + "nullable": true + }, + "createdByEmail": { + "type": "string", + "nullable": true + }, + "createdByAvatar": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "integer", + "format": "int64" + }, + "modifiedBy": { + "type": "integer", + "format": "int32" + }, + "modifiedByName": { + "type": "string", + "nullable": true + }, + "modifiedByEmail": { + "type": "string", + "nullable": true + }, + "modifiedByAvatar": { + "type": "string", + "nullable": true + }, + "modifyDate": { + "type": "integer", + "format": "int64" + }, + "ministryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ministry": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntity": { + "type": "string", + "nullable": true + }, + "categoryId": { + "type": "integer", + "format": "int32" + }, + "categoryName": { + "type": "string", + "nullable": true + }, + "taskName": { + "type": "string", + "nullable": true + }, + "reminderId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_NotificationRecipientViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "pushNotificationRegistrationId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "channel": { + "$ref": "#/components/schemas/Core_Model_NotificationChannelType" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_NotificationStatusType" + }, + "error": { + "type": "string", + "nullable": true + }, + "isViewed": { + "type": "boolean" + }, + "retryCount": { + "type": "integer", + "format": "int32" + }, + "person": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + }, + "mergeVariableReplacements": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_NotificationResultViewModel": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "list": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NotificationViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_NotificationSenderContactViewModel": { + "type": "object", + "properties": { + "senderIdentifier": { + "type": "string", + "nullable": true + }, + "senderName": { + "type": "string", + "nullable": true + }, + "replyIdentifier": { + "type": "string", + "nullable": true + }, + "reportPersonId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ccToSender": { + "type": "boolean" + }, + "person": { + "$ref": "#/components/schemas/Core_PersonLiteViewModel" + } + }, + "additionalProperties": false + }, + "Core_NotificationViewModel": { + "required": [ + "body", + "sourceId", + "summary" + ], + "type": "object", + "properties": { + "attachments": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sourceId": { + "type": "integer", + "format": "int32" + }, + "sourceId2": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sourceId3": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "groupId": { + "type": "string", + "nullable": true + }, + "sourceType": { + "$ref": "#/components/schemas/Core_Model_NotificationSourceType" + }, + "summary": { + "type": "string" + }, + "body": { + "type": "string" + }, + "label": { + "$ref": "#/components/schemas/Core_Model_NotificationLabelType" + }, + "payload": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "integer", + "format": "int64" + }, + "recipients": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NotificationRecipientViewModel" + }, + "nullable": true + }, + "senderContact": { + "$ref": "#/components/schemas/Core_NotificationSenderContactViewModel" + }, + "allFailed": { + "type": "boolean" + }, + "allSkipped": { + "type": "boolean" + }, + "category": { + "$ref": "#/components/schemas/Core_Model_NotificationSourceTypeCategory" + } + }, + "additionalProperties": false + }, + "Core_OccurrenceViewModel": { + "required": [ + "duration", + "startTime" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "scheduleSequenceId": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string" + }, + "duration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_OccurrenceStatus" + }, + "newDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "newStartTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string", + "nullable": true + }, + "newDuration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string", + "nullable": true + }, + "actualDate": { + "type": "string", + "format": "date-time" + }, + "actualStartDateTime": { + "type": "string", + "format": "date-time" + }, + "actualDuration": { + "type": "string", + "nullable": true + }, + "isOverloaded": { + "type": "boolean" + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_OccurrenceViewModel_Core": { + "required": [ + "duration", + "startTime" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "scheduleSequenceId": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string" + }, + "duration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_OccurrenceStatus" + }, + "newDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "newStartTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string", + "nullable": true + }, + "newDuration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string", + "nullable": true + }, + "actualDate": { + "type": "string", + "format": "date-time" + }, + "actualStartDateTime": { + "type": "string", + "format": "date-time" + }, + "actualDuration": { + "type": "string", + "nullable": true + }, + "isOverloaded": { + "type": "boolean" + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_OccurrenceViewModel_Core_V2": { + "required": [ + "date", + "duration", + "startTime" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "scheduleSequenceId": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_OccurrenceStatus" + }, + "newDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "newStartTime": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "newDuration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "isOverloaded": { + "type": "boolean" + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_PersonAddressViewModel": { + "required": [ + "address1", + "city", + "countryAlpha3" + ], + "type": "object", + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string" + }, + "region": { + "type": "string", + "nullable": true + }, + "regionCode": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryAlpha2": { + "type": "string", + "nullable": true + }, + "countryAlpha3": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_PersonAgreementDetailViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "agreement": { + "$ref": "#/components/schemas/Core_AgreementViewModel" + }, + "agreeDate": { + "type": "string", + "format": "date-time" + }, + "revokeDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isRevoked": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_PersonAgreementLiteViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "agreement": { + "$ref": "#/components/schemas/Core_AgreementLiteViewModel" + }, + "agreeDate": { + "type": "string", + "format": "date-time" + }, + "revokeDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isRevoked": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_PersonAgreementRequestViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "agreementId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_PersonAndMilestoneIdsViewModel": { + "type": "object", + "properties": { + "personIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "milestoneIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonBasicViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "emailVerifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isEmailVerified": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_PersonByIdRequestViewModel": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "resolvePreviouslyMergedRecords": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_PersonContactPreferenceDtoViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "isDeceased": { + "type": "boolean" + }, + "doNotMail": { + "type": "boolean", + "nullable": true + }, + "doNotText": { + "type": "boolean", + "nullable": true + }, + "doNotEmail": { + "type": "boolean", + "nullable": true + }, + "doNotContact": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonContactPreferenceViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "preferredMethod": { + "type": "string", + "nullable": true + }, + "doNotMail": { + "type": "boolean" + }, + "doNotPhone": { + "type": "boolean" + }, + "doNotText": { + "type": "boolean" + }, + "doNotEmail": { + "type": "boolean" + }, + "doNotContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_PersonDetailsLiteViewModel": { + "required": [ + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + }, + "nullable": true + }, + "age": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "allergies": { + "type": "string", + "nullable": true + }, + "birthDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "churchEntityKnown": { + "type": "boolean" + }, + "contactPreferences": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + }, + "deceasedDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "departmentChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentChurchEntityName": { + "type": "string", + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentName": { + "type": "string", + "nullable": true + }, + "disengagementReason": { + "type": "string", + "nullable": true + }, + "emails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + }, + "nullable": true + }, + "emergencyContacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmergencyContactViewModel" + }, + "nullable": true + }, + "firstContact": { + "$ref": "#/components/schemas/Core_PersonMilestoneDateLiteViewModel" + }, + "firstName": { + "type": "string" + }, + "fullName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "gradeLevel": { + "$ref": "#/components/schemas/Core_Model_GradeLevel" + }, + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isAdult": { + "type": "boolean", + "nullable": true + }, + "isChild": { + "type": "boolean", + "nullable": true + }, + "isStudent": { + "type": "boolean", + "nullable": true + }, + "lastName": { + "type": "string" + }, + "maritalStatus": { + "type": "string", + "nullable": true + }, + "maritalStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "membershipStatus": { + "type": "string", + "nullable": true + }, + "membershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + }, + "nullable": true + }, + "modifiedDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "occupations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + }, + "nullable": true + }, + "phones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + }, + "nullable": true + }, + "preferredServiceEventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "prefix": { + "type": "string", + "nullable": true + }, + "profilePhotoUrl": { + "type": "string", + "nullable": true + }, + "profilePictureUrl": { + "type": "string", + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonDocumentViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "filename": { + "type": "string", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "nullable": true + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "fileTitle": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonEmailViewModel": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "isPublic": { + "type": "boolean" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_PersonEmergencyContactViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "emergencyContactId": { + "type": "integer", + "format": "int32" + }, + "isPrimary": { + "type": "boolean" + }, + "emergencyContactMembershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "emergencyContactMembershipStatus": { + "type": "string", + "nullable": true + }, + "emergencyContactBirthDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "emergencyContactAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "emergencyContactRelationshipName": { + "type": "string", + "nullable": true + }, + "avatarUrl": { + "type": "string", + "nullable": true + }, + "emergencyContactPerson": { + "$ref": "#/components/schemas/Core_Model_PersonBasic" + }, + "emergencyContactEmails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonEmail" + }, + "nullable": true + }, + "emergencyContactPhones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_PersonPhone" + }, + "nullable": true + }, + "emergencyContactRelationship": { + "$ref": "#/components/schemas/Core_Model_PersonRelationship" + }, + "emergencyContactPreference": { + "$ref": "#/components/schemas/Core_Model_PersonContactPreference" + } + }, + "additionalProperties": false + }, + "Core_PersonLiteViewModel": { + "required": [ + "email", + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "email": { + "pattern": "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:|\\\\)+)\\])", + "type": "string" + }, + "emailVerifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isEmailVerified": { + "type": "boolean" + }, + "sourceClientId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonMilestoneDateLiteViewModel": { + "type": "object", + "properties": { + "date": { + "type": "integer", + "format": "int64" + }, + "location": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonMilestoneDateViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "integer", + "format": "int64" + }, + "location": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "document": { + "$ref": "#/components/schemas/Core_PersonDocumentViewModel" + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonDocumentViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonMilestoneViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "category": { + "$ref": "#/components/schemas/Core_Model_MilestoneCategory" + }, + "uiOrder": { + "type": "integer", + "format": "int32" + }, + "dates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonMilestoneDateViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonNoteSearchResultsViewModel": { + "type": "object", + "properties": { + "hasPinnedNotes": { + "type": "boolean" + }, + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_NoteViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonOccupationViewModel": { + "required": [ + "title" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "type": { + "type": "string", + "nullable": true + }, + "categoryId": { + "type": "integer", + "format": "int32" + }, + "category": { + "type": "string", + "nullable": true + }, + "company": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string" + }, + "isPrimary": { + "type": "boolean" + }, + "isStaff": { + "type": "boolean" + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentName": { + "type": "string", + "nullable": true + }, + "departmentChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentChurchEntityName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonPhoneViewModel": { + "required": [ + "phoneNumber" + ], + "type": "object", + "properties": { + "phoneTypeId": { + "type": "integer", + "format": "int32" + }, + "phoneType": { + "type": "string", + "nullable": true + }, + "phoneNumber": { + "maxLength": 20, + "minLength": 0, + "type": "string", + "format": "tel" + }, + "isPublic": { + "type": "boolean" + }, + "displayPhoneNumber": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "extension": { + "maxLength": 7, + "minLength": 0, + "pattern": "\\d*", + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_PersonPublicContactViewModel": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonSecurityRoleLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "scope": { + "$ref": "#/components/schemas/Core_Model_SecurityScope" + } + }, + "additionalProperties": false + }, + "Core_PersonSecuritySortaLiteViewModel": { + "type": "object", + "properties": { + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityKnown": { + "type": "boolean" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "photoUrl": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "fullName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "avatarUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonSecurityUltraLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "fullName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "avatarUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonServingOpportunityEligibilityViewModel": { + "type": "object", + "properties": { + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "eligibilityInfo": { + "$ref": "#/components/schemas/Core_Model_EligibilityInfo" + }, + "settings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunitySettingsDto" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PersonViewModel": { + "required": [ + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "addresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonAddressViewModel" + }, + "nullable": true + }, + "age": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "allergies": { + "type": "string", + "nullable": true + }, + "birthDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "cellPhone": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityKnown": { + "type": "boolean" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "deceasedDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "departmentChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentChurchEntityName": { + "type": "string", + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentName": { + "type": "string", + "nullable": true + }, + "disengagementReason": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "emails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonEmailViewModel" + }, + "nullable": true + }, + "firstContact": { + "$ref": "#/components/schemas/Core_PersonMilestoneDateLiteViewModel" + }, + "firstName": { + "type": "string" + }, + "fullName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "gradeLevel": { + "$ref": "#/components/schemas/Core_Model_GradeLevel" + }, + "homePhone": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isAdult": { + "type": "boolean", + "nullable": true + }, + "isChild": { + "type": "boolean", + "nullable": true + }, + "isStudent": { + "type": "boolean", + "nullable": true + }, + "lastName": { + "type": "string" + }, + "maritalStatus": { + "type": "string", + "nullable": true + }, + "maritalStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "membershipStatus": { + "type": "string", + "nullable": true + }, + "membershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonMilestoneViewModel" + }, + "nullable": true + }, + "modifiedDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "occupations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonOccupationViewModel" + }, + "nullable": true + }, + "phones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_PersonPhoneViewModel" + }, + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "preferredServiceEventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "prefix": { + "type": "string", + "nullable": true + }, + "primaryPhoneType": { + "type": "string", + "nullable": true + }, + "profilePhotoUrl": { + "type": "string", + "nullable": true + }, + "profilePictureUrl": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + }, + "workPhone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PhoneNumberViewModel": { + "type": "object", + "properties": { + "countryCode": { + "type": "string", + "nullable": true + }, + "displayPhoneNumber": { + "type": "string", + "nullable": true + }, + "phoneNumberURI": { + "type": "string", + "nullable": true + }, + "extension": { + "type": "string", + "nullable": true + }, + "isValid": { + "type": "boolean", + "readOnly": true + } + }, + "additionalProperties": false + }, + "Core_PublicContactsViewModel": { + "type": "object", + "properties": { + "emailId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "phoneId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PublicOccurrenceRequestViewModel_Core": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "timeZone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_PublicOccurrenceViewModelWithScheduleId_Core_V2": { + "type": "object", + "properties": { + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "localStartDateTime": { + "type": "string", + "format": "date-time" + }, + "localEndDateTime": { + "type": "string", + "format": "date-time" + }, + "utcStartDateTime": { + "type": "string", + "format": "date-time" + }, + "utcEndDateTime": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Core_QuestionAnswerChoiceViewModel": { + "required": [ + "label" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "questionId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string" + }, + "sortOrder": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_QuestionReclassificationRequestViewModel": { + "type": "object", + "properties": { + "questionId": { + "type": "integer", + "format": "int32" + }, + "newClassification": { + "$ref": "#/components/schemas/Core_Model_QuestionClassification" + } + }, + "additionalProperties": false + }, + "Core_QuestionSourceViewModel": { + "required": [ + "title" + ], + "type": "object", + "properties": { + "questionId": { + "type": "integer", + "format": "int32" + }, + "answerSourceId": { + "type": "integer", + "format": "int32" + }, + "answerSource": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Core_ResponseCardFieldChoiceViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "parentFieldId": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "labelPublic": { + "type": "string", + "nullable": true + }, + "sortOrder": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_ResponseCardFieldInfoViewModel": { + "type": "object", + "properties": { + "fieldId": { + "type": "integer", + "format": "int32" + }, + "fieldPredecessorId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fieldLabel": { + "type": "string", + "nullable": true + }, + "fieldType": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "subFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "subFieldPredecessorId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "subFieldLabel": { + "type": "string", + "nullable": true + }, + "sectionTitle": { + "type": "string", + "nullable": true + }, + "fieldChoices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ResponseCardFieldChoiceViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ScheduleSequenceViewModel_Core": { + "required": [ + "duration", + "startTime", + "timeZone" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "occurrenceStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timeZone": { + "type": "string" + }, + "isRecurring": { + "type": "boolean" + }, + "recurrenceFrequencyId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "recurrenceFrequency": { + "type": "string", + "nullable": true + }, + "dayOfWeek": { + "type": "integer", + "format": "int32" + }, + "startTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string" + }, + "duration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string" + }, + "monthEnabled": { + "type": "array", + "items": { + "type": "boolean" + }, + "nullable": true + }, + "interval": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true + }, + "canBeChanged": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ScheduleSequenceViewModel_Core_V2": { + "required": [ + "duration", + "startTime", + "timeZone" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "occurrenceStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timeZone": { + "type": "string" + }, + "isRecurring": { + "type": "boolean" + }, + "recurrenceFrequencyId": { + "type": "integer", + "format": "int32" + }, + "recurrenceFrequency": { + "type": "string", + "nullable": true + }, + "dayOfWeek": { + "$ref": "#/components/schemas/Core_App_IsoDayOfWeek" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "monthEnabled": { + "type": "array", + "items": { + "type": "boolean" + }, + "nullable": true + }, + "interval": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true + }, + "canBeChanged": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ScheduleVenueMetricViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "venueId": { + "type": "integer", + "format": "int32" + }, + "venueLocationName": { + "type": "string", + "nullable": true + }, + "metricCategoryId": { + "type": "integer", + "format": "int32" + }, + "metricCategory": { + "type": "string", + "nullable": true + }, + "metricAgeGroupId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "metricAgeGroup": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "sortOrder": { + "type": "integer", + "format": "int32" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ScheduleViewModel_Core": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer", + "format": "int32" + }, + "scheduleEntityTypeId": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "occurrencesCount": { + "maximum": 10000, + "minimum": 2, + "type": "integer", + "format": "int32", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "custom": { + "type": "boolean" + }, + "startDayOfWeek": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sequences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ScheduleSequenceViewModel_Core" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_SearchResultsViewModel_AnnouncementViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_AnnouncementViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_SearchResultsViewModel_ConnectionFormEntryViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ConnectionFormEntryViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_SearchResultsViewModel_SeriesSearchViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_SeriesSearchViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_SearchResultsViewModel_SeriesViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_SeriesViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_SearchResultsViewModel_ServiceTemplateViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_ServiceTemplateViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_SearchResultsViewModel_SongViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_App_SongViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityContactViewModel": { + "type": "object", + "properties": { + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "emailOverride": { + "type": "string", + "nullable": true + }, + "phoneOverride": { + "type": "string", + "nullable": true + }, + "personFirstName": { + "type": "string", + "nullable": true + }, + "personLastName": { + "type": "string", + "nullable": true + }, + "personEmail": { + "type": "string", + "nullable": true + }, + "personPhoneNumber": { + "type": "string", + "nullable": true + }, + "personPhoneNumberType": { + "$ref": "#/components/schemas/Core_Model_PhoneType" + }, + "personPhoneNumberTypeName": { + "type": "string", + "nullable": true + }, + "personGender": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityOccurrenceCapacityViewModel": { + "required": [ + "capacity" + ], + "type": "object", + "properties": { + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "capacity": { + "maximum": 500, + "minimum": 1, + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityScheduleCommitmentRequestViewModel": { + "type": "object", + "properties": { + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "commitmentType": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityScheduleCommitmentType" + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityScheduledVolunteersViewModel": { + "type": "object", + "properties": { + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "grandTotal": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "total": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "volunteers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunitySettingsViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "quantityNeeded": { + "type": "integer", + "format": "int32" + }, + "minAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxAge": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "disabledCommunicationTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityCommunicationType" + }, + "nullable": true + }, + "milestoneIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "eventRelativeData": { + "$ref": "#/components/schemas/Core_Model_EventRelativeDataClass" + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityVenueViewModel": { + "type": "object", + "properties": { + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "isPrivate": { + "type": "boolean" + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "venue": { + "$ref": "#/components/schemas/Core_VenueViewModel" + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityViewModel": { + "required": [ + "churchEntityId", + "ministryId", + "volunteerSettings" + ], + "type": "object", + "properties": { + "advertiseOnWeb": { + "type": "boolean", + "nullable": true, + "readOnly": true + }, + "communicationTemplates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityCommunicationTemplate" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 250, + "minLength": 0, + "type": "string", + "nullable": true + }, + "eventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "eventName": { + "type": "string", + "nullable": true + }, + "eventUrl": { + "maxLength": 2048, + "minLength": 0, + "type": "string", + "nullable": true + }, + "description": { + "maxLength": 2048, + "minLength": 0, + "type": "string", + "nullable": true + }, + "shortDescription": { + "maxLength": 140, + "minLength": 0, + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityStatus" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "scheduleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ministry": { + "$ref": "#/components/schemas/Core_MinistryViewModel" + }, + "venue": { + "$ref": "#/components/schemas/Core_VenueViewModel" + }, + "venueData": { + "$ref": "#/components/schemas/Core_VenueDataViewModel" + }, + "venueId": { + "type": "integer", + "format": "int32", + "nullable": true, + "deprecated": true + }, + "contacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityContactViewModel" + }, + "nullable": true + }, + "tagList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_TagViewModel" + }, + "nullable": true + }, + "schedule": { + "$ref": "#/components/schemas/Core_ScheduleViewModel_Core" + }, + "settings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunitySettingsViewModel" + }, + "nullable": true + }, + "occurrence": { + "$ref": "#/components/schemas/Core_OccurrenceViewModel_Core" + }, + "statistics": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityStatistics" + }, + "isClosedBySchedule": { + "type": "boolean" + }, + "isDraft": { + "type": "boolean" + }, + "isPublic": { + "type": "boolean", + "deprecated": true + }, + "isRecurring": { + "type": "boolean", + "nullable": true + }, + "isSelfCheckInEnabled": { + "type": "boolean" + }, + "verse": { + "type": "string", + "nullable": true + }, + "churchEntityAbbreviation": { + "type": "string", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "volunteerSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerSettingsViewModel" + } + }, + "publishType": { + "$ref": "#/components/schemas/Core_Model_PublishType" + }, + "publishTypeId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "publishedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "publishedChurchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "tenantUrl": { + "type": "string", + "nullable": true + }, + "webHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "companionAppHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "thumbnail": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "eligibility": { + "$ref": "#/components/schemas/Core_EligibilityInfoViewModel" + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityVolunteerExcludedOccurrenceViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "occurrenceDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityVolunteerScheduleCommitmentResponseViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "commitmentType": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityScheduleCommitmentType" + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "exclusions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVolunteerExcludedOccurrenceViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityVolunteerSettingsViewModel": { + "type": "object", + "properties": { + "signUpOptionId": { + "type": "integer", + "format": "int32" + }, + "signUpOptionName": { + "type": "string", + "nullable": true + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "signupAsAddToInterestedIfMissingRequirements": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_ServingOpportunityVolunteerViewModel": { + "required": [ + "personId", + "servingOpportunityId" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "commitmentType": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityScheduleCommitmentType" + }, + "status": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerStatus" + }, + "scheduleType": { + "$ref": "#/components/schemas/Core_Model_ServingOpportunityVolunteerScheduleType" + }, + "scheduleTypeId": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "statusName": { + "type": "string", + "nullable": true + }, + "sourceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sourceName": { + "type": "string", + "nullable": true + }, + "servingOpportunitySettingsId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isMinistryMember": { + "type": "boolean" + }, + "isActive": { + "type": "boolean" + }, + "minutesServed": { + "type": "integer", + "format": "int32" + }, + "person": { + "$ref": "#/components/schemas/Core_PersonViewModel" + }, + "contactPreferences": { + "$ref": "#/components/schemas/Core_PersonContactPreferenceViewModel" + }, + "eligibility": { + "$ref": "#/components/schemas/Core_EligibilityInfoViewModel" + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_MinistryGroupLiteViewModel" + }, + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceDate": { + "type": "string", + "nullable": true + }, + "dateAdded": { + "type": "string", + "format": "date-time" + }, + "smsEligibility": { + "$ref": "#/components/schemas/Core_App_SmsEligibilityViewModel" + } + }, + "additionalProperties": false + }, + "Core_SmsViewModel": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "recipientIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "message": { + "maxLength": 160, + "type": "string" + } + }, + "additionalProperties": false + }, + "Core_SubVenueViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "capacity": { + "type": "integer", + "format": "int32" + }, + "venueId": { + "type": "integer", + "format": "int32" + }, + "subVenueTypeId": { + "type": "integer", + "format": "int32" + }, + "subVenueType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_TagViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "categoryId": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "type": { + "type": "integer", + "format": "int32" + }, + "slug": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Core_TeamBasicViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_TemplateViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/Core_Model_TemplateType" + }, + "format": { + "$ref": "#/components/schemas/Core_Model_TemplateFormat" + }, + "name": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string", + "nullable": true + }, + "isSystem": { + "type": "boolean" + }, + "isRazor": { + "type": "boolean" + }, + "designData": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_UpdateSearchIndexRequestViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "model": { + "type": "string", + "nullable": true + }, + "operation": { + "$ref": "#/components/schemas/Core_App_IndexOperation" + } + }, + "additionalProperties": false + }, + "Core_VenueAddressViewModel": { + "required": [ + "address1", + "city" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "address1": { + "type": "string" + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string" + }, + "region": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_VenueDataViewModel": { + "type": "object", + "properties": { + "virtualUrl": { + "type": "string", + "nullable": true + }, + "offCampusVenue": { + "$ref": "#/components/schemas/Core_ServingOpportunityVenueViewModel" + }, + "onCampusVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_ServingOpportunityVenueViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Core_VenueViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "latitude": { + "maximum": 90, + "minimum": -90, + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "maximum": 180, + "minimum": -180, + "type": "number", + "format": "double", + "nullable": true + }, + "venueAddressId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "hasAssociation": { + "type": "boolean", + "nullable": true + }, + "venueAddress": { + "$ref": "#/components/schemas/Core_VenueAddressViewModel" + }, + "venueCapacity": { + "type": "integer", + "format": "int32" + }, + "totalVenueCapacity": { + "type": "integer", + "format": "int32" + }, + "subVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Core_SubVenueViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + } + } + } +} From b56e7fda1335975a3bbc73813863f5d142f771f8 Mon Sep 17 00:00:00 2001 From: Roman P Date: Thu, 9 Jun 2022 17:04:12 +0500 Subject: [PATCH 03/52] feat: add custom generator to generate only required models --- package-lock.json | 17310 +++++++++++++++++++++++++++++++++++- package.json | 1 + src/generate.ts | 122 + src/generateCustomSpec.ts | 26 +- src/index.ts | 123 +- test/index.js | 17 +- types/index.d.ts | 8 + 7 files changed, 17440 insertions(+), 167 deletions(-) create mode 100644 src/generate.ts diff --git a/package-lock.json b/package-lock.json index bd480e4c8..2fb29c3a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,17210 @@ { "name": "openapi-typescript-codegen", "version": "0.23.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "openapi-typescript-codegen", + "version": "0.23.0", + "license": "MIT", + "dependencies": { + "camelcase": "^6.3.0", + "commander": "^9.3.0", + "fs-extra": "^10.1.0", + "handlebars": "^4.7.7", + "json-schema-ref-parser": "^9.0.9" + }, + "bin": { + "openapi": "bin/index.js" + }, + "devDependencies": { + "@angular-devkit/build-angular": "13.3.7", + "@angular/animations": "13.3.10", + "@angular/cli": "13.3.7", + "@angular/common": "13.3.10", + "@angular/compiler": "13.3.10", + "@angular/compiler-cli": "13.3.10", + "@angular/core": "13.3.10", + "@angular/forms": "13.3.10", + "@angular/platform-browser": "13.3.10", + "@angular/platform-browser-dynamic": "13.3.10", + "@angular/router": "13.3.10", + "@babel/cli": "7.17.10", + "@babel/core": "7.18.2", + "@babel/preset-env": "7.18.2", + "@babel/preset-typescript": "7.17.12", + "@rollup/plugin-commonjs": "22.0.0", + "@rollup/plugin-node-resolve": "13.3.0", + "@rollup/plugin-typescript": "8.3.2", + "@types/cross-spawn": "6.0.2", + "@types/express": "4.17.13", + "@types/fs-extra": "^9.0.13", + "@types/glob": "7.2.0", + "@types/jest": "27.5.1", + "@types/node": "17.0.38", + "@types/node-fetch": "2.6.1", + "@types/qs": "6.9.7", + "@typescript-eslint/eslint-plugin": "5.27.0", + "@typescript-eslint/parser": "5.27.0", + "abort-controller": "3.0.0", + "axios": "0.27.2", + "codecov": "3.8.3", + "cross-spawn": "7.0.3", + "eslint": "8.16.0", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-prettier": "4.0.0", + "eslint-plugin-simple-import-sort": "7.0.0", + "express": "4.18.1", + "form-data": "4.0.0", + "glob": "8.0.3", + "jest": "28.1.0", + "jest-cli": "28.1.0", + "node-fetch": "2.6.7", + "prettier": "2.6.2", + "puppeteer": "14.1.2", + "qs": "6.10.3", + "rimraf": "3.0.2", + "rollup": "2.75.4", + "rollup-plugin-terser": "7.0.2", + "rxjs": "7.5.5", + "ts-node": "10.8.0", + "tslib": "2.4.0", + "typescript": "4.6.4", + "zone.js": "0.11.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1303.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.7.tgz", + "integrity": "sha512-xr35v7AuJygRdiaFhgoBSLN2ZMUri8x8Qx9jkmCkD3WLKz33TSFyAyqwdNNmOO9riK8ePXMH/QcSv0wY12pFBw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.7", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.7.tgz", + "integrity": "sha512-XUmiq/3zpuna+r0UOqNSvA9kEcPwsLblEmNLUYyZXL9v/aGWUHOSH0nhGVrNRrSud4ryklEnxfkxkxlZlT4mjQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.0", + "@angular-devkit/architect": "0.1303.7", + "@angular-devkit/build-webpack": "0.1303.7", + "@angular-devkit/core": "13.3.7", + "@babel/core": "7.16.12", + "@babel/generator": "7.16.8", + "@babel/helper-annotate-as-pure": "7.16.7", + "@babel/plugin-proposal-async-generator-functions": "7.16.8", + "@babel/plugin-transform-async-to-generator": "7.16.8", + "@babel/plugin-transform-runtime": "7.16.10", + "@babel/preset-env": "7.16.11", + "@babel/runtime": "7.16.7", + "@babel/template": "7.16.7", + "@discoveryjs/json-ext": "0.5.6", + "@ngtools/webpack": "13.3.7", + "ansi-colors": "4.1.1", + "babel-loader": "8.2.5", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.9.1", + "cacache": "15.3.0", + "circular-dependency-plugin": "5.2.2", + "copy-webpack-plugin": "10.2.1", + "core-js": "3.20.3", + "critters": "0.0.16", + "css-loader": "6.5.1", + "esbuild-wasm": "0.14.22", + "glob": "7.2.0", + "https-proxy-agent": "5.0.0", + "inquirer": "8.2.0", + "jsonc-parser": "3.0.0", + "karma-source-map-support": "1.4.0", + "less": "4.1.2", + "less-loader": "10.2.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.0", + "mini-css-extract-plugin": "2.5.3", + "minimatch": "3.0.5", + "open": "8.4.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "6.0.1", + "piscina": "3.2.0", + "postcss": "8.4.5", + "postcss-import": "14.0.2", + "postcss-loader": "6.2.1", + "postcss-preset-env": "7.2.3", + "regenerator-runtime": "0.13.9", + "resolve-url-loader": "5.0.0", + "rxjs": "6.6.7", + "sass": "1.49.9", + "sass-loader": "12.4.0", + "semver": "7.3.5", + "source-map-loader": "3.0.1", + "source-map-support": "0.5.21", + "stylus": "0.56.0", + "stylus-loader": "6.2.0", + "terser": "5.11.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.3.1", + "webpack": "5.70.0", + "webpack-dev-middleware": "5.3.0", + "webpack-dev-server": "4.7.3", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.14.22" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0 || ^13.3.0-rc.0", + "@angular/localize": "^13.0.0 || ^13.3.0-rc.0", + "@angular/service-worker": "^13.0.0 || ^13.3.0-rc.0", + "karma": "^6.3.0", + "ng-packagr": "^13.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=4.4.3 <4.7" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", + "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.12", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/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/@angular-devkit/build-angular/node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/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/@angular-devkit/build-angular/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1303.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.7.tgz", + "integrity": "sha512-5vF399cPdwuCbzbxS4yNGgChdAzEM0/By21P0uiqBcIe/Zxuz3IUPapjvcyhkAo5OTu+d7smY9eusLHqoq1WFQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1303.7", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/core": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.7.tgz", + "integrity": "sha512-Ucy4bJmlgCoBenuVeGMdtW9dE8+cD+guWCgqexsFIG21KJ/l0ShZEZ/dGC1XibzaIs1HbKiTr/T1MOjInCV1rA==", + "dev": true, + "dependencies": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/schematics": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.7.tgz", + "integrity": "sha512-6TKpFMwiiXmPhiVdbkSJrkBXj8n7SVVhsHl2GodDLVTb8OT3fxYIB9EU8Il07AMfDcjpydOcJduCFPOsQYd7BA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.7", + "jsonc-parser": "3.0.0", + "magic-string": "0.25.7", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular/animations": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.3.10.tgz", + "integrity": "sha512-V/0h3xepWPBRjWroFXYrNIE3iZPREjv0hiB3gskF/2KLlx5jvpUWlaBx0rEYRa8XXIPJyAaKBGwWSBnT/Z88TQ==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.3.10" + } + }, + "node_modules/@angular/cli": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.7.tgz", + "integrity": "sha512-XIp0w0YOwhHp4Je3npHAs0W4rjHvFnG2w/lDO2M/UNp5634S4PRMFmVVMt6DQBj1cbffYVKFqffqesyCqNuvAQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@angular-devkit/architect": "0.1303.7", + "@angular-devkit/core": "13.3.7", + "@angular-devkit/schematics": "13.3.7", + "@schematics/angular": "13.3.7", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.3", + "ini": "2.0.0", + "inquirer": "8.2.0", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.5", + "npm-pick-manifest": "6.1.1", + "open": "8.4.0", + "ora": "5.4.1", + "pacote": "12.0.3", + "resolve": "1.22.0", + "semver": "7.3.5", + "symbol-observable": "4.0.0", + "uuid": "8.3.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.10.tgz", + "integrity": "sha512-KWw91QzmCDZ6uq1Z58v7vQQ57Ux7A2UkPdIBOyvpOgtQPTvlvKsePkUVCC+dum+W9mOy4kq2falO5T7Gi7SJgw==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.3.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.3.10.tgz", + "integrity": "sha512-DEtdso89Q9lAGkSVpSf2GrMtGVTnCnenCwLhubYaeSaj4iA/CAnUfNlaYBf9E92ltuPd85Mg9bIJKaxYCRH8RQ==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.3.10.tgz", + "integrity": "sha512-cGFQyUOxOLVnehczdP4L7KXbKQTe/aQgbXmacQYgqcP/AnpJs7QfZbw1/k1wJtXrhzbGBh3JSWnpme74bnF3dQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.17.2", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.26.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/main-ngcc.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/compiler": "13.3.10", + "typescript": ">=4.4.2 <4.7" + } + }, + "node_modules/@angular/compiler-cli/node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/core": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.10.tgz", + "integrity": "sha512-7jH1a5wZdE6Ki2Dow7s6v1/5SfUcXsjAu3n523QSDlM078QG0p95npcqPseO9mNftG9MfRqBE7sl1Nb+ZK7eBg==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.11.4" + } + }, + "node_modules/@angular/forms": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.3.10.tgz", + "integrity": "sha512-2cREi8nvCdspYHk6KJ5xjIgq8Dgh/kfwPIVjpLQBZFNC03Q6GvOLVoVm8ye6ToOpQFjvjpjndqU93JXSLMANgA==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.10", + "@angular/core": "13.3.10", + "@angular/platform-browser": "13.3.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.10.tgz", + "integrity": "sha512-zi0FrA8zZRiHLBfKlfIxikG06wMF2KcSp6oqrIblrc1VrHgPRVRABz8vryH84lasDssjYdIS9AvbQnCCdgCzJA==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/animations": "13.3.10", + "@angular/common": "13.3.10", + "@angular/core": "13.3.10" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.10.tgz", + "integrity": "sha512-hygsEjTaS+VDUrBZZiRJFo5J7AHCS/EcAc1IWvb69EnVqA9RwqM4hWbuy3y/cmLEeHLLmRldIlS6xRPt8fTNQg==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.10", + "@angular/compiler": "13.3.10", + "@angular/core": "13.3.10", + "@angular/platform-browser": "13.3.10" + } + }, + "node_modules/@angular/router": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.10.tgz", + "integrity": "sha512-neGaeiHravXlCbNbyGJecwQyu/91Pj/E9/ohVFzBBE4V9BrNx9v7Ntc4ugqgpnrV2wtonPP7TQDqXxrPk4QVfg==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.10", + "@angular/core": "13.3.10", + "@angular/platform-browser": "13.3.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser/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/@apidevtools/json-schema-ref-parser/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/@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "node_modules/@babel/cli": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.17.10.tgz", + "integrity": "sha512-OygVO1M2J4yPMNOW9pb+I6kFGpQK77HmG44Oz3hg8xQIl5L/2zq+ZohwAdSaqYgVwM0SfmPHZHphH4wR8qzVYw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/cli/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@babel/cli/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/@babel/cli/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/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", + "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", + "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/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/@babel/generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/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/@babel/helper-create-class-features-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/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/@babel/helper-environment-visitor": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "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-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "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-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-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "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.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz", + "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", + "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", + "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/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/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/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/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", + "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", + "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", + "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.0", + "@babel/types": "^7.18.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "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/@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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz", + "integrity": "sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "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" + } + }, + "node_modules/@eslint/eslintrc/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/@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.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "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/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/@eslint/eslintrc/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/@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/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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/@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": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.0.tgz", + "integrity": "sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.0", + "jest-util": "^28.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/core": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.0.tgz", + "integrity": "sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.0", + "@jest/reporters": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.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": "^28.0.2", + "jest-config": "^28.1.0", + "jest-haste-map": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.0", + "jest-resolve-dependencies": "^28.1.0", + "jest-runner": "^28.1.0", + "jest-runtime": "^28.1.0", + "jest-snapshot": "^28.1.0", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "jest-watcher": "^28.1.0", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/core/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/@jest/core/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/@jest/core/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/@jest/core/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/@jest/environment": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.0.tgz", + "integrity": "sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "jest-mock": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.0.tgz", + "integrity": "sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA==", + "dev": true, + "dependencies": { + "expect": "^28.1.0", + "jest-snapshot": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.0.tgz", + "integrity": "sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.0.tgz", + "integrity": "sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "@sinonjs/fake-timers": "^9.1.1", + "@types/node": "*", + "jest-message-util": "^28.1.0", + "jest-mock": "^28.1.0", + "jest-util": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.0.tgz", + "integrity": "sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.0", + "@jest/expect": "^28.1.0", + "@jest/types": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.0.tgz", + "integrity": "sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "@jridgewell/trace-mapping": "^0.3.7", + "@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-util": "^28.1.0", + "jest-worker": "^28.1.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/schemas": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", + "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.23.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.0.2.tgz", + "integrity": "sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.7", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.0.tgz", + "integrity": "sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz", + "integrity": "sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer/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/@jest/transform": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.0.tgz", + "integrity": "sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.0", + "@jridgewell/trace-mapping": "^0.3.7", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "@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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, + "node_modules/@ngtools/webpack": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", + "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0", + "typescript": ">=4.4.3 <4.7", + "webpack": "^5.30.0" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": 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/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", + "dev": true + }, + "node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "dependencies": { + "infer-owner": "^1.0.4" + } + }, + "node_modules/@npmcli/run-script": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", + "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^8.2.0", + "read-package-json-fast": "^2.0.1" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", + "integrity": "sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0" + } + }, + "node_modules/@rollup/plugin-commonjs/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/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz", + "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0", + "tslib": "*", + "typescript": ">=3.7.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@schematics/angular": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.7.tgz", + "integrity": "sha512-OAny1e/yliku52xG7vfWs1hNYSgCNTPpMv9fS8zz9eF5/GrKv28WFSy20mUXqLZ91VsbGSs6X0mI6pdNnpVtJA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.7", + "@angular-devkit/schematics": "13.3.7", + "jsonc-parser": "3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", + "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@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.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cross-spawn": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.2.tgz", + "integrity": "sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.2.tgz", + "integrity": "sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "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": "27.5.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-fUy7YRpT+rHXto1YlL+J9rs0uLGyiqVt3ZOTQR+4ROc47yNl8WLdVLgUloBRhOxP1PZvguHl44T3H0wAWxahYQ==", + "dev": true, + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "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==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "17.0.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.38.tgz", + "integrity": "sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g==", + "dev": true + }, + "node_modules/@types/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", + "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@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/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "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/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz", + "integrity": "sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.0", + "@typescript-eslint/type-utils": "5.27.0", + "@typescript-eslint/utils": "5.27.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.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/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/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.0.tgz", + "integrity": "sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.0", + "@typescript-eslint/types": "5.27.0", + "@typescript-eslint/typescript-estree": "5.27.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/parser/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/@typescript-eslint/scope-manager": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz", + "integrity": "sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.27.0", + "@typescript-eslint/visitor-keys": "5.27.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.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz", + "integrity": "sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.27.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/type-utils/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/@typescript-eslint/types": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.0.tgz", + "integrity": "sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==", + "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.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz", + "integrity": "sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.27.0", + "@typescript-eslint/visitor-keys": "5.27.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/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/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.0.tgz", + "integrity": "sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.27.0", + "@typescript-eslint/types": "5.27.0", + "@typescript-eslint/typescript-estree": "5.27.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "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/visitor-keys": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz", + "integrity": "sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.27.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/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "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/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "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==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/agentkeepalive/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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": "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/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", + "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==", + "dev": true, + "engines": { + "node": ">=0.6.10" + } + }, + "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==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "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/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", + "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/babel-jest": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.0.tgz", + "integrity": "sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w==", + "dev": true, + "dependencies": { + "@jest/transform": "^28.1.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.0.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/babel-loader/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/babel-loader/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/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.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": "28.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz", + "integrity": "sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ==", + "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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/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/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.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": "28.0.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz", + "integrity": "sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^28.0.2", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, + "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.10.3", + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/bonjour/node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "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/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.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/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/cacache/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/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" + }, + "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": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001344", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", + "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "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/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/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "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/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "dev": true + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.1" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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/codecov": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", + "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", + "deprecated": "https://about.codecov.io/blog/codecov-uploader-deprecation-plan/", + "dev": true, + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.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": "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/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/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "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": "9.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", + "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/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/compression/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/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/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "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==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/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==", + "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/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", + "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/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/copy-webpack-plugin/node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", + "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.22.7", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.7.tgz", + "integrity": "sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/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/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true + }, + "node_modules/critters": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", + "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^4.2.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "postcss": "^8.3.7", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/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/critters/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/critters/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/critters/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/critters/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/critters/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/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "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/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", + "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "dev": true, + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssdb": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", + "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "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/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/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/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/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "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/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/devtools-protocol": { + "version": "0.0.982423", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.982423.tgz", + "integrity": "sha512-FnVW2nDbjGNw1uD/JRC+9U5768W7e1TfUwqbDTcSsAu1jXFjITSX8w3rkW5FEpHRMPPGpvNSmO1pOpqByiWscA==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "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/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=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==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.142", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.142.tgz", + "integrity": "sha512-ea8Q1YX0JRp4GylOmX4gFHIizi0j9GfRW4EkaHnkZp0agRCBB4ZGeCv17IEzIvBkiYVwfoKVhKZJbTfqCRdQdg==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "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/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", + "integrity": "sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.14.22", + "esbuild-darwin-64": "0.14.22", + "esbuild-darwin-arm64": "0.14.22", + "esbuild-freebsd-64": "0.14.22", + "esbuild-freebsd-arm64": "0.14.22", + "esbuild-linux-32": "0.14.22", + "esbuild-linux-64": "0.14.22", + "esbuild-linux-arm": "0.14.22", + "esbuild-linux-arm64": "0.14.22", + "esbuild-linux-mips64le": "0.14.22", + "esbuild-linux-ppc64le": "0.14.22", + "esbuild-linux-riscv64": "0.14.22", + "esbuild-linux-s390x": "0.14.22", + "esbuild-netbsd-64": "0.14.22", + "esbuild-openbsd-64": "0.14.22", + "esbuild-sunos-64": "0.14.22", + "esbuild-windows-32": "0.14.22", + "esbuild-windows-64": "0.14.22", + "esbuild-windows-arm64": "0.14.22" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.22.tgz", + "integrity": "sha512-k1Uu4uC4UOFgrnTj2zuj75EswFSEBK+H6lT70/DdS4mTAOfs2ECv2I9ZYvr3w0WL0T4YItzJdK7fPNxcPw6YmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.22.tgz", + "integrity": "sha512-d8Ceuo6Vw6HM3fW218FB6jTY6O3r2WNcTAU0SGsBkXZ3k8SDoRLd3Nrc//EqzdgYnzDNMNtrWegK2Qsss4THhw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.22.tgz", + "integrity": "sha512-YAt9Tj3SkIUkswuzHxkaNlT9+sg0xvzDvE75LlBo4DI++ogSgSmKNR6B4eUhU5EUUepVXcXdRIdqMq9ppeRqfw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.22.tgz", + "integrity": "sha512-ek1HUv7fkXMy87Qm2G4IRohN+Qux4IcnrDBPZGXNN33KAL0pEJJzdTv0hB/42+DCYWylSrSKxk3KUXfqXOoH4A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.22.tgz", + "integrity": "sha512-zPh9SzjRvr9FwsouNYTqgqFlsMIW07O8mNXulGeQx6O5ApgGUBZBgtzSlBQXkHi18WjrosYfsvp5nzOKiWzkjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.22.tgz", + "integrity": "sha512-SnpveoE4nzjb9t2hqCIzzTWBM0RzcCINDMBB67H6OXIuDa4KqFqaIgmTchNA9pJKOVLVIKd5FYxNiJStli21qg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz", + "integrity": "sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.22.tgz", + "integrity": "sha512-soPDdbpt/C0XvOOK45p4EFt8HbH5g+0uHs5nUKjHVExfgR7du734kEkXR/mE5zmjrlymk5AA79I0VIvj90WZ4g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.22.tgz", + "integrity": "sha512-8q/FRBJtV5IHnQChO3LHh/Jf7KLrxJ/RCTGdBvlVZhBde+dk3/qS9fFsUy+rs3dEi49aAsyVitTwlKw1SUFm+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.22.tgz", + "integrity": "sha512-SiNDfuRXhGh1JQLLA9JPprBgPVFOsGuQ0yDfSPTNxztmVJd8W2mX++c4FfLpAwxuJe183mLuKf7qKCHQs5ZnBQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.22.tgz", + "integrity": "sha512-6t/GI9I+3o1EFm2AyN9+TsjdgWCpg2nwniEhjm2qJWtJyJ5VzTXGUU3alCO3evopu8G0hN2Bu1Jhz2YmZD0kng==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.22.tgz", + "integrity": "sha512-AyJHipZKe88sc+tp5layovquw5cvz45QXw5SaDgAq2M911wLHiCvDtf/07oDx8eweCyzYzG5Y39Ih568amMTCQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.22.tgz", + "integrity": "sha512-Sz1NjZewTIXSblQDZWEFZYjOK6p8tV6hrshYdXZ0NHTjWE+lwxpOpWeElUGtEmiPcMT71FiuA9ODplqzzSxkzw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.22.tgz", + "integrity": "sha512-TBbCtx+k32xydImsHxvFgsOCuFqCTGIxhzRNbgSL1Z2CKhzxwT92kQMhxort9N/fZM2CkRCPPs5wzQSamtzEHA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.22.tgz", + "integrity": "sha512-vK912As725haT313ANZZZN+0EysEEQXWC/+YE4rQvOQzLuxAQc2tjbzlAFREx3C8+uMuZj/q7E5gyVB7TzpcTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.22.tgz", + "integrity": "sha512-/mbJdXTW7MTcsPhtfDsDyPEOju9EOABvCjeUU2OJ7fWpX/Em/H3WYDa86tzLUbcVg++BScQDzqV/7RYw5XNY0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.22.tgz", + "integrity": "sha512-FOSAM29GN1fWusw0oLMv6JYhoheDIh5+atC72TkJKfIUMID6yISlicoQSd9gsNSFsNBvABvtE2jR4JB1j4FkFw==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.22.tgz", + "integrity": "sha512-1vRIkuvPTjeSVK3diVrnMLSbkuE36jxA+8zGLUOrT4bb7E/JZvDRhvtbWXWaveUc/7LbhaNFhHNvfPuSw2QOQg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.22.tgz", + "integrity": "sha512-AxjIDcOmx17vr31C5hp20HIwz1MymtMjKqX4qL6whPj0dT9lwxPexmLj6G1CpR3vFhui6m75EnBEe4QL82SYqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.22.tgz", + "integrity": "sha512-5wvQ+39tHmRhNpu2Fx04l7QfeK3mQ9tKzDqqGR8n/4WUxsFxnVLfDRBGirIfk4AfWlxk60kqirlODPoT5LqMUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true + }, + "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/eslint": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "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.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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", + "v8-compile-cache": "^2.0.3" + }, + "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-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-simple-import-sort": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", + "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", + "dev": true, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.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/eslint/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/eslint/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/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/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/eslint/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/eslint/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/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/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/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/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.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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/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/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/eslint/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/eslint/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/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.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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/esquery/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/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/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "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", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "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": "28.1.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.0.tgz", + "integrity": "sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^28.1.0", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-util": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/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/expect/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/expect/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/expect/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/expect/node_modules/diff-sequences": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", + "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/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/expect/node_modules/jest-diff": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", + "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.0.2", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/jest-matcher-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", + "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/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/expect/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/expect/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/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "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.10.3", + "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/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/express/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/express/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==", + "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/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "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-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==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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", + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/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/find-cache-dir/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/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/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.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "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/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "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/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==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "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": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "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/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/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "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/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/globby/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/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "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/handlebars/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/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "node_modules/hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "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-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "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==", + "dev": true, + "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/http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "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/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "dependencies": { + "ms": "^2.0.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==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "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", + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.2.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true + }, + "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-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "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-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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "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/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "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-instrument/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/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-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "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/istanbul-lib-report/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/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.0.tgz", + "integrity": "sha512-TZR+tHxopPhzw3c3560IJXZWLNHgpcz1Zh0w5A65vynLGNcg/5pZ+VildAd7+XGOu6jd58XMY/HNn0IkZIXVXg==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.0", + "import-local": "^3.0.2", + "jest-cli": "^28.1.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz", + "integrity": "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.0.tgz", + "integrity": "sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.0", + "@jest/expect": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.0", + "jest-matcher-utils": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-runtime": "^28.1.0", + "jest-snapshot": "^28.1.0", + "jest-util": "^28.1.0", + "pretty-format": "^28.1.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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/jest-circus/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/jest-circus/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/jest-circus/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/jest-circus/node_modules/diff-sequences": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", + "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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/jest-circus/node_modules/jest-diff": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", + "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.0.2", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", + "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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/jest-circus/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-circus/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/jest-circus/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/jest-cli": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.0.tgz", + "integrity": "sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/types": "^28.1.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.0", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-config": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.0.tgz", + "integrity": "sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.0", + "@jest/types": "^28.1.0", + "babel-jest": "^28.1.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": "^28.1.0", + "jest-environment-node": "^28.1.0", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.0", + "jest-runner": "^28.1.0", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-config/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/jest-config/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-config/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/jest-config/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/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/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/jest-docblock": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.0.2.tgz", + "integrity": "sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.0.tgz", + "integrity": "sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.0", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/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/jest-each/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/jest-each/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/jest-each/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/jest-each/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/jest-each/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/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/jest-each/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-each/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/jest-environment-node": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.0.tgz", + "integrity": "sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.0", + "@jest/fake-timers": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "jest-mock": "^28.1.0", + "jest-util": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.0.tgz", + "integrity": "sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.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": "^28.0.2", + "jest-util": "^28.1.0", + "jest-worker": "^28.1.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz", + "integrity": "sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-leak-detector/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/jest-leak-detector/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/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/jest-message-util": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.0.tgz", + "integrity": "sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/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/jest-message-util/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-message-util/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/jest-message-util/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/jest-mock": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.0.tgz", + "integrity": "sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.0.tgz", + "integrity": "sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz", + "integrity": "sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g==", + "dev": true, + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-runner": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.0.tgz", + "integrity": "sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.0", + "@jest/environment": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.0.2", + "jest-environment-node": "^28.1.0", + "jest-haste-map": "^28.1.0", + "jest-leak-detector": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-resolve": "^28.1.0", + "jest-runtime": "^28.1.0", + "jest-util": "^28.1.0", + "jest-watcher": "^28.1.0", + "jest-worker": "^28.1.0", + "source-map-support": "0.5.13", + "throat": "^6.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/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/jest-runner/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/jest-runtime": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.0.tgz", + "integrity": "sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.0", + "@jest/fake-timers": "^28.1.0", + "@jest/globals": "^28.1.0", + "@jest/source-map": "^28.0.2", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-mock": "^28.1.0", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.0", + "jest-snapshot": "^28.1.0", + "jest-util": "^28.1.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-snapshot": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.0.tgz", + "integrity": "sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.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": "^28.1.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.0", + "jest-matcher-utils": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-util": "^28.1.0", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/node_modules/diff-sequences": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", + "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/node_modules/jest-diff": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", + "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.0.2", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", + "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-snapshot/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/jest-util": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.0.tgz", + "integrity": "sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-validate": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.0.tgz", + "integrity": "sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/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/jest-validate/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-validate/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/jest-watcher": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.0.tgz", + "integrity": "sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-worker": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.0.tgz", + "integrity": "sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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-schema-ref-parser": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "9.0.9" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "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/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/less": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", + "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/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==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/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/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "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/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "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==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "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/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/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/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/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", + "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", + "dev": true, + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "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", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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/mini-css-extract-plugin": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", + "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dev": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "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/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "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/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "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==", + "dev": true, + "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/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "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-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/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/node-gyp/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/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist/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/npm-packlist/node_modules/ignore-walk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist/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/npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/npm-registry-fetch": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", + "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^10.0.1", + "minipass": "^3.1.6", + "minipass-fetch": "^1.4.1", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^8.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/fs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", + "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm-registry-fetch/node_modules/cacache": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.0.tgz", + "integrity": "sha512-Pk4aQkwCW82A4jGKFvcGkQFqZcMspfP9YWq9Pr87/ldDvlWf718zeI6KWCdKt/jeihu6BytHRUicJPB1K2k8EQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz", + "integrity": "sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.6.tgz", + "integrity": "sha512-/iKDlRQF0fkxyB/w/duW2yRYrGwBcbJjC37ijgi0CmOZ32bzMc86BCSSAHWvuyRFCB408iBPziTSzazBSrKo3w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.1.1", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen/node_modules/minipass-fetch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", + "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm-registry-fetch/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.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/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "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==", + "dev": true, + "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": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "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/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/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/ora/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/ora/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/ora/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/ora/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/ora/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/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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-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-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz", + "integrity": "sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==", + "dev": true, + "dependencies": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^2.0.0", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^3.0.0", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^12.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "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": "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/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "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==", + "dev": true + }, + "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": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/piscina": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", + "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", + "dev": true, + "dependencies": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "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/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/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/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", + "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.2" + }, + "peerDependencies": { + "postcss": "^8.0.2" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz", + "integrity": "sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", + "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", + "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", + "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz", + "integrity": "sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", + "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.2" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", + "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", + "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", + "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", + "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-import": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", + "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "10.1.7", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.7.tgz", + "integrity": "sha512-Btho5XzDTpl117SmB3tvUHP8txg5n7Ayv7vQ5m4b1zXkfs1Y52C67uZjZ746h7QvOJ+rLRg50OlhhjFW+IQY6A==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "1.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", + "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", + "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", + "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", + "dev": true, + "dependencies": { + "autoprefixer": "^10.4.2", + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001299", + "css-blank-pseudo": "^3.0.2", + "css-has-pseudo": "^3.0.3", + "css-prefers-color-scheme": "^6.0.2", + "cssdb": "^5.0.0", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-color-functional-notation": "^4.2.1", + "postcss-color-hex-alpha": "^8.0.2", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.2", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.3", + "postcss-double-position-gradients": "^3.0.4", + "postcss-env-function": "^4.0.4", + "postcss-focus-visible": "^6.0.3", + "postcss-focus-within": "^5.0.3", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.2", + "postcss-image-set-function": "^4.0.4", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.0.3", + "postcss-logical": "^5.0.3", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.2", + "postcss-overflow-shorthand": "^3.0.2", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.3", + "postcss-pseudo-class-any-link": "^7.0.2", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz", + "integrity": "sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/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/prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/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==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true + }, + "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==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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/puppeteer": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-14.1.2.tgz", + "integrity": "sha512-Nsyy1f7pT2KyBb15u8DHi4q3FfrIqOptAV0r4Bd1lAp2pHz8T0o4DO+On1yWZ7jFbcx1w3AqZ/e7nKqnc3Vwyg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.982423", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.6.0" + }, + "engines": { + "node": ">=14.1.0" + } + }, + "node_modules/puppeteer/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/puppeteer/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==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "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/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "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/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "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-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "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/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "2.75.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.4.tgz", + "integrity": "sha512-JgZiJMJkKImMZJ8ZY1zU80Z2bA/TvrL/7D9qcBCrfl2bP+HUaIw0QHUroB4E3gBpFl6CRFM1YxGbuYGtdAswbQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/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/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/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/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.49.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", + "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", + "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/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/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/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/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/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/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/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/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dev": true, + "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/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "dev": true, + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/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/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dev": true, + "dependencies": { + "stubs": "^3.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/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==", + "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/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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "dev": true + }, + "node_modules/stylus": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", + "integrity": "sha512-Ev3fOb4bUElwWu4F9P9WjnnaSpc8XB9OFHSFZSKMFL1CE1oM+oFXWEgAqPmmZIyhBihuqIQlFsVTypiiS9RxeA==", + "dev": true, + "dependencies": { + "css": "^3.0.0", + "debug": "^4.3.2", + "glob": "^7.1.6", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", + "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "klona": "^2.0.4", + "normalize-path": "^3.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "stylus": ">=0.52.4", + "webpack": "^5.0.0" + } + }, + "node_modules/stylus/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/stylus/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/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/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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/supports-hyperlinks/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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/teeny-request": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", + "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", + "dev": true, + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", + "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", + "dev": true, + "dependencies": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-webpack-plugin/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/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "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==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-node": { + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.0.tgz", + "integrity": "sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==", + "dev": true, + "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": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "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/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "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", + "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==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.15.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", + "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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/urlgrey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", + "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "dev": true, + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "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==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz", + "integrity": "sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.7", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "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/watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "node_modules/webpack": { + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", + "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.2.2", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", + "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.2.2", + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.2", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "webpack-dev-middleware": "^5.3.0", + "ws": "^8.1.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "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/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "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/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "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/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "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.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/zone.js": { + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.5.tgz", + "integrity": "sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + } + } + }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", @@ -1875,7 +19077,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz", "integrity": "sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw==", - "dev": true + "dev": true, + "requires": {} }, "@discoveryjs/json-ext": { "version": "0.5.6", @@ -2612,7 +19815,8 @@ "version": "13.3.7", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", - "dev": true + "dev": true, + "requires": {} }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", @@ -3591,13 +20795,15 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true + "dev": true, + "requires": {} }, "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 + "dev": true, + "requires": {} }, "acorn-walk": { "version": "8.2.0", @@ -4387,7 +21593,8 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true + "dev": true, + "requires": {} }, "cjs-module-lexer": { "version": "1.2.2", @@ -4894,7 +22101,8 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true + "dev": true, + "requires": {} }, "css-select": { "version": "4.3.0", @@ -5663,7 +22871,8 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-prettier": { "version": "4.0.0", @@ -5678,7 +22887,8 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", - "dev": true + "dev": true, + "requires": {} }, "eslint-scope": { "version": "5.1.1", @@ -6739,7 +23949,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "requires": {} }, "ieee754": { "version": "1.2.1", @@ -8022,7 +25233,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "28.0.2", @@ -10205,7 +27417,8 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "dev": true + "dev": true, + "requires": {} }, "postcss-custom-properties": { "version": "12.1.7", @@ -10275,13 +27488,15 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true + "dev": true, + "requires": {} }, "postcss-gap-properties": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-image-set-function": { "version": "4.0.6", @@ -10307,7 +27522,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-lab-function": { "version": "4.2.0", @@ -10334,19 +27550,22 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true + "dev": true, + "requires": {} }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -10391,13 +27610,15 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "dev": true + "dev": true, + "requires": {} }, "postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-place": { "version": "7.0.4", @@ -10462,7 +27683,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-selector-not": { "version": "5.0.0", @@ -11130,7 +28352,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "json-schema-traverse": { "version": "0.4.1", @@ -11544,6 +28767,23 @@ "stubs": "^3.0.0" } }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -11565,23 +28805,6 @@ "strip-ansi": "^6.0.1" } }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11838,7 +29061,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "has-flag": { "version": "4.0.0", @@ -12330,7 +29554,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "json-schema-traverse": { "version": "0.4.1", @@ -12594,7 +29819,8 @@ "version": "8.6.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "dev": true + "dev": true, + "requires": {} }, "y18n": { "version": "5.0.8", diff --git a/package.json b/package.json index 390ea3dc3..1531061d7 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "release": "rollup --config --environment NODE_ENV:production", "validate": "tsc --project tsconfig.json --noEmit", "run": "node ./test/index.js", + "cleanRun": "npm run clean && npm run build && npm run run", "test": "jest --selectProjects UNIT", "test:update": "jest --selectProjects UNIT --updateSnapshot", "test:watch": "jest --selectProjects UNIT --watch", diff --git a/src/generate.ts b/src/generate.ts new file mode 100644 index 000000000..e5e805ec8 --- /dev/null +++ b/src/generate.ts @@ -0,0 +1,122 @@ +import { HttpClient } from './HttpClient'; +import { Indent } from './Indent'; +import { parse as parseV2 } from './openApi/v2'; +import { parse as parseV3 } from './openApi/v3'; +import { getOpenApiSpec } from './utils/getOpenApiSpec'; +import { getOpenApiVersion, OpenApiVersion } from './utils/getOpenApiVersion'; +import { isString } from './utils/isString'; +import { postProcessClient } from './utils/postProcessClient'; +import { registerHandlebarTemplates } from './utils/registerHandlebarTemplates'; +import { writeClient } from './utils/writeClient'; + +export type Options = { + input: string | Record; + output: string; + httpClient?: HttpClient; + clientName?: string; + useOptions?: boolean; + useUnionTypes?: boolean; + exportCore?: boolean; + exportServices?: boolean; + exportModels?: boolean; + exportSchemas?: boolean; + indent?: Indent; + postfix?: string; + request?: string; + write?: boolean; + exportModelsFileExtension?: string; +}; +/** + * Generate the OpenAPI client. This method will read the OpenAPI specification and based on the + * given language it will generate the client, including the typed models, validation schemas, + * service layer, etc. + * @param input The relative location of the OpenAPI spec + * @param output The relative location of the output directory + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param clientName Custom client class name + * @param useOptions Use options or arguments functions + * @param useUnionTypes Use union types instead of enums + * @param exportCore Generate core client classes + * @param exportServices Generate services + * @param exportModels Generate models + * @param exportSchemas Generate schemas + * @param indent Indentation options (4, 2 or tab) + * @param postfix Service name postfix + * @param request Path to custom request file + * @param write Write the files to disk (true or false) + * @param exportModelsFileExtension File extension for models .ts as default + */ +export const generate = async ({ + input, + output, + httpClient = HttpClient.FETCH, + clientName, + useOptions = false, + useUnionTypes = false, + exportCore = true, + exportServices = true, + exportModels = true, + exportSchemas = false, + indent = Indent.SPACE_4, + postfix = 'Service', + request, + write = true, +}: Options): Promise => { + const openApi = isString(input) ? await getOpenApiSpec(input) : input; + const openApiVersion = getOpenApiVersion(openApi); + const templates = registerHandlebarTemplates({ + httpClient, + useUnionTypes, + useOptions, + }); + + switch (openApiVersion) { + case OpenApiVersion.V2: { + const client = parseV2(openApi); + const clientFinal = postProcessClient(client); + if (!write) break; + await writeClient( + clientFinal, + templates, + output, + httpClient, + useOptions, + useUnionTypes, + exportCore, + exportServices, + exportModels, + exportSchemas, + indent, + postfix, + clientName, + request + ); + break; + } + + case OpenApiVersion.V3: { + const client = parseV3(openApi); + const clientFinal = postProcessClient(client); + if (!write) break; + await writeClient( + clientFinal, + templates, + output, + httpClient, + useOptions, + useUnionTypes, + exportCore, + exportServices, + exportModels, + exportSchemas, + indent, + postfix, + clientName, + request + ); + break; + } + } +}; + +export default generate; diff --git a/src/generateCustomSpec.ts b/src/generateCustomSpec.ts index e22160c88..c0b4af96f 100644 --- a/src/generateCustomSpec.ts +++ b/src/generateCustomSpec.ts @@ -1,3 +1,4 @@ +import { generate, Options } from './generate'; import { OpenApi } from './openApi/v3/interfaces/OpenApi'; import { OpenApiMediaType } from './openApi/v3/interfaces/OpenApiMediaType'; import { OpenApiOperation } from './openApi/v3/interfaces/OpenApiOperation'; @@ -7,7 +8,13 @@ import { OpenApiServer } from './openApi/v3/interfaces/OpenApiServer'; import { getOpenApiSpec } from './utils/getOpenApiSpec'; import { Dictionary } from './utils/types'; -export const generateCustomSpec = async (gen: any, input: string, output: string, config: Record) => { +type Config = Options & { + filterMethod: 'greedy' | 'ascetic'; + filterArray: string[]; + input: string; +}; + +export const generateCustomSpec = async (config: Config) => { const getSchemaRefFromContent = (content: OpenApiMediaType): string => { let ref: string = ''; @@ -16,15 +23,20 @@ export const generateCustomSpec = async (gen: any, input: string, output: string return ref.split('/').slice(-1)[0]; }; - const list: OpenApi = await getOpenApiSpec(input); + const list: OpenApi = await getOpenApiSpec(config.input); - const requiredPathsList: string[] = ['/api/agreement', '/api/agreement/{id}']; + // const filterArray: string[] = ['/api/agreement', '/api/agreement/{id}']; const requiredPaths: OpenApi['paths'] = {}; for (const path in list.paths) { - if (requiredPathsList.some(it => it === path)) { - requiredPaths[path] = list.paths[path]; + if (!list.paths.hasOwnProperty(path)) return; + + if (config.filterMethod === 'ascetic') { + if (config.filterArray.some(it => it === path)) requiredPaths[path] = list.paths[path]; + } + if (config.filterMethod === 'greedy') { + if (!config.filterArray.some(it => it === path)) requiredPaths[path] = list.paths[path]; } } @@ -84,5 +96,7 @@ export const generateCustomSpec = async (gen: any, input: string, output: string }, }; - await gen(listWithRequiredPaths, output); + await generate({ ...config, input: listWithRequiredPaths }); }; + +export default generateCustomSpec; diff --git a/src/index.ts b/src/index.ts index 0e50bba71..621559354 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,128 +1,15 @@ +import { generate } from './generate'; +import { generateCustomSpec } from './generateCustomSpec'; import { HttpClient } from './HttpClient'; import { Indent } from './Indent'; -import { parse as parseV2 } from './openApi/v2'; -import { parse as parseV3 } from './openApi/v3'; -import { getOpenApiSpec } from './utils/getOpenApiSpec'; -import { getOpenApiVersion, OpenApiVersion } from './utils/getOpenApiVersion'; -import { isString } from './utils/isString'; -import { postProcessClient } from './utils/postProcessClient'; -import { registerHandlebarTemplates } from './utils/registerHandlebarTemplates'; -import { writeClient } from './utils/writeClient'; -export { generateCustomSpec } from './generateCustomSpec'; +export { generateCustomSpec }; +export { generate }; export { HttpClient } from './HttpClient'; export { Indent } from './Indent'; -export type Options = { - input: string | Record; - output: string; - httpClient?: HttpClient; - clientName?: string; - useOptions?: boolean; - useUnionTypes?: boolean; - exportCore?: boolean; - exportServices?: boolean; - exportModels?: boolean; - exportSchemas?: boolean; - indent?: Indent; - postfix?: string; - request?: string; - write?: boolean; -}; - -/** - * Generate the OpenAPI client. This method will read the OpenAPI specification and based on the - * given language it will generate the client, including the typed models, validation schemas, - * service layer, etc. - * @param input The relative location of the OpenAPI spec - * @param output The relative location of the output directory - * @param httpClient The selected httpClient (fetch, xhr, node or axios) - * @param clientName Custom client class name - * @param useOptions Use options or arguments functions - * @param useUnionTypes Use union types instead of enums - * @param exportCore Generate core client classes - * @param exportServices Generate services - * @param exportModels Generate models - * @param exportSchemas Generate schemas - * @param indent Indentation options (4, 2 or tab) - * @param postfix Service name postfix - * @param request Path to custom request file - * @param write Write the files to disk (true or false) - */ -export const generate = async ({ - input, - output, - httpClient = HttpClient.FETCH, - clientName, - useOptions = false, - useUnionTypes = false, - exportCore = true, - exportServices = true, - exportModels = true, - exportSchemas = false, - indent = Indent.SPACE_4, - postfix = 'Service', - request, - write = true, -}: Options): Promise => { - const openApi = isString(input) ? await getOpenApiSpec(input) : input; - const openApiVersion = getOpenApiVersion(openApi); - const templates = registerHandlebarTemplates({ - httpClient, - useUnionTypes, - useOptions, - }); - - switch (openApiVersion) { - case OpenApiVersion.V2: { - const client = parseV2(openApi); - const clientFinal = postProcessClient(client); - if (!write) break; - await writeClient( - clientFinal, - templates, - output, - httpClient, - useOptions, - useUnionTypes, - exportCore, - exportServices, - exportModels, - exportSchemas, - indent, - postfix, - clientName, - request - ); - break; - } - - case OpenApiVersion.V3: { - const client = parseV3(openApi); - const clientFinal = postProcessClient(client); - if (!write) break; - await writeClient( - clientFinal, - templates, - output, - httpClient, - useOptions, - useUnionTypes, - exportCore, - exportServices, - exportModels, - exportSchemas, - indent, - postfix, - clientName, - request - ); - break; - } - } -}; - export default { HttpClient, generate, + generateCustomSpec, }; diff --git a/test/index.js b/test/index.js index e45af4efb..102a0930d 100644 --- a/test/index.js +++ b/test/index.js @@ -59,7 +59,22 @@ const generateRealWorldSpecs = async () => { const main = async () => { await generate('./test/spec/v2.json', './test/generated/v2/'); await generate('./test/spec/v3.json', './test/generated/v3/'); - await OpenAPI.generateCustomSpec(generate, './test/spec/saddlebackApi.json', './test/generated/saddleback/'); + await OpenAPI.generateCustomSpec({ + input: './test/spec/saddlebackApi.json', + output: './test/generated/saddleback/', + httpClient: 'axios', + clientName: 'TestAxiosClassName', + useOptions: true, + useUnionTypes: false, + exportCore: true, + exportServices: true, + exportModels: true, + exportSchemas: false, + indent: '4', + postfix: '', + filterMethod: 'greedy', + filterArray: ['/api/agreement', '/api/agreement/{id}'], + }); // await generateRealWorldSpecs(); }; diff --git a/types/index.d.ts b/types/index.d.ts index 7bbad057f..47fb33903 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -29,12 +29,20 @@ export type Options = { write?: boolean; }; +export type CustomConfig = Options & { + filterMethod: 'greedy' | 'ascetic'; + filterArray: string[]; + input: string; +}; + export declare function generate(options: Options): Promise; +export declare function generateCustomSpec(config: CustomConfig): Promise; declare type OpenAPI = { HttpClient: HttpClient; Indent: Indent; generate: typeof generate; + generateCustomSpec: typeof generateCustomSpec; }; export default OpenAPI; From f552dd2d589c7d171fab59fe6c66a5e27435958e Mon Sep 17 00:00:00 2001 From: Roman P Date: Thu, 9 Jun 2022 18:42:33 +0500 Subject: [PATCH 04/52] fix: include to required models which reference from models --- src/generateCustomSpec.ts | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/generateCustomSpec.ts b/src/generateCustomSpec.ts index c0b4af96f..426121a2f 100644 --- a/src/generateCustomSpec.ts +++ b/src/generateCustomSpec.ts @@ -15,12 +15,31 @@ type Config = Options & { }; export const generateCustomSpec = async (config: Config) => { + const getNameFromRef = (ref: string): string => { + return ref.split('/').slice(-1)[0]; + }; + const getSchemaRefFromContent = (content: OpenApiMediaType): string => { let ref: string = ''; ref = content.$ref || content.schema?.$ref || content.schema?.items?.$ref || ''; - return ref.split('/').slice(-1)[0]; + return getNameFromRef(ref); + }; + + const recursiveAddAllUnknownModels = (modelName: string): void => { + const model = list.components?.schemas ? list.components.schemas[modelName] : undefined; + if (model === undefined) return; + + for (const property in model.properties) { + const ref = model.properties[property].$ref || model.properties[property].items?.$ref || ''; + const modelName = getNameFromRef(ref); + + if (!requiredSchemasSet.has(modelName)) { + requiredSchemasSet.add(modelName); + recursiveAddAllUnknownModels(modelName); + } + } }; const list: OpenApi = await getOpenApiSpec(config.input); @@ -57,9 +76,12 @@ export const generateCustomSpec = async (config: Config) => { if (!('url' in requestMethodData)) { if ('parameters' in requestMethodData) { // add schemas from {apiPath}/{method}/parameters - requestMethodData.parameters?.forEach(parameter => - requiredSchemasSet.add(getSchemaRefFromContent(parameter)) - ); + requestMethodData.parameters?.forEach(parameter => { + const modelName = getSchemaRefFromContent(parameter); + + requiredSchemasSet.add(modelName); + recursiveAddAllUnknownModels(modelName); + }); } if ('responses' in requestMethodData) { const responsesCodeData = Object.values(requestMethodData.responses); @@ -69,7 +91,10 @@ export const generateCustomSpec = async (config: Config) => { // add schemas from {apiPath}/{method}/responses/{responseType}/content contentTypeData.forEach(content => { + const modelName = getSchemaRefFromContent(content); + requiredSchemasSet.add(getSchemaRefFromContent(content)); + recursiveAddAllUnknownModels(modelName); }); }); } From 42307bb89a92350c5dc8249577dc1fdb03b5fc97 Mon Sep 17 00:00:00 2001 From: Roman P Date: Thu, 9 Jun 2022 18:44:34 +0500 Subject: [PATCH 05/52] feat: add .models extension to file names --- src/templates/exportModel.hbs | 2 +- src/utils/writeClientModels.ts | 2 +- test/index.js | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/templates/exportModel.hbs b/src/templates/exportModel.hbs index 7ddb2c3e8..a2c7012f7 100644 --- a/src/templates/exportModel.hbs +++ b/src/templates/exportModel.hbs @@ -3,7 +3,7 @@ {{#if imports}} {{#each imports}} -import type { {{{this}}} } from './{{{this}}}'; +import type { {{{this}}} } from './{{{this}}}.models'; {{/each}} {{/if}} diff --git a/src/utils/writeClientModels.ts b/src/utils/writeClientModels.ts index 997569b9f..a28f35773 100644 --- a/src/utils/writeClientModels.ts +++ b/src/utils/writeClientModels.ts @@ -26,7 +26,7 @@ export const writeClientModels = async ( indent: Indent ): Promise => { for (const model of models) { - const file = resolve(outputPath, `${model.name}.ts`); + const file = resolve(outputPath, `${model.name}.models.ts`); const templateResult = templates.exports.model({ ...model, httpClient, diff --git a/test/index.js b/test/index.js index 102a0930d..60ef4ede1 100644 --- a/test/index.js +++ b/test/index.js @@ -57,8 +57,8 @@ const generateRealWorldSpecs = async () => { }; const main = async () => { - await generate('./test/spec/v2.json', './test/generated/v2/'); - await generate('./test/spec/v3.json', './test/generated/v3/'); + // await generate('./test/spec/v2.json', './test/generated/v2/'); + // await generate('./test/spec/v3.json', './test/generated/v3/'); await OpenAPI.generateCustomSpec({ input: './test/spec/saddlebackApi.json', output: './test/generated/saddleback/', @@ -72,7 +72,7 @@ const main = async () => { exportSchemas: false, indent: '4', postfix: '', - filterMethod: 'greedy', + filterMethod: 'ascetic', filterArray: ['/api/agreement', '/api/agreement/{id}'], }); // await generateRealWorldSpecs(); From c1fa4d066cd2ec1b38fc93b6127f55338309c120 Mon Sep 17 00:00:00 2001 From: Roman P Date: Thu, 9 Jun 2022 19:58:19 +0400 Subject: [PATCH 06/52] feat: add .models extension to file names --- src/templates/client.hbs | 2 +- src/templates/exportService.hbs | 2 +- src/templates/index.hbs | 10 +++++----- src/utils/writeClientServices.ts | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/templates/client.hbs b/src/templates/client.hbs index 601f27d8f..098e26096 100644 --- a/src/templates/client.hbs +++ b/src/templates/client.hbs @@ -16,7 +16,7 @@ import { {{{httpRequest}}} } from './core/{{{httpRequest}}}'; {{#if services}} {{#each services}} -import { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}'; +import { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}.service'; {{/each}} {{/if}} diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index 2fdd9af58..c40e1bc79 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -13,7 +13,7 @@ import type { Observable } from 'rxjs'; {{/equals}} {{#if imports}} {{#each imports}} -import type { {{{this}}} } from '../models/{{{this}}}'; +import type { {{{this}}} } from '../models/{{{this}}}.models'; {{/each}} {{/if}} diff --git a/src/templates/index.hbs b/src/templates/index.hbs index 72544d7db..7989a76bf 100644 --- a/src/templates/index.hbs +++ b/src/templates/index.hbs @@ -18,13 +18,13 @@ export type { OpenAPIConfig } from './core/OpenAPI'; {{#each models}} {{#if @root.useUnionTypes}} -export type { {{{name}}} } from './models/{{{name}}}'; +export type { {{{name}}} } from './models/{{{name}}}.models'; {{else if enum}} -export { {{{name}}} } from './models/{{{name}}}'; +export { {{{name}}} } from './models/{{{name}}}.models'; {{else if enums}} -export { {{{name}}} } from './models/{{{name}}}'; +export { {{{name}}} } from './models/{{{name}}}.models'; {{else}} -export type { {{{name}}} } from './models/{{{name}}}'; +export type { {{{name}}} } from './models/{{{name}}}.models'; {{/if}} {{/each}} {{/if}} @@ -41,7 +41,7 @@ export { ${{{name}}} } from './schemas/${{{name}}}'; {{#if services}} {{#each services}} -export { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}'; +export { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}.service'; {{/each}} {{/if}} {{/if}} diff --git a/src/utils/writeClientServices.ts b/src/utils/writeClientServices.ts index 2f95341d2..661b76e39 100644 --- a/src/utils/writeClientServices.ts +++ b/src/utils/writeClientServices.ts @@ -33,7 +33,7 @@ export const writeClientServices = async ( clientName?: string ): Promise => { for (const service of services) { - const file = resolve(outputPath, `${service.name}${postfix}.ts`); + const file = resolve(outputPath, `${service.name}${postfix}.service.ts`); const templateResult = templates.exports.service({ ...service, httpClient, From 8e4d97c45b2323946e034fe5b769569f047d9ee7 Mon Sep 17 00:00:00 2001 From: Roman P Date: Tue, 14 Jun 2022 11:58:10 +0500 Subject: [PATCH 07/52] feat: add pascalCase helper --- rollup.config.js | 1 + src/utils/registerHandlebarHelpers.spec.ts | 1 + src/utils/registerHandlebarHelpers.ts | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/rollup.config.js b/rollup.config.js index d563874c3..cb5bc6469 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -37,6 +37,7 @@ const handlebarsPlugin = () => ({ escapeComment: true, escapeDescription: true, camelCase: true, + pascalCase: true, }, }); return `export default ${templateSpec};`; diff --git a/src/utils/registerHandlebarHelpers.spec.ts b/src/utils/registerHandlebarHelpers.spec.ts index f8347abdb..c2a041280 100644 --- a/src/utils/registerHandlebarHelpers.spec.ts +++ b/src/utils/registerHandlebarHelpers.spec.ts @@ -21,5 +21,6 @@ describe('registerHandlebarHelpers', () => { expect(helpers).toContain('escapeComment'); expect(helpers).toContain('escapeDescription'); expect(helpers).toContain('camelCase'); + expect(helpers).toContain('pascalCase'); }); }); diff --git a/src/utils/registerHandlebarHelpers.ts b/src/utils/registerHandlebarHelpers.ts index 88f47c19b..c1d4e3174 100644 --- a/src/utils/registerHandlebarHelpers.ts +++ b/src/utils/registerHandlebarHelpers.ts @@ -104,4 +104,8 @@ export const registerHandlebarHelpers = (root: { Handlebars.registerHelper('camelCase', function (value: string): string { return camelCase(value); }); + + Handlebars.registerHelper('pascalCase', function (value: string): string { + return camelCase(value, { pascalCase: true }); + }); }; From e2a606ec465c8a5ea692a79cfa15f23946b2dea4 Mon Sep 17 00:00:00 2001 From: Roman P Date: Tue, 14 Jun 2022 11:59:38 +0500 Subject: [PATCH 08/52] feat: add the saddleback layout for generate custom services --- src/templates/exportSaddlebackService.hbs | 74 +++++++++++++++++++ .../partials/saddlebackParameters.hbs | 73 ++++++++++++++++++ src/utils/registerHandlebarTemplates.ts | 5 ++ src/utils/writeClient.spec.ts | 1 + src/utils/writeClient.ts | 19 +++++ src/utils/writeClientClass.spec.ts | 1 + src/utils/writeClientCore.spec.ts | 1 + src/utils/writeClientIndex.spec.ts | 1 + src/utils/writeClientModels.spec.ts | 1 + src/utils/writeClientSchemas.spec.ts | 1 + src/utils/writeClientServices.spec.ts | 1 + src/utils/writeSaddlebackClientServices.ts | 47 ++++++++++++ test/index.js | 4 +- 13 files changed, 227 insertions(+), 2 deletions(-) create mode 100644 src/templates/exportSaddlebackService.hbs create mode 100644 src/templates/partials/saddlebackParameters.hbs create mode 100644 src/utils/writeSaddlebackClientServices.ts diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs new file mode 100644 index 000000000..8ec85a50d --- /dev/null +++ b/src/templates/exportSaddlebackService.hbs @@ -0,0 +1,74 @@ +{{#if imports}} +{{#each imports}} +import type { {{{this}}} } from '../models/{{{this}}}.models'; +{{/each}} +{{/if}} +import axios, { + AxiosError, + AxiosResponse, +} from 'axios'; +import serviceError from 'global/api/serviceError'; +import getBaseConfig from 'global/api/getBaseConfig'; + +{{#each operations}} +/** +{{#if deprecated}} + * @deprecated +{{/if}} +{{#if summary}} + * {{{escapeComment summary}}} +{{/if}} +{{#if description}} + * {{{escapeComment description}}} +{{/if}} +{{#unless @root.useOptions}} +{{#if parameters}} +{{#each parameters}} + * @param {{{name}}} {{#if description}}{{{escapeComment description}}}{{/if}} +{{/each}} +{{/if}} +{{/unless}} +{{#each results}} + * @returns {{{type}}} {{#if description}}{{{escapeComment description}}}{{/if}} +{{/each}} + * @throws Error('{{{../name}}}Service > {{name}}') + */ + +export const fetch{{{../name}}}{{pascalCase name}} = async ({{> saddlebackParameters}}): Promiseresult}}>> => { + const setBaseConfig = getBaseConfig({ +{{#if parametersBody}} + data, +{{/if}} +{{#if parametersPath}} + params, +{{else if parametersQuery}} + params, +{{/if}} + method: '{{{method}}}', + url: '{{{path}}}', +{{#if parametersBody}} +{{#if parametersBody.mediaType}} + contentType: '{{{parametersBody.mediaType}}}', +{{/if}} +{{/if}} + }); + + try { + const response: AxiosResponse<{{>result}}> = await axios({ + ...setBaseConfig, + }); + + return response; + } catch (error) { + const axiosError = error as AxiosError; + + serviceError({ + response: axiosError.response, + }); + + throw new Error('{{{../name}}}Service > {{name}}'); + } +}; + +{{/each}} + diff --git a/src/templates/partials/saddlebackParameters.hbs b/src/templates/partials/saddlebackParameters.hbs new file mode 100644 index 000000000..62d0ef9f5 --- /dev/null +++ b/src/templates/partials/saddlebackParameters.hbs @@ -0,0 +1,73 @@ +{{#if parameters}} +{ + {{#if parametersBody}} + data, + {{/if}} + {{#if parametersPath}} + params, + {{else if parametersQuery}} + params, +{{/if~}} }: { + {{#if parametersBody}} + data: {{#equals parametersBody.in 'formData'}}FormData;{{else}}{{{parametersBody.type}}};{{/equals}} + {{/if}} + {{#if parametersPath}} + params: { + {{#each parametersPath}} + {{#ifdef description deprecated}} + /** + {{#if description}} + * {{{escapeComment description}}} + {{/if}} + {{#if deprecated}} + * @deprecated + {{/if}} + */ + {{/ifdef}} + {{{name}}}{{>isRequired}}: {{>type}}; + {{/each}} + {{#each parametersQuery}} + {{#ifdef description deprecated}} + /** + {{#if description}} + * {{{escapeComment description}}} + {{/if}} + {{#if deprecated}} + * @deprecated + {{/if}} + */ + {{/ifdef}} + {{{name}}}{{>isRequired}}: {{>type}}; + {{/each}} + }; + {{else if parametersQuery}} + params: { + {{#each parametersPath}} + {{#ifdef description deprecated}} + /** + {{#if description}} + * {{{escapeComment description}}} + {{/if}} + {{#if deprecated}} + * @deprecated + {{/if}} + */ + {{/ifdef}} + {{{name}}}{{>isRequired}}: {{>type}}; + {{/each}} + {{#each parametersQuery}} + {{#ifdef description deprecated}} + /** + {{#if description}} + * {{{escapeComment description}}} + {{/if}} + {{#if deprecated}} + * @deprecated + {{/if}} + */ + {{/ifdef}} + {{{name}}}{{>isRequired}}: {{>type}}; + {{/each}} + }; +{{/if}} +}{{/if}} diff --git a/src/utils/registerHandlebarTemplates.ts b/src/utils/registerHandlebarTemplates.ts index bf77cbdc1..c27fc13ca 100644 --- a/src/utils/registerHandlebarTemplates.ts +++ b/src/utils/registerHandlebarTemplates.ts @@ -53,6 +53,7 @@ import xhrGetResponseHeader from '../templates/core/xhr/getResponseHeader.hbs'; import xhrRequest from '../templates/core/xhr/request.hbs'; import xhrSendRequest from '../templates/core/xhr/sendRequest.hbs'; import templateExportModel from '../templates/exportModel.hbs'; +import templateExportSaddlebackService from '../templates/exportSaddlebackService.hbs'; import templateExportSchema from '../templates/exportSchema.hbs'; import templateExportService from '../templates/exportService.hbs'; import templateIndex from '../templates/index.hbs'; @@ -67,6 +68,7 @@ import partialIsReadOnly from '../templates/partials/isReadOnly.hbs'; import partialIsRequired from '../templates/partials/isRequired.hbs'; import partialParameters from '../templates/partials/parameters.hbs'; import partialResult from '../templates/partials/result.hbs'; +import saddlebackParameters from '../templates/partials/saddlebackParameters.hbs'; import partialSchema from '../templates/partials/schema.hbs'; import partialSchemaArray from '../templates/partials/schemaArray.hbs'; import partialSchemaComposition from '../templates/partials/schemaComposition.hbs'; @@ -92,6 +94,7 @@ export interface Templates { model: Handlebars.TemplateDelegate; schema: Handlebars.TemplateDelegate; service: Handlebars.TemplateDelegate; + saddlebackService: Handlebars.TemplateDelegate; }; core: { settings: Handlebars.TemplateDelegate; @@ -124,6 +127,7 @@ export const registerHandlebarTemplates = (root: { model: Handlebars.template(templateExportModel), schema: Handlebars.template(templateExportSchema), service: Handlebars.template(templateExportService), + saddlebackService: Handlebars.template(templateExportSaddlebackService), }, core: { settings: Handlebars.template(templateCoreSettings), @@ -147,6 +151,7 @@ export const registerHandlebarTemplates = (root: { Handlebars.registerPartial('isReadOnly', Handlebars.template(partialIsReadOnly)); Handlebars.registerPartial('isRequired', Handlebars.template(partialIsRequired)); Handlebars.registerPartial('parameters', Handlebars.template(partialParameters)); + Handlebars.registerPartial('saddlebackParameters', Handlebars.template(saddlebackParameters)); Handlebars.registerPartial('result', Handlebars.template(partialResult)); Handlebars.registerPartial('schema', Handlebars.template(partialSchema)); Handlebars.registerPartial('schemaArray', Handlebars.template(partialSchemaArray)); diff --git a/src/utils/writeClient.spec.ts b/src/utils/writeClient.spec.ts index 3c06a95a5..583d24e85 100644 --- a/src/utils/writeClient.spec.ts +++ b/src/utils/writeClient.spec.ts @@ -23,6 +23,7 @@ describe('writeClient', () => { model: () => 'model', schema: () => 'schema', service: () => 'service', + saddlebackService: () => 'saddlebackService', }, core: { settings: () => 'settings', diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index a0ffc1821..62c89b0b5 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -13,6 +13,7 @@ import { writeClientIndex } from './writeClientIndex'; import { writeClientModels } from './writeClientModels'; import { writeClientSchemas } from './writeClientSchemas'; import { writeClientServices } from './writeClientServices'; +import { writeSaddlebackClientServices } from './writeSaddlebackClientServices'; /** * Write our OpenAPI client, using the given templates at the given output @@ -53,6 +54,7 @@ export const writeClient = async ( const outputPathModels = resolve(outputPath, 'models'); const outputPathSchemas = resolve(outputPath, 'schemas'); const outputPathServices = resolve(outputPath, 'services'); + const outputPathSaddlebackServices = resolve(outputPath, 'saddlebackServices'); if (!isSubDirectory(process.cwd(), output)) { throw new Error(`Output folder is not a subdirectory of the current working directory`); @@ -112,4 +114,21 @@ export const writeClient = async ( clientName ); } + + if (true) { + await rmdir(outputPathSaddlebackServices); + await mkdir(outputPathSaddlebackServices); + + await writeSaddlebackClientServices( + client.services, + templates, + outputPathSaddlebackServices, + httpClient, + useUnionTypes, + useOptions, + indent, + postfix, + clientName + ); + } }; diff --git a/src/utils/writeClientClass.spec.ts b/src/utils/writeClientClass.spec.ts index 102f2eb57..10d23d5f0 100644 --- a/src/utils/writeClientClass.spec.ts +++ b/src/utils/writeClientClass.spec.ts @@ -23,6 +23,7 @@ describe('writeClientClass', () => { model: () => 'model', schema: () => 'schema', service: () => 'service', + saddlebackService: () => 'saddlebackService', }, core: { settings: () => 'settings', diff --git a/src/utils/writeClientCore.spec.ts b/src/utils/writeClientCore.spec.ts index 36990054e..303334b58 100644 --- a/src/utils/writeClientCore.spec.ts +++ b/src/utils/writeClientCore.spec.ts @@ -25,6 +25,7 @@ describe('writeClientCore', () => { model: () => 'model', schema: () => 'schema', service: () => 'service', + saddlebackService: () => 'saddlebackService', }, core: { settings: () => 'settings', diff --git a/src/utils/writeClientIndex.spec.ts b/src/utils/writeClientIndex.spec.ts index 6284dfd2e..939c8c772 100644 --- a/src/utils/writeClientIndex.spec.ts +++ b/src/utils/writeClientIndex.spec.ts @@ -21,6 +21,7 @@ describe('writeClientIndex', () => { model: () => 'model', schema: () => 'schema', service: () => 'service', + saddlebackService: () => 'saddlebackService', }, core: { settings: () => 'settings', diff --git a/src/utils/writeClientModels.spec.ts b/src/utils/writeClientModels.spec.ts index e147c8e73..25949b068 100644 --- a/src/utils/writeClientModels.spec.ts +++ b/src/utils/writeClientModels.spec.ts @@ -38,6 +38,7 @@ describe('writeClientModels', () => { model: () => 'model', schema: () => 'schema', service: () => 'service', + saddlebackService: () => 'saddlebackService', }, core: { settings: () => 'settings', diff --git a/src/utils/writeClientSchemas.spec.ts b/src/utils/writeClientSchemas.spec.ts index f71286232..5fe8475e1 100644 --- a/src/utils/writeClientSchemas.spec.ts +++ b/src/utils/writeClientSchemas.spec.ts @@ -38,6 +38,7 @@ describe('writeClientSchemas', () => { model: () => 'model', schema: () => 'schema', service: () => 'service', + saddlebackService: () => 'saddlebackService', }, core: { settings: () => 'settings', diff --git a/src/utils/writeClientServices.spec.ts b/src/utils/writeClientServices.spec.ts index b7ebbfe6c..735432e01 100644 --- a/src/utils/writeClientServices.spec.ts +++ b/src/utils/writeClientServices.spec.ts @@ -26,6 +26,7 @@ describe('writeClientServices', () => { model: () => 'model', schema: () => 'schema', service: () => 'service', + saddlebackService: () => 'saddlebackService', }, core: { settings: () => 'settings', diff --git a/src/utils/writeSaddlebackClientServices.ts b/src/utils/writeSaddlebackClientServices.ts new file mode 100644 index 000000000..33ac6015e --- /dev/null +++ b/src/utils/writeSaddlebackClientServices.ts @@ -0,0 +1,47 @@ +import { resolve } from 'path'; + +import type { Service } from '../client/interfaces/Service'; +import type { HttpClient } from '../HttpClient'; +import type { Indent } from '../Indent'; +import { writeFile } from './fileSystem'; +import { formatCode as f } from './formatCode'; +import { formatIndentation as i } from './formatIndentation'; +import { isDefined } from './isDefined'; +import type { Templates } from './registerHandlebarTemplates'; + +/** + * Generate Services using the Handlebar template and write to disk. + * @param services Array of Services to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param useUnionTypes Use union types instead of enums + * @param useOptions Use options or arguments functions + * @param indent Indentation options (4, 2 or tab) + * @param postfix Service name postfix + * @param clientName Custom client class name + */ +export const writeSaddlebackClientServices = async ( + services: Service[], + templates: Templates, + outputPath: string, + httpClient: HttpClient, + useUnionTypes: boolean, + useOptions: boolean, + indent: Indent, + postfix: string, + clientName?: string +): Promise => { + for (const service of services) { + const file = resolve(outputPath, `${service.name}${postfix}.service.ts`); + const templateResult = templates.exports.saddlebackService({ + ...service, + httpClient, + useUnionTypes, + useOptions, + postfix, + exportClient: isDefined(clientName), + }); + await writeFile(file, i(f(templateResult), indent)); + } +}; diff --git a/test/index.js b/test/index.js index 60ef4ede1..080ba56a2 100644 --- a/test/index.js +++ b/test/index.js @@ -72,8 +72,8 @@ const main = async () => { exportSchemas: false, indent: '4', postfix: '', - filterMethod: 'ascetic', - filterArray: ['/api/agreement', '/api/agreement/{id}'], + filterMethod: 'greedy', + filterArray: ['/api/agreement', '/api/agreement/{id}', '/api/share-page/compare-results'], }); // await generateRealWorldSpecs(); }; From 25414457845c38d5e8e2d877eb5444161a656f1e Mon Sep 17 00:00:00 2001 From: Roman P Date: Wed, 15 Jun 2022 18:46:15 +0500 Subject: [PATCH 09/52] feat: add building process to npm install from git --- package.json | 3 ++- src/generateCustomSpec.ts | 12 ++++++++++++ src/templates/exportSaddlebackService.hbs | 1 + src/templates/partials/saddlebackParameters.hbs | 8 +++++++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1531061d7..1747acfc1 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,8 @@ "eslint": "eslint .", "eslint:fix": "eslint . --fix", "prepublishOnly": "npm run clean && npm run release", - "codecov": "codecov --token=66c30c23-8954-4892-bef9-fbaed0a2e42b" + "codecov": "codecov --token=66c30c23-8954-4892-bef9-fbaed0a2e42b", + "prepare": "npm run release" }, "dependencies": { "camelcase": "^6.3.0", diff --git a/src/generateCustomSpec.ts b/src/generateCustomSpec.ts index 426121a2f..006952c99 100644 --- a/src/generateCustomSpec.ts +++ b/src/generateCustomSpec.ts @@ -12,6 +12,7 @@ type Config = Options & { filterMethod: 'greedy' | 'ascetic'; filterArray: string[]; input: string; + useSaddlebackServices?: boolean; }; export const generateCustomSpec = async (config: Config) => { @@ -98,6 +99,17 @@ export const generateCustomSpec = async (config: Config) => { }); }); } + if ('requestBody' in requestMethodData) { + const requestBodyContent = Object.values(requestMethodData.requestBody?.content ?? {}); + + // add schemas from {apiPath}/{method}/responses/{responseType}/requestBody/content + requestBodyContent.forEach(content => { + const modelName = getSchemaRefFromContent(content); + + requiredSchemasSet.add(getSchemaRefFromContent(content)); + recursiveAddAllUnknownModels(modelName); + }); + } } } }); diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index 8ec85a50d..4f403e86e 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -51,6 +51,7 @@ export const fetch{{{../name}}}{{pascalCase name}} = async ({{> saddlebackParame contentType: '{{{parametersBody.mediaType}}}', {{/if}} {{/if}} + ...config, }); try { diff --git a/src/templates/partials/saddlebackParameters.hbs b/src/templates/partials/saddlebackParameters.hbs index 62d0ef9f5..e0c3e053e 100644 --- a/src/templates/partials/saddlebackParameters.hbs +++ b/src/templates/partials/saddlebackParameters.hbs @@ -7,7 +7,9 @@ params, {{else if parametersQuery}} params, -{{/if~}} }: { +{{/if}} + config, +}: { {{#if parametersBody}} data: {{#equals parametersBody.in 'formData'}}FormData;{{else}}{{{parametersBody.type}}};{{/equals}} {{/if}} @@ -70,4 +72,8 @@ {{/each}} }; {{/if}} + /** + * Config to add or overwrite getBaseConfig arguments + */ + config?: Partial[0]>; }{{/if}} From dda85bd347854ef20d7bd752e2426eb7016ec0d7 Mon Sep 17 00:00:00 2001 From: Roman P Date: Thu, 16 Jun 2022 13:57:32 +0500 Subject: [PATCH 10/52] feat: add scripts to run generator with custom config.json file --- bin/saddleback.cli.js | 35 +++++++++++++++++++++++++++++++++++ openapi.config.json | 16 ++++++++++++++++ package.json | 4 +++- 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 bin/saddleback.cli.js create mode 100644 openapi.config.json diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js new file mode 100644 index 000000000..45a0c172b --- /dev/null +++ b/bin/saddleback.cli.js @@ -0,0 +1,35 @@ +#!/usr/bin/env node + +'use strict'; + +const path = require('path'); +const { program } = require('commander'); +const pkg = require('../package.json'); + +const params = program + .name('saddlebackOpenApi') + .usage('[options]') + .version(pkg.version) + .option('-i, --input ', 'OpenAPI specification, can be a path, url or string content (required)') + .option('-o, --output ', 'Output directory (required)') + .option('-c, --config ', 'Path to the config file') + .parse(process.argv) + .opts(); + +const OpenAPI = require(path.resolve(__dirname, '../dist/index.js')); +const config = require(path.resolve(params.config || `./openapi.config.json`)); + +if (OpenAPI) { + OpenAPI.generateCustomSpec({ + input: params.input, + output: params.output, + ...config, + }) + .then(() => { + process.exit(0); + }) + .catch(error => { + console.error(error); + process.exit(1); + }); +} diff --git a/openapi.config.json b/openapi.config.json new file mode 100644 index 000000000..260764a22 --- /dev/null +++ b/openapi.config.json @@ -0,0 +1,16 @@ +{ + "input": "./test/spec/saddlebackApi.json", + "output": "./test/test/saddleback/", + "httpClient": "axios", + "clientName": "TestAxiosClassName", + "useOptions": true, + "useUnionTypes": false, + "exportCore": true, + "exportServices": true, + "exportModels": true, + "exportSchemas": false, + "indent": "4", + "postfix": "", + "filterMethod": "greedy", + "filterArray": ["/api/agreement", "/api/agreement/{id}", "/api/share-page/compare-results"] +} diff --git a/package.json b/package.json index 1747acfc1..808f43c39 100644 --- a/package.json +++ b/package.json @@ -34,10 +34,12 @@ "main": "dist/index.js", "types": "types/index.d.ts", "bin": { - "openapi": "bin/index.js" + "openapi": "bin/index.js", + "saddlebackOpenapi": "bin/saddleback.cli.js" }, "files": [ "bin/index.js", + "bin/saddleback.cli.js", "dist/index.js", "types/index.d.ts" ], From 737e6e5558e057c7464f727c1dae8374d78f9a3c Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 17 Jun 2022 10:11:13 +0500 Subject: [PATCH 11/52] feat: add different services & refactor ability to add .service .models extensions --- src/HttpClient.ts | 1 + src/generate.ts | 12 +- src/generateCustomSpec.ts | 2 + src/templates/client.hbs | 2 +- src/templates/exportModel.hbs | 2 +- src/templates/exportSaddlebackService.hbs | 2 +- src/templates/exportService.hbs | 2 +- src/templates/index.hbs | 10 +- src/utils/getHttpRequestName.ts | 2 + src/utils/writeClient.spec.ts | 2 + src/utils/writeClient.ts | 75 +- src/utils/writeClientModels.spec.ts | 2 +- src/utils/writeClientModels.ts | 10 +- src/utils/writeClientServices.spec.ts | 13 +- src/utils/writeClientServices.ts | 11 +- src/utils/writeSaddlebackClientServices.ts | 11 +- test/index.js | 29 +- ...dlebackApi.json => saddlebackCoreApi.json} | 0 test/spec/saddlebackEventApi.json | 24726 ++++++++++++++++ test/spec/saddlebackWebAppApi.json | 2751 ++ test/spec/saddlebackWorkflowApi.json | 1054 + types/index.d.ts | 5 +- 22 files changed, 28671 insertions(+), 53 deletions(-) rename test/spec/{saddlebackApi.json => saddlebackCoreApi.json} (100%) create mode 100644 test/spec/saddlebackEventApi.json create mode 100644 test/spec/saddlebackWebAppApi.json create mode 100644 test/spec/saddlebackWorkflowApi.json diff --git a/src/HttpClient.ts b/src/HttpClient.ts index 40c77c7c9..b90bde695 100644 --- a/src/HttpClient.ts +++ b/src/HttpClient.ts @@ -4,4 +4,5 @@ export enum HttpClient { NODE = 'node', AXIOS = 'axios', ANGULAR = 'angular', + SADDLEBACK = 'saddleback', } diff --git a/src/generate.ts b/src/generate.ts index e5e805ec8..caef5b604 100644 --- a/src/generate.ts +++ b/src/generate.ts @@ -24,7 +24,8 @@ export type Options = { postfix?: string; request?: string; write?: boolean; - exportModelsFileExtension?: string; + additionalModelFileExtension?: boolean; + additionalServiceFileExtension?: boolean; }; /** * Generate the OpenAPI client. This method will read the OpenAPI specification and based on the @@ -44,7 +45,8 @@ export type Options = { * @param postfix Service name postfix * @param request Path to custom request file * @param write Write the files to disk (true or false) - * @param exportModelsFileExtension File extension for models .ts as default + * @param additionalModelFileExtension Add file extension for models *.models.* + * @param additionalServiceFileExtension Add file extension for service *.service.* */ export const generate = async ({ input, @@ -61,6 +63,8 @@ export const generate = async ({ postfix = 'Service', request, write = true, + additionalModelFileExtension = false, + additionalServiceFileExtension = false, }: Options): Promise => { const openApi = isString(input) ? await getOpenApiSpec(input) : input; const openApiVersion = getOpenApiVersion(openApi); @@ -88,6 +92,8 @@ export const generate = async ({ exportSchemas, indent, postfix, + additionalModelFileExtension, + additionalServiceFileExtension, clientName, request ); @@ -111,6 +117,8 @@ export const generate = async ({ exportSchemas, indent, postfix, + additionalModelFileExtension, + additionalServiceFileExtension, clientName, request ); diff --git a/src/generateCustomSpec.ts b/src/generateCustomSpec.ts index 006952c99..b483af73d 100644 --- a/src/generateCustomSpec.ts +++ b/src/generateCustomSpec.ts @@ -13,6 +13,8 @@ type Config = Options & { filterArray: string[]; input: string; useSaddlebackServices?: boolean; + additionalModelFileExtension?: boolean; + additionalServiceFileExtension?: boolean; }; export const generateCustomSpec = async (config: Config) => { diff --git a/src/templates/client.hbs b/src/templates/client.hbs index 098e26096..cb2a2830e 100644 --- a/src/templates/client.hbs +++ b/src/templates/client.hbs @@ -16,7 +16,7 @@ import { {{{httpRequest}}} } from './core/{{{httpRequest}}}'; {{#if services}} {{#each services}} -import { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}.service'; +import { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; {{/each}} {{/if}} diff --git a/src/templates/exportModel.hbs b/src/templates/exportModel.hbs index a2c7012f7..a23da9060 100644 --- a/src/templates/exportModel.hbs +++ b/src/templates/exportModel.hbs @@ -3,7 +3,7 @@ {{#if imports}} {{#each imports}} -import type { {{{this}}} } from './{{{this}}}.models'; +import type { {{{this}}} } from './{{{this}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{/each}} {{/if}} diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index 4f403e86e..71ba06b5f 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -1,6 +1,6 @@ {{#if imports}} {{#each imports}} -import type { {{{this}}} } from '../models/{{{this}}}.models'; +import type { {{{this}}} } from '../models/{{{this}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{/each}} {{/if}} import axios, { diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index c40e1bc79..10667ddfa 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -13,7 +13,7 @@ import type { Observable } from 'rxjs'; {{/equals}} {{#if imports}} {{#each imports}} -import type { {{{this}}} } from '../models/{{{this}}}.models'; +import type { {{{this}}} } from '../models/{{{this}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{/each}} {{/if}} diff --git a/src/templates/index.hbs b/src/templates/index.hbs index 7989a76bf..4f7038bf2 100644 --- a/src/templates/index.hbs +++ b/src/templates/index.hbs @@ -18,13 +18,13 @@ export type { OpenAPIConfig } from './core/OpenAPI'; {{#each models}} {{#if @root.useUnionTypes}} -export type { {{{name}}} } from './models/{{{name}}}.models'; +export type { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{else if enum}} -export { {{{name}}} } from './models/{{{name}}}.models'; +export { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{else if enums}} -export { {{{name}}} } from './models/{{{name}}}.models'; +export { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{else}} -export type { {{{name}}} } from './models/{{{name}}}.models'; +export type { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{/if}} {{/each}} {{/if}} @@ -41,7 +41,7 @@ export { ${{{name}}} } from './schemas/${{{name}}}'; {{#if services}} {{#each services}} -export { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}.service'; +export { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; {{/each}} {{/if}} {{/if}} diff --git a/src/utils/getHttpRequestName.ts b/src/utils/getHttpRequestName.ts index 53b7ad05a..d74e34caf 100644 --- a/src/utils/getHttpRequestName.ts +++ b/src/utils/getHttpRequestName.ts @@ -16,5 +16,7 @@ export const getHttpRequestName = (httpClient: HttpClient): string => { return 'AxiosHttpRequest'; case HttpClient.ANGULAR: return 'AngularHttpRequest'; + case HttpClient.SADDLEBACK: + return 'AxiosHttpRequest'; } }; diff --git a/src/utils/writeClient.spec.ts b/src/utils/writeClient.spec.ts index 583d24e85..22adfc330 100644 --- a/src/utils/writeClient.spec.ts +++ b/src/utils/writeClient.spec.ts @@ -50,6 +50,8 @@ describe('writeClient', () => { true, Indent.SPACE_4, 'Service', + false, + false, 'AppClient' ); diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index 62c89b0b5..7dabbf1a4 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -1,7 +1,7 @@ import { resolve } from 'path'; import type { Client } from '../client/interfaces/Client'; -import type { HttpClient } from '../HttpClient'; +import { HttpClient } from '../HttpClient'; import type { Indent } from '../Indent'; import { mkdir, rmdir } from './fileSystem'; import { isDefined } from './isDefined'; @@ -30,6 +30,8 @@ import { writeSaddlebackClientServices } from './writeSaddlebackClientServices'; * @param exportSchemas Generate schemas * @param indent Indentation options (4, 2 or tab) * @param postfix Service name postfix + * @param additionalModelFileExtension Add file extension for models *.models.* + * @param additionalServiceFileExtension Add file extension for service *.service.* * @param clientName Custom client class name * @param request Path to custom request file */ @@ -46,6 +48,8 @@ export const writeClient = async ( exportSchemas: boolean, indent: Indent, postfix: string, + additionalModelFileExtension: boolean, + additionalServiceFileExtension: boolean, clientName?: string, request?: string ): Promise => { @@ -54,7 +58,6 @@ export const writeClient = async ( const outputPathModels = resolve(outputPath, 'models'); const outputPathSchemas = resolve(outputPath, 'schemas'); const outputPathServices = resolve(outputPath, 'services'); - const outputPathSaddlebackServices = resolve(outputPath, 'saddlebackServices'); if (!isSubDirectory(process.cwd(), output)) { throw new Error(`Output folder is not a subdirectory of the current working directory`); @@ -69,17 +72,35 @@ export const writeClient = async ( if (exportServices) { await rmdir(outputPathServices); await mkdir(outputPathServices); - await writeClientServices( - client.services, - templates, - outputPathServices, - httpClient, - useUnionTypes, - useOptions, - indent, - postfix, - clientName - ); + if (httpClient === HttpClient.SADDLEBACK) { + await writeSaddlebackClientServices( + client.services, + templates, + outputPathServices, + httpClient, + useUnionTypes, + useOptions, + indent, + postfix, + additionalModelFileExtension, + additionalServiceFileExtension, + clientName + ); + } else { + await writeClientServices( + client.services, + templates, + outputPathServices, + httpClient, + useUnionTypes, + useOptions, + indent, + postfix, + additionalModelFileExtension, + additionalServiceFileExtension, + clientName + ); + } } if (exportSchemas) { @@ -91,7 +112,16 @@ export const writeClient = async ( if (exportModels) { await rmdir(outputPathModels); await mkdir(outputPathModels); - await writeClientModels(client.models, templates, outputPathModels, httpClient, useUnionTypes, indent); + await writeClientModels( + client.models, + templates, + outputPathModels, + httpClient, + useUnionTypes, + indent, + additionalModelFileExtension, + additionalServiceFileExtension + ); } if (isDefined(clientName)) { @@ -114,21 +144,4 @@ export const writeClient = async ( clientName ); } - - if (true) { - await rmdir(outputPathSaddlebackServices); - await mkdir(outputPathSaddlebackServices); - - await writeSaddlebackClientServices( - client.services, - templates, - outputPathSaddlebackServices, - httpClient, - useUnionTypes, - useOptions, - indent, - postfix, - clientName - ); - } }; diff --git a/src/utils/writeClientModels.spec.ts b/src/utils/writeClientModels.spec.ts index 25949b068..424202590 100644 --- a/src/utils/writeClientModels.spec.ts +++ b/src/utils/writeClientModels.spec.ts @@ -52,7 +52,7 @@ describe('writeClientModels', () => { }, }; - await writeClientModels(models, templates, '/', HttpClient.FETCH, false, Indent.SPACE_4); + await writeClientModels(models, templates, '/', HttpClient.FETCH, false, Indent.SPACE_4, false, false); expect(writeFile).toBeCalledWith('/User.ts', `model${EOL}`); }); diff --git a/src/utils/writeClientModels.ts b/src/utils/writeClientModels.ts index a28f35773..0c55d19c1 100644 --- a/src/utils/writeClientModels.ts +++ b/src/utils/writeClientModels.ts @@ -16,6 +16,8 @@ import type { Templates } from './registerHandlebarTemplates'; * @param httpClient The selected httpClient (fetch, xhr, node or axios) * @param useUnionTypes Use union types instead of enums * @param indent Indentation options (4, 2 or tab) + * @param additionalModelFileExtension Add file extension for models *.models.* + * @param additionalServiceFileExtension Add file extension for service *.service.* */ export const writeClientModels = async ( models: Model[], @@ -23,14 +25,18 @@ export const writeClientModels = async ( outputPath: string, httpClient: HttpClient, useUnionTypes: boolean, - indent: Indent + indent: Indent, + additionalModelFileExtension: boolean, + additionalServiceFileExtension: boolean ): Promise => { for (const model of models) { - const file = resolve(outputPath, `${model.name}.models.ts`); + const file = resolve(outputPath, `${model.name}${additionalModelFileExtension ? '.models' : ''}.ts`); const templateResult = templates.exports.model({ ...model, httpClient, useUnionTypes, + additionalModelFileExtension, + additionalServiceFileExtension, }); await writeFile(file, i(f(templateResult), indent)); } diff --git a/src/utils/writeClientServices.spec.ts b/src/utils/writeClientServices.spec.ts index 735432e01..576a1f223 100644 --- a/src/utils/writeClientServices.spec.ts +++ b/src/utils/writeClientServices.spec.ts @@ -40,7 +40,18 @@ describe('writeClientServices', () => { }, }; - await writeClientServices(services, templates, '/', HttpClient.FETCH, false, false, Indent.SPACE_4, 'Service'); + await writeClientServices( + services, + templates, + '/', + HttpClient.FETCH, + false, + false, + Indent.SPACE_4, + 'Service', + false, + false + ); expect(writeFile).toBeCalledWith('/UserService.ts', `service${EOL}`); }); diff --git a/src/utils/writeClientServices.ts b/src/utils/writeClientServices.ts index 661b76e39..834d36d88 100644 --- a/src/utils/writeClientServices.ts +++ b/src/utils/writeClientServices.ts @@ -19,6 +19,8 @@ import type { Templates } from './registerHandlebarTemplates'; * @param useOptions Use options or arguments functions * @param indent Indentation options (4, 2 or tab) * @param postfix Service name postfix + * @param additionalModelFileExtension Add file extension for models *.models.* + * @param additionalServiceFileExtension Add file extension for service *.service.* * @param clientName Custom client class name */ export const writeClientServices = async ( @@ -30,10 +32,15 @@ export const writeClientServices = async ( useOptions: boolean, indent: Indent, postfix: string, + additionalModelFileExtension: boolean, + additionalServiceFileExtension: boolean, clientName?: string ): Promise => { for (const service of services) { - const file = resolve(outputPath, `${service.name}${postfix}.service.ts`); + const file = resolve( + outputPath, + `${service.name}${postfix}${additionalServiceFileExtension ? '.service' : ''}.ts` + ); const templateResult = templates.exports.service({ ...service, httpClient, @@ -41,6 +48,8 @@ export const writeClientServices = async ( useOptions, postfix, exportClient: isDefined(clientName), + additionalModelFileExtension, + additionalServiceFileExtension, }); await writeFile(file, i(f(templateResult), indent)); } diff --git a/src/utils/writeSaddlebackClientServices.ts b/src/utils/writeSaddlebackClientServices.ts index 33ac6015e..4792621f1 100644 --- a/src/utils/writeSaddlebackClientServices.ts +++ b/src/utils/writeSaddlebackClientServices.ts @@ -19,6 +19,8 @@ import type { Templates } from './registerHandlebarTemplates'; * @param useOptions Use options or arguments functions * @param indent Indentation options (4, 2 or tab) * @param postfix Service name postfix + * @param additionalModelFileExtension Add file extension for models *.models.* + * @param additionalServiceFileExtension Add file extension for service *.service.* * @param clientName Custom client class name */ export const writeSaddlebackClientServices = async ( @@ -30,10 +32,15 @@ export const writeSaddlebackClientServices = async ( useOptions: boolean, indent: Indent, postfix: string, + additionalModelFileExtension: boolean, + additionalServiceFileExtension: boolean, clientName?: string ): Promise => { for (const service of services) { - const file = resolve(outputPath, `${service.name}${postfix}.service.ts`); + const file = resolve( + outputPath, + `${service.name}${postfix}${additionalServiceFileExtension ? '.service' : ''}.ts` + ); const templateResult = templates.exports.saddlebackService({ ...service, httpClient, @@ -41,6 +48,8 @@ export const writeSaddlebackClientServices = async ( useOptions, postfix, exportClient: isDefined(clientName), + additionalModelFileExtension, + additionalServiceFileExtension, }); await writeFile(file, i(f(templateResult), indent)); } diff --git a/test/index.js b/test/index.js index 080ba56a2..a373d4568 100644 --- a/test/index.js +++ b/test/index.js @@ -59,14 +59,12 @@ const generateRealWorldSpecs = async () => { const main = async () => { // await generate('./test/spec/v2.json', './test/generated/v2/'); // await generate('./test/spec/v3.json', './test/generated/v3/'); - await OpenAPI.generateCustomSpec({ - input: './test/spec/saddlebackApi.json', - output: './test/generated/saddleback/', + const config = { httpClient: 'axios', clientName: 'TestAxiosClassName', useOptions: true, useUnionTypes: false, - exportCore: true, + exportCore: false, exportServices: true, exportModels: true, exportSchemas: false, @@ -74,7 +72,30 @@ const main = async () => { postfix: '', filterMethod: 'greedy', filterArray: ['/api/agreement', '/api/agreement/{id}', '/api/share-page/compare-results'], + additionalModelFileExtension: false, + additionalServiceFileExtension: false, + }; + await OpenAPI.generateCustomSpec({ + input: './test/spec/saddlebackCoreApi.json', + output: './test/new/saddleback/core', + ...config, + }); + await OpenAPI.generateCustomSpec({ + input: './test/spec/saddlebackEventApi.json', + output: './test/new/saddleback/event', + ...config, }); + await OpenAPI.generateCustomSpec({ + input: './test/spec/saddlebackWebAppApi.json', + output: './test/new/saddleback/web', + ...config, + }); + await OpenAPI.generateCustomSpec({ + input: './test/spec/saddlebackWorkflowApi.json', + output: './test/new/saddleback/workflow', + ...config, + }); + // await generateRealWorldSpecs(); }; diff --git a/test/spec/saddlebackApi.json b/test/spec/saddlebackCoreApi.json similarity index 100% rename from test/spec/saddlebackApi.json rename to test/spec/saddlebackCoreApi.json diff --git a/test/spec/saddlebackEventApi.json b/test/spec/saddlebackEventApi.json new file mode 100644 index 000000000..9535eb234 --- /dev/null +++ b/test/spec/saddlebackEventApi.json @@ -0,0 +1,24726 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Event WebApp API", + "version": "all" + }, + "paths": { + "/api/accommodation/{id}": { + "get": { + "tags": [ + "Accommodation" + ], + "summary": "Gets accommodation by ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Read Event, Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nREAD Access to Accommodations.", + "operationId": "GetAccommodationById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Accommodation ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Accommodation." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + }, + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "Accommodation" + ], + "summary": "Updates Accommodation", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Accommodation.", + "operationId": "UpdateAccommodation", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Accommodation ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Accommodation Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Accommodation." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Accommodation" + ], + "summary": "Deletes Accommodation", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Accommodation.", + "operationId": "DeleteAccommodation", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Accommodation ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Accommodation was deleted successfully." + }, + "403": { + "description": "Not authorized." + }, + "409": { + "description": "Accommodation is in use." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + } + }, + "/api/accommodation": { + "get": { + "tags": [ + "Accommodation" + ], + "summary": "Gets all Accommodations with pagination", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Read Event, Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nREAD Access to Accommodations.", + "operationId": "GetAllAccommodations", + "parameters": [ + { + "name": "pageSize", + "in": "query", + "description": "Page size", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Accommodation list." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + }, + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "Accommodation" + ], + "summary": "Creates Accommodation", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Accommodation.", + "operationId": "CreateAccommodation", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Accommodation Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Accommodation." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + } + }, + "/api/bootstrap": { + "get": { + "tags": [ + "Bootstrap" + ], + "operationId": "GetBootstrap", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/enumerations": { + "get": { + "tags": [ + "Bootstrap" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetEnumerations", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/event/{id}": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets Event by ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:internal-systems, hc:event-get
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events or Internal access", + "operationId": "GetEvent", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "date", + "in": "query", + "description": "Date used for Event 'current' state. If null, the current date is used.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems", + "hc:event-get" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + }, + "put": { + "tags": [ + "Event" + ], + "summary": "Updates Event", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "UpdateEvent", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Updated Event Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Event" + ] + } + ] + } + } + }, + "/api/event/{id}/lite": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets 'Event Lite' data by ID", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetEventLite", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/event/lite": { + "post": { + "tags": [ + "Event" + ], + "summary": "Gets 'Event Lite' data for multiple Events by IDs", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD access for lite information about multiple Events\r\n\r\n**More Information:**
\r\nMostly intended for use cross-service RPC/REST SDK.", + "operationId": "GetLiteInfoForMultipleEvents", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Event IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Returns requested Events.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/schedule": { + "post": { + "tags": [ + "Event" + ], + "summary": "Gets 'Event Lite' data for multiple Events by Schedule ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:internal-systems, hc:event-get
\r\n
\r\n**Data Access:**
\r\nInternal systems access.", + "operationId": "GetEventsByScheduleId", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Schedule IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Returns Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems", + "hc:event-get" + ] + } + ] + } + } + }, + "/api/event": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets filtered Events", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events.\r\n\r\nSort order can be [\"name\"],[\"asc\" | \"desc\"]", + "operationId": "GetFilteredEvents", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "maximum": 15768000000, + "minimum": 0, + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + } + }, + { + "name": "OccurrenceStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MyEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPaid", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CanRegister", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CampusEvent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Recurring", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPrivate", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventFilterStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventFilterStatus" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Events.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "Event" + ], + "summary": "Creates Event", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Create Free Event, Create Paid Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "CreateEvent", + "parameters": [ + { + "name": "sourceEventId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Event Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Create Free Event" + ] + }, + { + "Permissions": [ + "Create Paid Event" + ] + } + ] + } + } + }, + "/api/event/{id}/for-search": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets Event for search by ID", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetEventForSearch", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/ministry-location": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets Event by Minsitry Location", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Ministry Location.", + "operationId": "GetEventsByMinistryLocation", + "parameters": [ + { + "name": "ministryId", + "in": "query", + "description": "Minsitry ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "Church Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event list.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/contact": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets contacts by Event IDs", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nInternal access.", + "operationId": "GetEventContactsIds", + "parameters": [ + { + "name": "eventIds", + "in": "query", + "description": "Comma separated Event IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event Contact IDs.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/{id}/occurrence": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets Occurrence of Event for the specific date-time", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetEventOccurrence", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "description": "Local date-time", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Occurrence.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + }, + "put": { + "tags": [ + "Event" + ], + "summary": "Update Event Occurrence", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "UpdateEventOccurrence", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Occurrence to update", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Event Occurrence was updated successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + } + }, + "400": { + "description": "Invalid occurrence data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event or occurrence not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Event" + ] + } + ] + } + } + }, + "/api/event/church-entity-occurrence": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets Event Occurrences for the specific church entity ID and date-time", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nInternal access only.", + "operationId": "GetEventOccurrencesForChurchEntity", + "parameters": [ + { + "name": "churchEnityId", + "in": "query", + "description": "Church entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "description": "Local date-time", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Occurrence list.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event not found." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/for-search": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets Events for search", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetEventsForSearch", + "parameters": [ + { + "name": "lastId", + "in": "query", + "description": "Last event Id. All returnded events will have IDs greater than lastId", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Max record count", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Events.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/occurrences": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets filtered Event Occurrences", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events.\r\n\r\n\r\nSort order can be [\"name\" | \"occurrence\" | \"date\"],[\"asc\" | \"desc\"]", + "operationId": "GetFilteredOccurrences", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "maximum": 15768000000, + "minimum": 0, + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + } + }, + { + "name": "OccurrenceStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MyEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPaid", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CanRegister", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CampusEvent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Recurring", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPrivate", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventFilterStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventFilterStatus" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Events with occurrences.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventDateViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventDateViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventDateViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/event/flat-occurrences": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets flat list of filtered Event Occurrences", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:internal-systems, hc:event-get
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events or Internal systems\r\n\r\n\r\nSort order can be [\"name\" | \"occurrence\"],[\"asc\" | \"desc\"]", + "operationId": "GetFlatFilteredOccurrences", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "maximum": 15768000000, + "minimum": 0, + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + } + }, + { + "name": "OccurrenceStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MyEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPaid", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CanRegister", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CampusEvent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Recurring", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPrivate", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventFilterStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventFilterStatus" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Returns Events with occurrences.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventOccurrenceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventOccurrenceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventOccurrenceViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems", + "hc:event-get" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/event/series": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets Filtered Event Series list", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events\r\n\r\n**More Info:**
\r\nSort order can be [\"date\"],[\"asc\" | \"desc\"]", + "operationId": "GetFilteredEventSeries", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "maximum": 15768000000, + "minimum": 0, + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + } + }, + { + "name": "OccurrenceStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MyEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPaid", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CanRegister", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CampusEvent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Recurring", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPrivate", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventFilterStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventFilterStatus" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Events with occurrences.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventOccurrenceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventOccurrenceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventOccurrenceViewModel" + } + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/event/{eventId}/occurrences": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets Occurrences for Event", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetEventOccurrences", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDate", + "in": "query", + "description": "Start date for occurrences", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End date for occurrences", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns occurrence list.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/closed": { + "get": { + "tags": [ + "Event" + ], + "summary": "Get closed events", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to events", + "operationId": "GetFilteredClosed", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "maximum": 15768000000, + "minimum": 0, + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + } + }, + { + "name": "OccurrenceStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MyEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPaid", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CanRegister", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CampusEvent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Recurring", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPrivate", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventFilterStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventFilterStatus" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns found events.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/event/statistics": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets filtered Event statistics", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetFilteredEventSatistics", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "maximum": 15768000000, + "minimum": 0, + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + } + }, + { + "name": "OccurrenceStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MyEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPaid", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CanRegister", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CampusEvent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Recurring", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPrivate", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventFilterStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventFilterStatus" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "computeDetails", + "in": "query", + "description": "true to compute 'by date' details", + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns statistcis.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventStatisticsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventStatisticsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventStatisticsViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/event/{id}/cancel": { + "put": { + "tags": [ + "Event" + ], + "summary": "Cancels Event", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Cancel Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "CloseEvent", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID to cancel", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "unpublishTenant", + "in": "query", + "description": "true to unpublish from tenant website", + "schema": { + "type": "boolean" + } + }, + { + "name": "date", + "in": "query", + "description": "Cancel date or null for current date-time", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Event was cancelled successfully." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Cancel Event" + ] + } + ] + } + } + }, + "/api/event/{id}/cancel/{occurrenceId}": { + "put": { + "tags": [ + "Event" + ], + "summary": "Cancels Event Occurrence", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Cancel Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "CloseEventOccurrence", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Event Occurrence was cancelled successfully." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Cancel Event" + ] + } + ] + } + } + }, + "/api/event/{id}/cancel-occurrence": { + "put": { + "tags": [ + "Event" + ], + "summary": "Cancels Event Occurrence by date/time", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Cancel Event
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "CloseEventOccurrenceByDateTime", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "description": "Occurrence date-time in local time", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Event Occurrence was cancelled successfully." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Cancel Event" + ] + } + ] + } + } + }, + "/api/event/{id}/accommodation": { + "put": { + "tags": [ + "Event" + ], + "summary": "Upsert Accommodation for event", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "UpsertAccommodations", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Accommodation IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Accommodations were updated successfully." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Event" + ] + } + ] + } + } + }, + "/api/event/{id}/occurrence/venue": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets venues and sub-venues for event occurrence", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetVenuesOccurrence", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Venue occurrence data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event or occurrence not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + }, + "put": { + "tags": [ + "Event" + ], + "summary": "Upserts venues and sub-venues for event occurrence", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "UpsertVenuesOccurrence", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceDateTime", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Venues and sub-venues data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Venues and sub-venues were updated successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event or occurrence not found." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Event" + ] + } + ] + } + } + }, + "/api/event/published-status": { + "post": { + "tags": [ + "Event" + ], + "summary": "Gets publication statuses for events", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access only", + "operationId": "GetEventPublishedStatuses", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Event IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns publication statuses.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VenuesOccurrenceViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event or occurrence not found." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/{id}/publish": { + "put": { + "tags": [ + "Event" + ], + "summary": "Publish/unpublish Event", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "PublishEvent", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Publish data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventPublishDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventPublishDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventPublishDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventPublishDto" + } + } + } + }, + "responses": { + "200": { + "description": "Operstion completed sucessfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventPublishViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventPublishViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventPublishViewModel" + } + } + } + }, + "400": { + "description": "Invalid model.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Event" + ] + } + ] + } + } + }, + "/api/event/{id}/serving-opportunity/email": { + "post": { + "tags": [ + "Event" + ], + "summary": "Send an Email to Serving Opportunity Contacts for opportunities attached to the Event", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SendEmailAttachedServingOpportunityContacts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "servingOpportunityIds", + "in": "query", + "description": "Comma separated Serving Opportunity IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/{id}/notification": { + "get": { + "tags": [ + "Event" + ], + "summary": "Retrieves last notification results for event", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to events.", + "operationId": "GetLastNotificationResultsForEvent", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "NotificationChannel", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "isCheckIn", + "in": "query", + "description": "True to return results for event check-in", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns last notification results for ministry location", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_NotificationResultViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_NotificationResultViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_NotificationResultViewModel" + } + } + } + }, + "403": { + "description": "Not authorized. Must have the required Permissions.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "404": { + "description": "Event not found.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + } + } + } + }, + "/api/event/{id}/web-header": { + "get": { + "tags": [ + "Event" + ], + "summary": "Retrieves Event web header category image", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nNo restrictions", + "operationId": "GetWebHeaderUrl", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "URL to Event web header image", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "404": { + "description": "Event or Event web header image not found" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "Event" + ], + "summary": "Upsert Event web header image for existing event", + "description": "**Data Access:**
\r\nUpdate Access to Events", + "operationId": "UploadEventWebHeaderImage", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "URL and name of Event web header image", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + } + } + }, + "404": { + "description": "Event not found" + } + } + } + }, + "/api/event/web-header": { + "post": { + "tags": [ + "Event" + ], + "summary": "Upsert Event web header image for event to be created", + "description": "**Data Access:**
\r\nCreate Access to Events", + "operationId": "UploadEventWebHeaderImage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "URL and name of Event web header image", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + } + } + } + } + } + }, + "/api/event/{id}/companion-app-header": { + "get": { + "tags": [ + "Event" + ], + "summary": "Retrieves Event Companion App header category image", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nNo restrictions", + "operationId": "GetCompanionAppHeaderUrl", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "URL to Event companion app header image", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "404": { + "description": "Event or Event companion app header image not found" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/event/companion-app-header": { + "post": { + "tags": [ + "Event" + ], + "summary": "Upsert Event companion app header image for event to be created", + "description": "**Data Access:**
\r\nCreate Access to Events", + "operationId": "UploadEventCompanionAppHeaderImage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "URL and name of Event companion app header image", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + } + } + } + } + } + }, + "/api/event/{id}/thumbnail": { + "get": { + "tags": [ + "Event" + ], + "summary": "Retrieves Event Thumbnail category image", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nNo restrictions", + "operationId": "GetThumbnailUrl", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "URL to Event thumbnail image", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "404": { + "description": "Event or Event thumbnail image not found" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/event/thumbnail": { + "post": { + "tags": [ + "Event" + ], + "summary": "Upsert Event thumbnail image for event to be created", + "description": "**Data Access:**
\r\nCreate Access to Events", + "operationId": "UploadEventThumbnailImage", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "URL and name of Event thumbnail image", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_WebHeader" + } + } + } + } + } + } + }, + "/api/v2/event/flat-occurrences": { + "get": { + "tags": [ + "Event" + ], + "summary": "Gets flat list of filtered Event Occurrences", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:internal-systems, hc:event-get
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Events or Internal systems\r\n\r\n\r\nSort order can be [\"name\" | \"occurrence\"],[\"asc\" | \"desc\"]", + "operationId": "GetFlatFilteredOccurrences", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "StartTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + } + }, + { + "name": "OccurrenceStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MyEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPaid", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CanRegister", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CampusEvent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Recurring", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPrivate", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventFilterStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventFilterStatus" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "400": { + "description": "Invalid parameters.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + }, + "403": { + "description": "Not authorized.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + }, + "200": { + "description": "Returns Events with occurrences.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventOccurrenceResponseViewModel_V2" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventOccurrenceResponseViewModel_V2" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventOccurrenceResponseViewModel_V2" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems", + "hc:event-get" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/event/{id}/attendee/{attendeeId}": { + "get": { + "tags": [ + "EventAttendee" + ], + "summary": "Gets attendee by ID", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to events attendee.", + "operationId": "GetAttendeeById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "attendeeId", + "in": "path", + "description": "Attendee ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event Attendee.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + }, + "put": { + "tags": [ + "EventAttendee" + ], + "summary": "Updates Attendee", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "UpdateAttendee", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "attendeeId", + "in": "path", + "description": "Attendee ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attendee Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Attendee.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/attendee": { + "get": { + "tags": [ + "EventAttendee" + ], + "summary": "Gets filtered attendee occurrences with pagination", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to events attendee.", + "operationId": "GetFiltered", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Attended", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsRegistered", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "idOnly", + "in": "query", + "description": "True to return person IDs only without filtering and pagination", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "checkInValidation", + "in": "query", + "description": "True to return check-in status for 'now'", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event Attendee or Person ID list.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrencesViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrencesViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrencesViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + }, + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Adds Attendee to the Event", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "AddAttendee", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attendee Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Attendee.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + } + }, + "delete": { + "tags": [ + "EventAttendee" + ], + "summary": "Deletes historic Attendees from Event", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.\r\n\r\nEither occurrenceId or from parameters should be set", + "operationId": "DeleteHistoricAttendees", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Attendee was deleted successfully" + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/historic-attendee": { + "get": { + "tags": [ + "EventAttendee" + ], + "summary": "Gets filtered historic attendees with pagination", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to events attendee.", + "operationId": "GetHistoric", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "idOnly", + "in": "query", + "description": "True to return person IDs only without filtering and pagination", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Attendee Persons or Person IDs.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_EventHistoricPersonsViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_EventHistoricPersonsViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_EventHistoricPersonsViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/historic-attendee/person/{personId}": { + "get": { + "tags": [ + "EventAttendee" + ], + "summary": "Gets historic attendee ids by for a given person id", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
", + "operationId": "GetEventHistoricAttendeeIdsByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns List of found Event Historic Attendee Ids for the given Person ID.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/{id}/attendee/attendance": { + "get": { + "tags": [ + "EventAttendee" + ], + "summary": "Gets filtered attendance occurrences with pagination", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to events attendee.", + "operationId": "GetAttendance", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Attended", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Attendances.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendanceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendanceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendanceViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{eventId}/attendee/statistics": { + "get": { + "tags": [ + "EventAttendee" + ], + "summary": "Get Attendee statistic for specific Occurrence", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Read Event, Manage Event Attendees
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetOccurrenceStatistics", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "date", + "in": "query", + "description": "Occurrence date", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "startTime", + "in": "query", + "description": "Occurrence start time", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully, returns statistics.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventOccurrenceStatistics" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventOccurrenceStatistics" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventOccurrenceStatistics" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + }, + { + "Permissions": [ + "Manage Event Attendees" + ] + } + ] + } + } + }, + "/api/event/{id}/person-attendance": { + "get": { + "tags": [ + "EventAttendee" + ], + "summary": "Check person attendance for an Event", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal systems access only", + "operationId": "CheckAttendance", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID. If null, check for historic attendance is performed", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Comma separated Person IDs to check", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event Attendee.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/{id}/attendee-occurrence": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Adds Attendee to the Event Occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "AddAttendeeOccurrence", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attendee Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Attendee.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + } + }, + "delete": { + "tags": [ + "EventAttendee" + ], + "summary": "Deletes Attendee(s) from Event Occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.\r\n\r\nEither occurrenceId or from parameters should be set", + "operationId": "DeleteAttendeeOccurrence", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "from", + "in": "query", + "description": "Date from which attendee should be removed", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Attendee was deleted successfully" + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/attendee-occurrence/{attendeeOccurrenceId}": { + "put": { + "tags": [ + "EventAttendee" + ], + "summary": "Updates Attendee Occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "UpdateAttendeeOccurrence", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "attendeeOccurrenceId", + "in": "path", + "description": "Attendee occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attendee Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Attendee occurrence.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/attendee-occurrence/{attendeeOccurrenceId}/attended/{attended}": { + "put": { + "tags": [ + "EventAttendee" + ], + "summary": "Set Attended/Unattended state for Attendee Occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SetAttendance", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "attendeeOccurrenceId", + "in": "path", + "description": "Attendee occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "attended", + "in": "path", + "description": "Attended flag. Null means 'not set'", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Attendee occurrence.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/attendee-occurrence/attended": { + "put": { + "tags": [ + "EventAttendee" + ], + "summary": "Set Attended/Unattended state for Attendees in Occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SetAttendance", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Attended", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsRegistered", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "attendance", + "in": "query", + "description": "Attended flag. Null means 'not set'", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Attendee occurrence." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/attendee-occurrence/person/{personId}/attended": { + "put": { + "tags": [ + "EventAttendee" + ], + "summary": "Set Attended/Unattended state for Attendee", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SetAttendance", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Contains attendance status and a list of occurrences", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_SetAttendanceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_SetAttendanceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_SetAttendanceViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_SetAttendanceViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Attendee occurrence." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{eventId}/attendee/cancel": { + "post": { + "tags": [ + "EventAttendee" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "CancelEventRegistration", + "parameters": [ + { + "name": "eventId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventRegistrationCancellationRequestViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventRegistrationCancellationRequestViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventRegistrationCancellationRequestViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventRegistrationCancellationRequestViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/event/{id}/attendee-occurrence/ministry": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Add Attendee(s) to host ministry as interested", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "AddAttendeesToMinistryAsInterested", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Attended", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsRegistered", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Interested ministry member bulk data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_InterestedMinistryMemberBulkViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_InterestedMinistryMemberBulkViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_InterestedMinistryMemberBulkViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_InterestedMinistryMemberBulkViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Attendee was added tgo ministry successfully", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AddMinistryMemberResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AddMinistryMemberResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AddMinistryMemberResult" + } + } + } + }, + "400": { + "description": "Invalid filter data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event or occurrence not found." + } + } + } + }, + "/api/event/{id}/attendee/ministry": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Add Historic Attendee(s) to host ministry as interested", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "AddAttendeesToMinistryAsInterested", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Interested ministry member bulk data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_InterestedMinistryMemberBulkViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_InterestedMinistryMemberBulkViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_InterestedMinistryMemberBulkViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_InterestedMinistryMemberBulkViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Attendee was added tgo ministry successfully", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AddMinistryMemberResult" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AddMinistryMemberResult" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AddMinistryMemberResult" + } + } + } + }, + "400": { + "description": "Invalid filter data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event not found." + } + } + } + }, + "/api/event/email-variables": { + "get": { + "tags": [ + "EventAttendee" + ], + "summary": "Get email variables", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nNo specific access", + "operationId": "GetEmailVariables", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/event/{id}/email": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Send an Email to Event attendees", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SendEmail", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Attended", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsRegistered", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/{id}/attendee/email": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Send an Email to Event historic attendees", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SendEmailToHistoricAttendees", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/email": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Send an Email to Event contacts", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SendEmail", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "Event IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Email Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EmailViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/{id}/sms": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Send an SMS to Event attendees", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SendSms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Attended", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsRegistered", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "SMS Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/{id}/attendee/sms": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Send an SMS to Event attendees", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SendSmsToHistoricAttendees", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "SMS Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/sms": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Send an SMS to Event contacts", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SendSms", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "Event IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "SMS Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/attachment": { + "post": { + "tags": [ + "EventAttendee" + ], + "summary": "Upload a File for Email Attachment", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Update Event, Manage Event Attendees
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nUploads the file to cloud storage (Amazon S3) where it can be viewed/downloaded by unauthenticated callers\r\nwith the URL (intended usage is to embed the URL to the file in an email in lieu of actually \"attaching\" the file).", + "operationId": "UploadAttachment", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "File is empty.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Manage Event Attendees" + ] + } + ] + } + } + }, + "/api/event/{id}/check-in/occurrence": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Get current check-in occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "GetCheckInOccurrence", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/check-in/labels": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Get check-in label data (incl. name, order, etc.)", + "description": "**Data Access:**
\r\nNo special access required", + "operationId": "GetCheckInLabelsData", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/event/{id}/check-in": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Gets attendee check-in records", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to events attendee or Room leadership", + "operationId": "GetAttendeeCheckInRecords", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SubVenueIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_AttendeeCheckInStatus" + } + }, + { + "name": "Gender", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsAttendeeBirthday", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsFirstTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsSecondTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "FillRoomStatistics", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "fillContactPersons", + "in": "query", + "description": "True to fill Contact person details", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Attendee check-in records.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInsViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInsViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInsViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + }, + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Check-in attendee", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events attendee or Room leadership", + "operationId": "CheckInAttendee", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "force", + "in": "query", + "description": "True to override capacity requirements", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attendee check-in data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + }, + "responses": { + "400": { + "description": "Invalid check-in data." + }, + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Returns Attendee check-in data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + } + } + } + }, + "/api/event/check-in": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Gets attendee check-in records", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal access only", + "operationId": "GetLatestAttendanceCheckedInEvent", + "parameters": [ + { + "name": "personId", + "in": "query", + "description": "Person ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventLiteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventLiteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventLiteViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/{id}/check-out": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Check-out attendee", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events attendee or Room leadership", + "operationId": "CheckOutAttendee", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attendee check-in data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Attendee check-in data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + }, + "400": { + "description": "Invalid check-out data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/check-in/occurrence/{occurrenceId}": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Check-in attendees for occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events attendee or Room leadership", + "operationId": "CheckInAttendees", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "query", + "description": "Sub venue ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Person IDs to check-in", + "schema": { + "type": "string" + } + }, + { + "name": "checkInTime", + "in": "query", + "description": "Check-in UTC date-time", + "schema": { + "type": "string" + } + }, + { + "name": "force", + "in": "query", + "description": "True to override capacity requirements", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "400": { + "description": "Invalid check-in data." + }, + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Operation completed successfully." + } + } + } + }, + "/api/event/{id}/check-in/child": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Check-in child attendees for occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events attendee or Room leadership", + "operationId": "CheckInChildAttendees", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "force", + "in": "query", + "description": "True to override capacity requirements", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "List of children to check-in", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + } + }, + "responses": { + "400": { + "description": "Invalid check-in data." + }, + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Operation completed successfully." + } + } + } + }, + "/api/event/{id}/check-out/occurrence/{occurrenceId}": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Check-out attendees for occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events attendee or Room leadership", + "operationId": "CheckOutAttendees", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SubVenueIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_AttendeeCheckInStatus" + } + }, + { + "name": "Gender", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsAttendeeBirthday", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsFirstTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsSecondTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "FillRoomStatistics", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attendee data to check-out", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_BulkAttendeeCheckOutViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_BulkAttendeeCheckOutViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_BulkAttendeeCheckOutViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_BulkAttendeeCheckOutViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Operation completed successfully." + }, + "400": { + "description": "Invalid check-out data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/check-in/transfer": { + "put": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Transfer attendee to another sub-venue", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events attendee or Room leadership", + "operationId": "TransferAttendee", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "force", + "in": "query", + "description": "True to override capacity requirements", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attendee check-in data (with new sub venue)", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + }, + "responses": { + "400": { + "description": "Invalid check-in data." + }, + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Returns Attendee check-in data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + } + } + } + }, + "/api/event/{id}/check-in/bulk-transfer": { + "put": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Transfer attendees to another sub-venue", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events attendee or Room leadership", + "operationId": "TransferAttendees", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SubVenueIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_AttendeeCheckInStatus" + } + }, + { + "name": "Gender", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsAttendeeBirthday", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsFirstTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsSecondTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "FillRoomStatistics", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "force", + "in": "query", + "description": "True to override capacity requirements", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Attendee data for transfer", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_BulkAttendeeTransferViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_BulkAttendeeTransferViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_BulkAttendeeTransferViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_BulkAttendeeTransferViewModel" + } + } + } + }, + "responses": { + "400": { + "description": "Invalid transfer data." + }, + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Returns Attendee check-in data.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + } + } + } + } + }, + "/api/event/check-in/person-attendance": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Check person attendance for an Event check-in", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal systems access only", + "operationId": "CheckAttendance", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Event ID. If null, the validation is performed for all events for 'now'", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID. If Event ID is null, it contains reference occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "query", + "description": "Sub Venue ID. Should be null if Event ID is null", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Comma separated Person IDs to check", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event Attendee.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/check-in/guardian/{guardianPersonId}/child": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Gets checked in children", + "description": "**Authorization Policy:**
\r\nRequires Person Record Ownership
\r\n
\r\n**Data Access:**
\r\nRecord ownership only", + "operationId": "GetCheckedInChildren", + "parameters": [ + { + "name": "Id", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "GenerateQrCode", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Base64", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "PixelsPerModule", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "EmbedLogo", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ForegroundColor", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "BackgroundColor", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "LogoPercentage", + "in": "query", + "schema": { + "maximum": 100, + "minimum": 0, + "type": "integer", + "format": "int32" + } + }, + { + "name": "Transparent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "guardianPersonId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "QR Code PNG file.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInEventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInEventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInEventViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiresPersonRecordOwners": [ + { + "RecordOwners": [ + "guardianPersonId" + ] + } + ] + } + } + }, + "/api/event/{id}/check-in/occurrence/{occurrenceId}/notes": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Gets notes count for attendees", + "description": "**Data Access:**
\r\nCheck-in Data Read", + "operationId": "GetAttendeeCheckInNoteCounts", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person Unique IDs to get note counts", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "List of person note counts.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Dto_PersonNotesCount" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Dto_PersonNotesCount" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Dto_PersonNotesCount" + } + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found" + } + } + } + }, + "/api/event/{id}/check-in/occurrence/{occurrenceId}/sms": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Send an SMS to Event attendeee for specific occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nManagement Access to Attendees.", + "operationId": "SendSmsToAttendees", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SubVenueIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_AttendeeCheckInStatus" + } + }, + { + "name": "Gender", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsAttendeeBirthday", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsFirstTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsSecondTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "FillRoomStatistics", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "SMS Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/{id}/check-in/occurrence/{occurrenceId}/guardian/sms": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Send an SMS to Event attendeee guardians for specific occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nManagement Access to Children.", + "operationId": "SendSmsToGuardians", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SubVenueIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_AttendeeCheckInStatus" + } + }, + { + "name": "Gender", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsAttendeeBirthday", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsFirstTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsSecondTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "FillRoomStatistics", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "SMS Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatuses" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatuses" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatuses" + } + } + } + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/{id}/check-in/occurrence/{occurrenceId}/all/sms": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Send SMS to all persons involved in checked-in event occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nManagement Access to Attendees and Children.", + "operationId": "SendSms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "SMS Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_CheckInSmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_CheckInSmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_CheckInSmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_CheckInSmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatuses" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatuses" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatuses" + } + } + } + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/{id}/check-in/occurrence/{occurrenceId}/filtered/sms": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Send SMS to filtered persons involved in checked-in event occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nManagement Access to Attendees and Children.", + "operationId": "SendFilteredSms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SubVenueIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_AttendeeCheckInStatus" + } + }, + { + "name": "Gender", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsAttendeeBirthday", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsFirstTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsSecondTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "FillRoomStatistics", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "SMS Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatuses" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatuses" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatuses" + } + } + } + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/check-in/attendee/{id}/qr-code/png": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Gets person QR Code PNG image", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Attendees", + "operationId": "GetAttendeeQrCodePng", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Attendee check in ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "base64", + "in": "query", + "description": "True to return base64 data", + "schema": { + "type": "boolean" + } + }, + { + "name": "pixelsPerModule", + "in": "query", + "description": "Module size in pixels", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "QR Code PNG file." + }, + "400": { + "description": "Invalid Person data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + } + } + }, + "/api/event/{id}/check-in/attendee/qr-code/png": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Gets person QR Code PNG image", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Attendees", + "operationId": "GetAttendeeQrCodePng", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "query", + "description": "SubVenue ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "base64", + "in": "query", + "description": "True to return base64 data", + "schema": { + "type": "boolean" + } + }, + { + "name": "pixelsPerModule", + "in": "query", + "description": "Module size in pixels", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "QR Code PNG file." + }, + "400": { + "description": "Invalid Person data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + } + } + }, + "/api/event/check-in/attendee/{id}/qr-code/svg": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Gets person QR Code SVG image", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Attendees", + "operationId": "GetAttendeeQrCodeSvg", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Attendee check in ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pixelsPerModule", + "in": "query", + "description": "Module size in pixels", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "QR Code SVG file." + }, + "400": { + "description": "Invalid Person data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + } + } + }, + "/api/event/{id}/check-in/attendee/qr-code/svg": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Gets person QR Code SVG image", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Attendees", + "operationId": "GetAttendeeQrCodeSvg", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "query", + "description": "SubVenue ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pixelsPerModule", + "in": "query", + "description": "Module size in pixels", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "QR Code SVG file." + }, + "400": { + "description": "Invalid Person data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + } + } + }, + "/api/event/check-in/qr-code": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Gets person by QR Code string", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Attendees", + "operationId": "GetAttendeeOrPersonIdByQrCode", + "parameters": [ + { + "name": "qrCode", + "in": "query", + "description": "QR Code string", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Person data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + }, + "400": { + "description": "Invalid QR code." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + }, + "409": { + "description": "Unsupported QR code." + } + } + } + }, + "/api/event/{id}/check-in/attendee/print-label": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Print event attendee label", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Attendees", + "operationId": "PrintAttendeeLabel", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "query", + "description": "SubVenue ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Label was sent to printer." + }, + "400": { + "description": "Invalid Person data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + } + } + }, + "/api/event/{id}/check-in/attendee/filtered/print-label": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Print event attendee labels (filtered)", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to Attendees", + "operationId": "PrintAttendeeLabels", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SubVenueIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_AttendeeCheckInStatus" + } + }, + { + "name": "Gender", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsAttendeeBirthday", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsFirstTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsSecondTime", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "FillRoomStatistics", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Label was sent to printer." + }, + "400": { + "description": "Invalid Person data." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Person not found." + } + } + } + }, + "/api/event/{id}/occurrence/{occurrenceId}/check-in/export/preview": { + "get": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Get check-in attendee export preview", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to Attendees.", + "operationId": "GetDataExportPreview", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueIds", + "in": "query", + "description": "Comma separated sub venue IDs, can be null", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "Record count to preview", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractPreviewViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractPreviewViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractPreviewViewModel" + } + } + } + }, + "400": { + "description": "Validation errors" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/{id}/occurrence/{occurrenceId}/check-in/export/request": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Start check-in attendee export", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to Attendees.", + "operationId": "RequestDataExport", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueIds", + "in": "query", + "description": "Comma separated sub venue IDs, can be null", + "schema": { + "type": "string" + } + }, + { + "name": "format", + "in": "query", + "description": "Export file format", + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractFormat" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors" + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/v2/event/{id}/mine/check-in": { + "post": { + "tags": [ + "EventAttendeeCheckIn" + ], + "summary": "Check-in attendee (current user)", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events attendee or Room leadership", + "operationId": "CheckInAttendee", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "Attendee check-in data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Attendee check-in data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + } + } + } + }, + "400": { + "description": "Invalid check-in data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/person/{personId}/note": { + "get": { + "tags": [ + "EventAttendeeNote" + ], + "summary": "Gets attendee notes by person ID", + "description": "**Data Access:**
\r\nREAD Access to events attendee.", + "operationId": "GetAttendeeNotes", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "path", + "description": "Person ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event Attendee notes.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + }, + "post": { + "tags": [ + "EventAttendeeNote" + ], + "summary": "Add attendee note", + "description": "**Data Access:**
\r\nWRITE Access to events attendee.", + "operationId": "AddAttendeeNote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "path", + "description": "Person ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Note", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Event Attendee note.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/person/{personId}/note/{noteId}": { + "put": { + "tags": [ + "EventAttendeeNote" + ], + "summary": "Update attendee note", + "description": "**Data Access:**
\r\nWRITE Access to events attendee.", + "operationId": "UpdateAttendeeNote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "path", + "description": "Person ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "noteId", + "in": "path", + "description": "Note ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Note", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Event Attendee note.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_NoteViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + }, + "delete": { + "tags": [ + "EventAttendeeNote" + ], + "summary": "Delete attendee note", + "description": "**Data Access:**
\r\nWRITE Access to events attendee.", + "operationId": "RemoveAttendeeNote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "path", + "description": "Person ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "noteId", + "in": "path", + "description": "Note ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Event Attendee note deleted successfully." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/eventbrite/organizer/{churchEntityId}": { + "get": { + "tags": [ + "Eventbrite" + ], + "summary": "Gets Eventbrite Organizer by Church entity ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n
\r\n**Data Access:**
\r\nAccess to Management of Global Application Settings.", + "operationId": "GetEventbriteOrganizerByChurchEntityId", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "description": "Church entity ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Returns Eventbrite Organizer.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Eventbrite" + ], + "summary": "Deletes Eventbrite Organizer", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n
\r\n**Data Access:**
\r\nAccess to Management of Global Application Settings.", + "operationId": "DeleteEventbriteOrganizer", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Church Entity ID", + "content": { + "application/json-patch+json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "text/json": { + "schema": { + "type": "integer", + "format": "int32" + } + }, + "application/*+json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + }, + "responses": { + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found" + }, + "200": { + "description": "Eventbrite Organizer was deleted successfully." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/event/eventbrite/organizer/church-entity": { + "get": { + "tags": [ + "Eventbrite" + ], + "summary": "Gets all Eventbrite Organizers", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n
\r\n**Data Access:**
\r\nAccess to Management of Global Application Settings.", + "operationId": "GetAllEventbriteOrganizers", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "403": { + "description": "Not authorized." + }, + "200": { + "description": "Returns Eventbrite Organizers.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/event/eventbrite/organizer": { + "post": { + "tags": [ + "Eventbrite" + ], + "summary": "Creates Eventbrite Organizer", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n
\r\n**Data Access:**
\r\nAccess to Management of Global Application Settings.", + "operationId": "CreateEventbriteOrganizer", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Eventbrite Organizer Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + } + } + }, + "responses": { + "403": { + "description": "Not authorized." + }, + "400": { + "description": "Invalid model." + }, + "200": { + "description": "Returns Eventbrite Organizer.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "Eventbrite" + ], + "summary": "Updates Eventbrite Organizer", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Global Application Settings
\r\n
\r\n**Data Access:**
\r\nAccess to Management of Global Application Settings.", + "operationId": "UpdateEventbriteOrganizer", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Eventbrite Organizer Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + } + } + }, + "responses": { + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Not Found" + }, + "400": { + "description": "Invalid model." + }, + "200": { + "description": "Returns Eventbrite Organizer.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventbriteOrganizerViewModel" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Global Application Settings" + ] + } + ] + } + } + }, + "/api/event-category/{id}": { + "get": { + "tags": [ + "EventCategory" + ], + "summary": "Gets event category by ID", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nREAD Access to event categories.", + "operationId": "GetEventCategoryById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "EventCategory ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event category." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "put": { + "tags": [ + "EventCategory" + ], + "summary": "Updates Event category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nWRITE Access to event category.", + "operationId": "UpdateEventCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Event category data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns event category." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + }, + "delete": { + "tags": [ + "EventCategory" + ], + "summary": "Deletes Event category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nWRITE Access to event category.", + "operationId": "DeleteEventCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Event category was deleted successfully." + }, + "403": { + "description": "Not authorized." + }, + "409": { + "description": "Event category is in use." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + } + }, + "/api/event-category": { + "get": { + "tags": [ + "EventCategory" + ], + "summary": "Gets all event categories with pagination", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nREAD Access to event categories.", + "operationId": "GetAllEventCategories", + "parameters": [ + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "IncludeEventCount", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event category list." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "EventCategory" + ], + "summary": "Creates Event category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nWRITE Access to event category.", + "operationId": "CreateEventCategory", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Event category Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_EventCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns event category." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + } + }, + "/api/event/{id}/occurrence/{occurrenceId}/export/preview": { + "get": { + "tags": [ + "EventExportAttendee" + ], + "summary": "Get occurrence attendee export preview", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Attendees
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to Attendees.", + "operationId": "GetDataExportPreview", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Record count to preview", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractPreviewViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractPreviewViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractPreviewViewModel" + } + } + } + }, + "400": { + "description": "Validation errors" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + } + ] + } + } + }, + "/api/event/{id}/occurrence/{occurrenceId}/export/request": { + "post": { + "tags": [ + "EventExportAttendee" + ], + "summary": "Start occurrence attendee export", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Attendees
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to Attendees.", + "operationId": "RequestDataExport", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "format", + "in": "query", + "description": "Export file format", + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractFormat" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + } + ] + } + } + }, + "/api/event/{id}/export/preview": { + "get": { + "tags": [ + "EventExportAttendee" + ], + "summary": "Get historic attendee export preview", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Attendees
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to Attendees.", + "operationId": "GetDataExportPreview", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "limit", + "in": "query", + "description": "Record count to preview", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractPreviewViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractPreviewViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractPreviewViewModel" + } + } + } + }, + "400": { + "description": "Validation errors" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + } + ] + } + } + }, + "/api/event/{id}/export/request": { + "post": { + "tags": [ + "EventExportAttendee" + ], + "summary": "Start historic attendee export", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Attendees
\r\n
\r\n**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nREAD Access to Attendees.", + "operationId": "RequestDataExport", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "format", + "in": "query", + "description": "Export file format", + "schema": { + "$ref": "#/components/schemas/Event_App_DataExtractFormat" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Attendees" + ] + } + ] + } + } + }, + "/api/event/{id}/ministry-invite": { + "get": { + "tags": [ + "EventMinistryInvite" + ], + "summary": "Gets event ministry invites by event ID", + "description": "**Data Access:**
\r\nREAD Access to events.", + "operationId": "GetMinistryInvitesByEventId", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeNames", + "in": "query", + "description": "(optional - defaults to false)when true the Ministry Names will be included in the response", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event Ministry Invites." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event not found." + } + } + }, + "post": { + "tags": [ + "EventMinistryInvite" + ], + "summary": "Upserts event ministry invites for event", + "description": "**Data Access:**
\r\nWRITE Access to events.", + "operationId": "UpsertMinistryInvites", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "List of ministry invites", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventMinistryInviteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventMinistryInviteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventMinistryInviteViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventMinistryInviteViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns Event Ministry Invite." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event not found." + } + } + }, + "put": { + "tags": [ + "EventMinistryInvite" + ], + "summary": "Add new event ministry invites for event", + "description": "**Data Access:**
\r\nWRITE Access to events.", + "operationId": "AddMinistryInvites", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "List of ministry invites", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventMinistryInviteViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventMinistryInviteViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventMinistryInviteViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventMinistryInviteViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns Event Ministry Invite." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event not found." + } + } + }, + "delete": { + "tags": [ + "EventMinistryInvite" + ], + "summary": "Delete event ministry invites from event", + "description": "**Data Access:**
\r\nWRITE Access to events.", + "operationId": "DeleteMinistryInvites", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "inviteIds", + "in": "query", + "description": "List of ministry invite IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event Ministry Invite." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Event not found." + } + } + } + }, + "/api/event-public/{id}": { + "get": { + "tags": [ + "EventPublic" + ], + "summary": "Gets Event by ID", + "description": "**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetEvent", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "privateId", + "in": "query", + "description": "Private ID (necessary to set for private events)", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ExpandOptions", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExpandLimit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventDetailsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventDetailsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventDetailsViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event-public/{id}/worship-service": { + "get": { + "tags": [ + "EventPublic" + ], + "summary": "Gets a Worship Service by Event ID", + "description": "**Data Access:**
\r\nAnonymous", + "operationId": "GetWorshipServiceEventById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ExpandOptions", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExpandLimit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Worship Service Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventDetailsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventDetailsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventDetailsViewModel" + } + } + } + }, + "404": { + "description": "Not found." + }, + "400": { + "description": "Bad Request." + } + } + } + }, + "/api/event-public/signup": { + "post": { + "tags": [ + "EventPublic" + ], + "summary": "Register an Event attendee", + "description": "**Data Access:**
\r\nAnonymous", + "operationId": "RegisterEventAttendee", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Person/Event data to register", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventAttendeeRegistrationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventAttendeeRegistrationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventAttendeeRegistrationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_EventAttendeeRegistrationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Events occurrence." + }, + "400": { + "description": "Invalid incoming data" + }, + "409": { + "description": "Problems with person adding/selecting." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event-public/occurrences": { + "get": { + "tags": [ + "EventPublic" + ], + "summary": "Gets published Event Occurrences", + "description": "**Data Access:**
\r\nAnonymous\r\n\r\nSort order can be [\"name\" | \"occurrence\"],[\"asc\" | \"desc\"]", + "operationId": "GetFilteredOccurrences", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "maximum": 15768000000, + "minimum": 0, + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + } + }, + { + "name": "OccurrenceStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MyEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPaid", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CanRegister", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CampusEvent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Recurring", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPrivate", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventFilterStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventFilterStatus" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Events with occurrences." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event-public/{eventId}/occurrences": { + "get": { + "tags": [ + "EventPublic" + ], + "summary": "Gets published Event Occurrences for event", + "description": "**Data Access:**
\r\nAnonymous", + "operationId": "GetEventOccurrences", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDate", + "in": "query", + "description": "Start date", + "schema": { + "type": "string" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End date", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns occurrences.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event-public/worship-service-occurrences": { + "get": { + "tags": [ + "EventPublic" + ], + "summary": "Gets the worship service occurrences for the specified church entity id and date range", + "description": "**Data Access:**
\r\nAnonymous", + "operationId": "GetWorshipServiceOccurrence", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDate", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "endDate", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns occurrences." + } + } + } + }, + "/api/event-public/worship-service-occurrences-campuses": { + "get": { + "tags": [ + "EventPublic" + ], + "summary": "Gets the worship service occurrences by church entity ids and date range", + "description": "**Data Access:**
\r\nAnonymous", + "operationId": "GetWorshipServiceOccurrenceByChurchEntityIds", + "parameters": [ + { + "name": "churchEntityIds", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "startDate", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "endDate", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns occurrences." + } + } + } + }, + "/api/v2/event-public/{id}": { + "get": { + "tags": [ + "EventPublic" + ], + "summary": "Gets Event by ID", + "description": "**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetEvent", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "privateId", + "in": "query", + "description": "Private ID (necessary to set for private events)", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "ExpandOptions", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExpandLimit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Returns Event.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventDetailsViewModel_V2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventDetailsViewModel_V2" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventDetailsViewModel_V2" + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/v2/event-public/{eventId}/occurrences": { + "get": { + "tags": [ + "EventPublic" + ], + "summary": "Gets published Event Occurrences for event", + "description": "**Data Access:**
\r\nAnonymous", + "operationId": "GetEventOccurrences", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDate", + "in": "query", + "description": "Start date", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End date", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "privateId", + "in": "query", + "description": "Private ID (necessary to set for private events)", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "usePublicViewModel", + "in": "query", + "description": "Boolean flag indicating whether response is an array of Saddleback.Cm.Services.Sdk.Event.ViewModels.Schedules.V2.PublicRegistrationOccurrenceViewModel (if True)\r\nor Saddleback.Cm.Services.Sdk.Event.ViewModels.Schedules.V2.OccurrencesViewModel (if False or omitted).\r\n** TEMPORARY:** This should go away ASAP and we should _ALWAYS_ return an array of Saddleback.Cm.Services.Sdk.Event.ViewModels.Schedules.V2.PublicRegistrationOccurrenceViewModel.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Returns occurrences.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PublicRegistrationOccurrenceViewModel_V2" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PublicRegistrationOccurrenceViewModel_V2" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PublicRegistrationOccurrenceViewModel_V2" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/v2/event-public/worship-service-occurrences": { + "get": { + "tags": [ + "EventPublic" + ], + "summary": "Gets the worship service occurrences for the specified church entity id and date range", + "description": "**Data Access:**
\r\nAnonymous", + "operationId": "GetWorshipServiceOccurrence", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDate", + "in": "query", + "description": "", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "endDate", + "in": "query", + "description": "", + "schema": { + "type": "string", + "format": "date-time" + } + } + ], + "responses": { + "200": { + "description": "Returns occurrences." + } + } + } + }, + "/api/event/{id}/check-in-room": { + "get": { + "tags": [ + "EventRoomCheckIn" + ], + "summary": "Gets check-in room records", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to events volunteer or Room leadership", + "operationId": "GetCheckInRooms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "date", + "in": "query", + "description": "Occurrence Date", + "schema": { + "type": "string" + } + }, + { + "name": "startTime", + "in": "query", + "description": "Occurrence Start Time", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns check-in room records.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomsViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/check-in-room/{roomId}": { + "get": { + "tags": [ + "EventRoomCheckIn" + ], + "summary": "Gets check-in room records", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to events volunteer or Room leadership", + "operationId": "GetVolunteerCheckInRecords", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "roomId", + "in": "path", + "description": "Room (SubVenue) ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns check-in room records.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Sub venue not found." + } + } + } + }, + "/api/event/{id}/check-in-room/open": { + "post": { + "tags": [ + "EventRoomCheckIn" + ], + "summary": "Open the room", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events volunteer or Room leadership", + "operationId": "OpenRoom", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Open room parameters", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_OpenRoomViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_OpenRoomViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_OpenRoomViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_OpenRoomViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns check-in room records.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/check-in-room/close": { + "post": { + "tags": [ + "EventRoomCheckIn" + ], + "summary": "Close the room", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events volunteer or Room leadership", + "operationId": "CloseRoom", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "roomId", + "in": "query", + "description": "Room (SubVenue) ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns check-in room records.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + } + } + } + }, + "400": { + "description": "Invalid parameters." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/search-fields": { + "get": { + "tags": [ + "EventSearch" + ], + "summary": "Gets a list of fields that can be used in event search queries", + "description": "**Data Access:**
\r\nNone really ... ElasticSearch metadata.", + "operationId": "GetSearchFields", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of field names" + } + } + } + }, + "/api/event/search": { + "get": { + "tags": [ + "EventSearch" + ], + "summary": "Search events", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Data Access:**
\r\nREAD Access to events", + "operationId": "Search", + "parameters": [ + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "maximum": 15768000000, + "minimum": 0, + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "StartTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EndTime", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + } + }, + { + "name": "OccurrenceStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "MyEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPaid", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CanRegister", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "AdvertiseOnWeb", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "CampusEvent", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Recurring", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsPrivate", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "EventFilterStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Dto_EventFilterStatus" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of found events" + }, + "400": { + "description": "Invalid filter parameters" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/event/{eventId}/attendee/search": { + "get": { + "tags": [ + "EventSearch" + ], + "summary": "Search event attendees", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Person Search
\r\n
\r\n**Data Access:**
\r\nSEARCH Access to persons", + "operationId": "Search", + "parameters": [ + { + "name": "eventId", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Attended", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsRegistered", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "HomeCampusIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "q", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "pageSize", + "in": "query", + "description": "Page size for pagination/load more.", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number for pagination/load more.", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "sort", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of found event attendees" + }, + "400": { + "description": "Invalid filter parameters" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Person Search" + ] + } + ] + } + } + }, + "/api/event/person": { + "get": { + "tags": [ + "EventSearch" + ], + "summary": "Gets Person's My Events", + "description": "", + "operationId": "GetPersonEvents", + "parameters": [ + { + "name": "startDate", + "in": "query", + "description": "", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "endDate", + "in": "query", + "description": "", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of person's my events", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_MyPersonEventResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_MyPersonEventResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_MyPersonEventResultsViewModel" + } + } + } + }, + "401": { + "description": "Not authorized", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_MyPersonEventResultsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_MyPersonEventResultsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_MyPersonEventResultsViewModel" + } + } + } + } + } + } + }, + "/api/event-public": { + "get": { + "tags": [ + "EventSearchPublic" + ], + "summary": "List events grouped by date", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nREAD Access to events", + "operationId": "GetEventList", + "parameters": [ + { + "name": "UseRawQuery", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupByDay", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExcludedCategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "TagIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DayIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Date", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "TimeRanges", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "HostMinistryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "IncludeAllOccurrences", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "ExpandOptions", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExpandLimit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns list of found events" + }, + "400": { + "description": "Invalid filter parameters" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/v2/event-public": { + "get": { + "tags": [ + "EventSearchPublic" + ], + "summary": "List events grouped by date", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nREAD Access to events", + "operationId": "GetEventList", + "parameters": [ + { + "name": "UseRawQuery", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "GroupByDay", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "EventTypes", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "CategoryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "TagIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "TagAndMode", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Days", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "HostMinistryId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "HostMinistryIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "VenueIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IncludeRelatedMinistriesEvents", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IncludeAllOccurrences", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "IsVirtual", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "StartDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "EndDate", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "TimeRanges", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "TimeZones", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PublishedChurchEntityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DefaultTimeZone", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExpandOptions", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ExpandLimit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Returns list of found events" + }, + "400": { + "description": "Invalid filter parameters" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/event/reassign-person": { + "post": { + "tags": [ + "EventUtils" + ], + "summary": "Reassign person in all tables of event microservice", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nTrusted (internal) application access to events.", + "operationId": "ReassignPerson", + "parameters": [ + { + "name": "oldPersonId", + "in": "query", + "description": "Old person unique ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "newPersonId", + "in": "query", + "description": "New person unique ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Person was reassigned successfully." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/{id}/volunteer-check-in": { + "get": { + "tags": [ + "EventVolunteerCheckIn" + ], + "summary": "Gets volunteer check-in records", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to events volunteer or Room leadership", + "operationId": "GetVolunteerCheckInRecords", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "servingOpportunityId", + "in": "query", + "description": "Serving Opportunity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "query", + "in": "query", + "description": "Search query", + "schema": { + "type": "string" + } + }, + { + "name": "personId", + "in": "query", + "description": "Person ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "query", + "description": "SubVenue ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "date", + "in": "query", + "description": "Date-time in UCT", + "schema": { + "type": "string" + } + }, + { + "name": "status", + "in": "query", + "description": "Check in status", + "schema": { + "$ref": "#/components/schemas/Event_Model_VolunteerCheckInStatus" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Volunteer check-in records.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + }, + "post": { + "tags": [ + "EventVolunteerCheckIn" + ], + "summary": "Check-in volunteer", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events volunteer or Room leadership", + "operationId": "CheckInVolunteer", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Volunteer check-in data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Volunteer check-in data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + } + } + }, + "400": { + "description": "Invalid check-in data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/volunteer-check-in/attendance": { + "get": { + "tags": [ + "EventVolunteerCheckIn" + ], + "summary": "Get person IDs for volunteer attendance for an Event check-in", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nInternal systems access only", + "operationId": "GetEventCheckInVolunteerPersonIds", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueIds", + "in": "query", + "description": "Sub Venue IDs. Can be null", + "schema": { + "type": "string" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Comma separated Person IDs to check", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Event Attendee.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventAttendeeViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/{id}/available-volunteer": { + "get": { + "tags": [ + "EventVolunteerCheckIn" + ], + "summary": "Gets volunteers for occurrence check-in", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nREAD Access to events volunteer or Room leadership", + "operationId": "GetVolunteersToCheckIn", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ServingOpportunityIds", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Query", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "OccurrenceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "SubVenueId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PersonId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "AllRelatedVolunteers", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Volunteer check-in records.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_ServingOpportunityVolunteerRoomInfoViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_ServingOpportunityVolunteerRoomInfoViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_ServingOpportunityVolunteerRoomInfoViewModel" + } + } + } + } + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/volunteer-check-out": { + "post": { + "tags": [ + "EventVolunteerCheckIn" + ], + "summary": "Check-out volunteer", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events volunteer or Room leadership", + "operationId": "CheckOutVolunteer", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Volunteer check-in data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Volunteer check-in data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + } + } + }, + "400": { + "description": "Invalid check-out data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/volunteer-check-in/transfer": { + "put": { + "tags": [ + "EventVolunteerCheckIn" + ], + "summary": "Transfer volunteer to another sub-venue", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events attendee or Room leadership", + "operationId": "TransferVolunteer", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Volunteer check-in data (with new sub venue)", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Volunteer check-in data.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_VolunteerCheckInViewModel" + } + } + } + }, + "400": { + "description": "Invalid check-in data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/volunteer-check-in/occurrence/{occurrenceId}": { + "post": { + "tags": [ + "EventVolunteerCheckIn" + ], + "summary": "Check-in volunteers for occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events volunteer or Room leadership", + "operationId": "CheckInVolunteers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "servingOpportunityId", + "in": "query", + "description": "Serving Opportunity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "query", + "description": "Sub venue ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Person IDs to check-in", + "schema": { + "type": "string" + } + }, + { + "name": "checkInTime", + "in": "query", + "description": "Check-in UTC date-time", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operation completed successfully." + }, + "400": { + "description": "Invalid check-in data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/volunteer-check-out/occurrence/{occurrenceId}": { + "post": { + "tags": [ + "EventVolunteerCheckIn" + ], + "summary": "Check-out volunteers for occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n\r\n**Data Access:**
\r\nWRITE Access to events volunteer or Room leadership", + "operationId": "CheckOutVolunteers", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "servingOpportunityId", + "in": "query", + "description": "Serving Opportunity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueId", + "in": "query", + "description": "Sub venue ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personIds", + "in": "query", + "description": "Person IDs to check-out", + "schema": { + "type": "string" + } + }, + { + "name": "checkOutTime", + "in": "query", + "description": "Check-in UTC date-time", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operation completed successfully." + }, + "400": { + "description": "Invalid check-out data." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/event/{id}/volunteer-check-in/occurrence/{occurrenceId}/sms": { + "post": { + "tags": [ + "EventVolunteerCheckIn" + ], + "summary": "Send an SMS to Event volunteer for specific occurrence", + "description": "**Inline Authorization Checks:**
\r\nScoped permission validation is applied\r\n \r\n**Data Access:**
\r\nWRITE Access to Attendees.", + "operationId": "SendSms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "subVenueIds", + "in": "query", + "description": "SubVenue IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "SMS Body", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_SmsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Validation errors", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + } + } + }, + "/api/event/worship-service/occurrences": { + "get": { + "tags": [ + "EventWorshipService" + ], + "summary": "Gets instantiated Occurrences with assigned Worship Service Category", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetEventOccurrences", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "description": "Church Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "excludeChurchEntityId", + "in": "query", + "description": "Church Entity ID to exclude", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDate", + "in": "query", + "description": "Start date for occurrences", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End date for occurrences", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "worshipServiceCategoryId", + "in": "query", + "description": "Filter by specific worship service category", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "onlyActive", + "in": "query", + "description": "true to return only active occurrences", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns occurrence list." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/worship-service/occurrence/{occurrenceId}": { + "get": { + "tags": [ + "EventWorshipService" + ], + "summary": "Gets Occurrence with Worship Service Category for a single Occurrence by ID", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetEventOccurrence", + "parameters": [ + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/event/worship-service/person/{personId}/most-commonly-attended": { + "get": { + "tags": [ + "EventWorshipService" + ], + "summary": "Gets most commonly attended service for person", + "description": "**Authorization Policy:**
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Read Personal Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to people.", + "operationId": "GetMostCommonlyAttendedServices", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "PersonId", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_EventViewModel" + } + } + } + } + }, + "x-hc-security": { + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ] + } + ] + } + } + }, + "/api/event/worship-service/most-commonly-attended": { + "get": { + "tags": [ + "EventWorshipService" + ], + "summary": "Gets most commonly attended service for persons", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Read Personal Data
\r\n
\r\n**Data Access:**
\r\nREAD Access to people.", + "operationId": "GetMostCommonlyAttendedServices", + "parameters": [ + { + "name": "personIds", + "in": "query", + "description": "PersonIds", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventPersonViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventPersonViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventPersonViewModel" + } + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Personal Data" + ] + } + ] + } + } + }, + "/api/event/worship-service/category": { + "put": { + "tags": [ + "EventWorshipService" + ], + "summary": "Assigns Worship Service Category to specific Occurrence", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Update Event
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Events.", + "operationId": "AssignCategoryToOccurrence", + "parameters": [ + { + "name": "worshipServiceCategoryId", + "in": "query", + "description": "Worship Service Category ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Occurrence", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Completed successfully." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Event" + ] + } + ] + } + }, + "get": { + "tags": [ + "EventWorshipService" + ], + "summary": "Get Worship Service Category for specific Occurrence", + "description": "**Authorization Policy:**
\r\nAllowed With Permission: Read Event
\r\n
\r\n**Data Access:**
\r\nREAD Access to Events.", + "operationId": "GetCategoryForOccurrence", + "parameters": [ + { + "name": "id", + "in": "query", + "description": "Occurrence ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "date", + "in": "query", + "description": "Occurrence date", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "startTime", + "in": "query", + "description": "Occurrence start time", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + } + }, + "/api/export/event-attendee": { + "get": { + "tags": [ + "ExportDownload" + ], + "description": "**Authorization Policy:**
\r\nRequires DataExtractType: EventAttendee
\r\n", + "operationId": "DownloadEventAttendeeExport", + "parameters": [ + { + "name": "File", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Token", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresDataExtractTypes": [ + { + "DataExtractTypes": [ + "EventAttendee" + ] + } + ] + } + } + }, + "/api/export/event-attendee-check-in": { + "get": { + "tags": [ + "ExportDownload" + ], + "description": "**Authorization Policy:**
\r\nRequires DataExtractType: CheckInEventAttendee
\r\n", + "operationId": "DownloadEventAttendeeCheckInExport", + "parameters": [ + { + "name": "File", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Format", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Token", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiresDataExtractTypes": [ + { + "DataExtractTypes": [ + "CheckInEventAttendee" + ] + } + ] + } + } + }, + "/api/infrastructure/has-church-entity-association": { + "get": { + "tags": [ + "Infrastructure" + ], + "summary": "Check if events or schedules have church entity association", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nOnly for trusted applications.", + "operationId": "HasChurchEntityAssociation", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "description": "Church Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns result value." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/infrastructure/which-venues-are-associated": { + "get": { + "tags": [ + "Infrastructure" + ], + "summary": "Check if events have venue association", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nOnly for trusted applications.", + "operationId": "WhichVenuesAreAssociated", + "parameters": [ + { + "name": "venueIds", + "in": "query", + "description": "Comma separated Venue ID list", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns result list." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/infrastructure/which-subvenues-are-associated": { + "get": { + "tags": [ + "Infrastructure" + ], + "summary": "Check if events have subvenue association", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nOnly for trusted applications.", + "operationId": "WhichSubVenuesAreAssociated", + "parameters": [ + { + "name": "subVenueIds", + "in": "query", + "description": "Comma separated SubVenue ID list", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns result list." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/infrastructure/occurrence-venue": { + "put": { + "tags": [ + "Infrastructure" + ], + "summary": "Get enabled venues in events for occurrence IDs", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nOnly for trusted applications.", + "operationId": "GetVenueIdsForOccurrences", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Occurrences list", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceVenueViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceVenueViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceVenueViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceVenueViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns result list." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/infrastructure/schedule/{scheduleId}/venue": { + "get": { + "tags": [ + "Infrastructure" + ], + "summary": "Get enabled venues for an Event by Schedule ID", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nOnly for trusted applications.\r\n\r\n**More Info:**
\r\nProvides similar information as M:Saddleback.Cm.WebApp.Event.Controllers.InfrastructureController.GetVenueIdsForOccurrences(System.Collections.Generic.IEnumerable{Saddleback.Cm.Services.Sdk.Event.ViewModels.OccurrenceVenueViewModel})\r\nbut without specific Occurrences.", + "operationId": "GetVenueIdsForSchedule", + "parameters": [ + { + "name": "scheduleId", + "in": "path", + "description": "Schedule ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "date", + "in": "query", + "description": "Optional: Date/Time for which to check enabled venues. Defaults to now if ommitted.\r\n**IMPORTANT:** This Date/Time is presumed to be in UTC.", + "schema": { + "type": "string" + } + }, + { + "name": "includePastVenues", + "in": "query", + "description": "Boolean: Whether or not to include Venues even if the basis date is past the end date of the event/venue association.\r\nOptional; defaults to false (meaning only include venue associations if the query date is inside the venue association's start and end date range).", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns result list." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/occurrence/{id}": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Gets Occurrence by ID", + "description": "**Data Access:**
\r\nREAD of Occurrence data. No special access requirements.", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Occurrence not found." + } + } + } + }, + "/api/occurrence/{id}/valid-edit-range": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Get Occurrence valid date-time range for edited value", + "description": "**Data Access:**
\r\nNo special access", + "operationId": "GetValidEditRangeById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_DateRangeViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_DateRangeViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_DateRangeViewModel" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Occurrence not found." + } + } + } + }, + "/api/occurrence/date": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Gets Occurrence of schedule by local date time", + "description": "**Data Access:**
\r\nREAD of Occurrence data. No special access requirements.", + "operationId": "GetOccurrenceByDate", + "parameters": [ + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "description": "Date-time in local time OR UTC (depends on utc parameter)", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Schedule not found." + } + } + } + }, + "/api/occurrence/next": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Gets next Occurrence of schedule for specific date (in local time)", + "description": "**Data Access:**
\r\nREAD of Occurrence data. No special access requirements.", + "operationId": "GetNextOccurrence", + "parameters": [ + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "description": "Date-time in local time OR UTC (depends on utc parameter)", + "schema": { + "type": "string" + } + }, + { + "name": "utc", + "in": "query", + "description": "true to use date-time as UTC", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Schedule not found." + } + } + } + }, + "/api/occurrence/next-current-previous": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Gets next, current, and previous (most recent) Occurrences of schedule for specific date (in local time)", + "description": "**Data Access:**
\r\nREAD of Occurrence data. No special access requirements.", + "operationId": "GetNextCurrentPreviousOccurrences", + "parameters": [ + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "description": "Date-time in local time OR UTC (depends on utc parameter)", + "schema": { + "type": "string" + } + }, + { + "name": "utc", + "in": "query", + "description": "true to use date-time as UTC", + "schema": { + "type": "boolean" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrencesViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrencesViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrencesViewModel" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Schedule not found." + } + } + } + }, + "/api/occurrence": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Search Occurrences", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nREAD of Occurrence data. Anonymous access is allowed as there is no sensitive data access involved and this endpoint is used for certain integrations.", + "operationId": "SearchOccurrences", + "parameters": [ + { + "name": "DateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ScheduleEntityTypeId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ScheduleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Schedule not found." + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/v2/occurrence/{id}": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Gets Occurrence by ID", + "description": "**Data Access:**
\r\nNo special access", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + } + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Occurrence not found." + } + } + } + }, + "/api/v2/occurrence/date": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Gets Occurrence of schedule by local date time", + "description": "**Data Access:**
\r\nREAD of Occurrence data. No special access requirements.", + "operationId": "GetOccurrenceByDate", + "parameters": [ + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "description": "Date-time in local time OR UTC (depends on utc parameter)", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Schedule not found." + } + } + } + }, + "/api/v2/occurrence/next": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Gets next Occurrence of schedule for specific date (in local time)", + "description": "**Data Access:**
\r\nREAD of Occurrence data. No special access requirements.", + "operationId": "GetNextOccurrence", + "parameters": [ + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "description": "Date-time in local time OR UTC (depends on utc parameter)", + "schema": { + "type": "string" + } + }, + { + "name": "utc", + "in": "query", + "description": "true to use date-time as UTC", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Schedule not found." + } + } + } + }, + "/api/v2/occurrence/list": { + "post": { + "tags": [ + "Occurrence" + ], + "summary": "Gets Occurrences by ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:internal-systems, hc:schedule-get
\r\n
\r\n**Data Access:**
\r\nInternal or ScheduleGet scope access", + "operationId": "GetOccurrencesByIds", + "requestBody": { + "description": "Occurrence IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + } + } + }, + "400": { + "description": "Invalid model.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + }, + "403": { + "description": "Not authorized.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems", + "hc:schedule-get" + ] + } + ] + } + } + }, + "/api/v2/occurrence/schedule/{id}": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Gets Occurrences by Schedule and Date Range", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:internal-systems, hc:schedule-get
\r\n
\r\n**Data Access:**
\r\nInternal or ScheduleGet scope access", + "operationId": "GetOccurrencesBySchedule", + "parameters": [ + { + "name": "scheduleId", + "in": "path", + "description": "Schedule ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "startDate", + "in": "query", + "description": "Start Date", + "schema": { + "type": "string" + } + }, + { + "name": "endDate", + "in": "query", + "description": "End Date", + "schema": { + "type": "string" + } + }, + { + "name": "statuses", + "in": "query", + "description": "Occurrence Statuses", + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + } + } + }, + "400": { + "description": "Invalid model.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + }, + "403": { + "description": "Not authorized.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems", + "hc:schedule-get" + ] + } + ] + } + } + }, + "/api/v2/occurrence/getsert": { + "post": { + "tags": [ + "Occurrence" + ], + "summary": "Getsert Occurrence", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Scopes: hc:internal-systems, hc:schedule-get
\r\n
\r\n**Data Access:**
\r\nInternal or ScheduleGet scope access", + "operationId": "Getsert", + "requestBody": { + "description": "Occurrence", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + } + }, + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + } + } + }, + "400": { + "description": "Invalid model.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + }, + "403": { + "description": "Not authorized.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems", + "hc:schedule-get" + ] + } + ] + } + } + }, + "/api/v2/occurrence/next-current-previous": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Gets next, current, and previous (most recent) Occurrences of schedule for specific date (in local time)", + "description": "**Data Access:**
\r\nREAD of Occurrence data. No special access requirements.", + "operationId": "GetNextCurrentPreviousOccurrences", + "parameters": [ + { + "name": "scheduleId", + "in": "query", + "description": "Schedule ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "dateTime", + "in": "query", + "description": "Date-time in local time OR UTC (depends on utc parameter)", + "schema": { + "type": "string" + } + }, + { + "name": "utc", + "in": "query", + "description": "true to use date-time as UTC", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrencesViewModel_V2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrencesViewModel_V2" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_OccurrencesViewModel_V2" + } + } + } + }, + "400": { + "description": "Invalid model.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + }, + "403": { + "description": "Not authorized.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + }, + "404": { + "description": "Schedule not found.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_ProblemDetails" + } + } + } + } + } + } + }, + "/api/v2/occurrence": { + "get": { + "tags": [ + "Occurrence" + ], + "summary": "Searches Occurrences", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**Data Access:**
\r\nREAD of Occurrence data. Anonymous access is allowed as there is no sensitive data access involved and this endpoint is used for certain integrations.", + "operationId": "SearchOccurrences", + "parameters": [ + { + "name": "DateRangeStart", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "DateRangeEnd", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "ChurchEntityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ScheduleEntityTypeId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "ScheduleId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Completed successfully.", + "content": { + "text/plain": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PublicOccurrenceViewModel_V2" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PublicOccurrenceViewModel_V2" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PublicOccurrenceViewModel_V2" + } + } + } + } + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + }, + "404": { + "description": "Schedule not found." + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/reminder/copy-by-schedule": { + "post": { + "tags": [ + "Reminder" + ], + "summary": "Copies reminders from sourceScheduleId to targetScheduleId", + "operationId": "CopyReminders", + "parameters": [ + { + "name": "sourceScheduleId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "targetScheduleId", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/reminder/{id}": { + "get": { + "tags": [ + "Reminder" + ], + "summary": "Gets reminder by ID", + "description": "**Data Access:**
\r\nREAD Access to Reminders.", + "operationId": "GetReminderById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Reminder ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Reminder." + }, + "403": { + "description": "Not authorized." + } + } + }, + "put": { + "tags": [ + "Reminder" + ], + "summary": "Updates Reminder", + "description": "**Data Access:**
\r\nWRITE Access to Reminder.", + "operationId": "UpdateReminder", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Reminder ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Reminder Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_ReminderViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_ReminderViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_ReminderViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_ReminderViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Reminder." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + } + }, + "delete": { + "tags": [ + "Reminder" + ], + "summary": "Deletes Reminder", + "description": "**Data Access:**
\r\nWRITE Access to Reminder.", + "operationId": "DeleteReminder", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Reminder ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Reminder was deleted successfully." + }, + "403": { + "description": "Not authorized." + }, + "409": { + "description": "Reminder is in use." + } + } + } + }, + "/api/reminder": { + "get": { + "tags": [ + "Reminder" + ], + "summary": "Gets Reminders list by Reminder IDs", + "description": "**Data Access:**
\r\nREAD Access to Reminders.", + "operationId": "GetRemindersByIds", + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "Reminder IDs", + "schema": { + "type": "string" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Reminders." + }, + "403": { + "description": "Not authorized." + } + } + }, + "post": { + "tags": [ + "Reminder" + ], + "summary": "Creates Reminder", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With one of these Permissions: Create Person Notes, Update Person Notes, Update Event, Update Serving Opportunities
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Reminder.", + "operationId": "CreateReminder", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Reminder Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_ReminderViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_ReminderViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_ReminderViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_ReminderViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Reminder." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Create Person Notes" + ] + }, + { + "Permissions": [ + "Update Person Notes" + ] + }, + { + "Permissions": [ + "Update Event" + ] + }, + { + "Permissions": [ + "Update Serving Opportunities" + ] + } + ] + } + } + }, + "/api/reminder/schedule/{scheduleId}": { + "get": { + "tags": [ + "Reminder" + ], + "summary": "Gets all Reminders for Schedule with pagination", + "description": "**Data Access:**
\r\nREAD Access to Reminders.", + "operationId": "GetRemindersByScheduleId", + "parameters": [ + { + "name": "scheduleId", + "in": "path", + "description": "Schedule ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Reminder list." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/reminder/occurrence/{occurrenceId}": { + "get": { + "tags": [ + "Reminder" + ], + "summary": "Gets all Reminders for Occurrence with pagination", + "description": "**Data Access:**
\r\nREAD Access to Reminders.", + "operationId": "GetRemindersByOccurrenceId", + "parameters": [ + { + "name": "occurrenceId", + "in": "path", + "description": "Occurrence ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeRecurring", + "in": "query", + "description": "Return recurring reminders too", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Reminder list." + }, + "403": { + "description": "Not authorized." + } + } + } + }, + "/api/reminder/email-variables": { + "get": { + "tags": [ + "Reminder" + ], + "summary": "Get email variables", + "description": "**Data Access:**
\r\nNo specific access", + "operationId": "GetEmailVariables", + "parameters": [ + { + "name": "scheduleEntityTypeId", + "in": "query", + "description": "Schedule Entity Type Id", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/reminder/attachment": { + "post": { + "tags": [ + "Reminder" + ], + "summary": "Upload a File for Email Attachment", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Update Serving Opportunities, Update Event
\r\n
\r\n**Data Access:**
\r\nUploads the file to cloud storage (Amazon S3) where it can be viewed/downloaded by unauthenticated callers\r\nwith the URL (intended usage is to embed the URL to the file in an email in lieu of actually \"attaching\" the file).", + "operationId": "UploadAttachment", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + }, + "encoding": { + "file": { + "style": "form" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + }, + "application/json": { + "schema": { + "type": "string" + } + }, + "text/json": { + "schema": { + "type": "string" + } + } + } + }, + "400": { + "description": "File is empty.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Serving Opportunities" + ] + }, + { + "Permissions": [ + "Update Event" + ] + } + ] + } + } + }, + "/api/room-category/{id}": { + "get": { + "tags": [ + "RoomCategory" + ], + "summary": "Gets room category by ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Read Event, Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nREAD Access to room categories.", + "operationId": "GetRoomCategoryById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Room category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Room category." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + }, + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + }, + "put": { + "tags": [ + "RoomCategory" + ], + "summary": "Updates Room category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nWRITE Access to room category.", + "operationId": "UpdateRoomCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Room category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Room category data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_RoomCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_RoomCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_RoomCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_RoomCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Room category." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + }, + "delete": { + "tags": [ + "RoomCategory" + ], + "summary": "Deletes Room category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nWRITE Access to room category.", + "operationId": "DeleteRoomCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Room category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Room category was deleted successfully." + }, + "403": { + "description": "Not authorized." + }, + "409": { + "description": "Room category is in use." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + } + }, + "/api/room-category": { + "get": { + "tags": [ + "RoomCategory" + ], + "summary": "Gets all room categories with pagination", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Read Event, Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nREAD Access to room categories.", + "operationId": "GetAllRoomCategories", + "parameters": [ + { + "name": "pageSize", + "in": "query", + "description": "Page size", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Room category list." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Event" + ] + }, + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + }, + "post": { + "tags": [ + "RoomCategory" + ], + "summary": "Creates Room category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Event Settings
\r\n
\r\n**Data Access:**
\r\nWRITE Access to room category.", + "operationId": "CreateRoomCategory", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Room category Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_RoomCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_RoomCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_RoomCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_RoomCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Room category." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Event Settings" + ] + } + ] + } + } + }, + "/api/rpc": { + "post": { + "tags": [ + "Rpc" + ], + "summary": "Handle RPC request", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
", + "operationId": "Rpc", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "RPC command", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_RpcRestContainer" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_RpcRestContainer" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_App_RpcRestContainer" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_App_RpcRestContainer" + } + } + } + }, + "responses": { + "200": { + "description": "Returns RPC operation result." + }, + "400": { + "description": "Invalid RPC model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/schedule/reset-cache": { + "post": { + "tags": [ + "Schedule" + ], + "summary": "Clear Schedule cache on all App instances", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Access Developer Diagnostics
\r\n
\r\n**Data Access:**
\r\nReloads Schedule cache from database. No modifications to any persistent data.", + "operationId": "ResetScheduleCache", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Operation is completed successfully." + }, + "403": { + "description": "Not authorized. Must have the required Permissions." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Access Developer Diagnostics" + ] + } + ] + } + } + }, + "/api/version": { + "get": { + "tags": [ + "Version" + ], + "operationId": "Get", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/worship-service-category/{id}": { + "get": { + "tags": [ + "WorshipServiceCategory" + ], + "summary": "Gets Worship Service category by ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Event
\r\n
\r\n**Data Access:**
\r\nREAD Access to Worship Service categories.", + "operationId": "GetWorshipServiceCategoryById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Worship Service Category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns WorshipServiceCategory." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + }, + "put": { + "tags": [ + "WorshipServiceCategory" + ], + "summary": "Updates Worship Service Category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Event
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Worship Service category.", + "operationId": "UpdateWorshipServiceCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Worship Service category data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_WorshipServiceCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_WorshipServiceCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_WorshipServiceCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_WorshipServiceCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Worship Service category." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Event" + ] + } + ] + } + }, + "delete": { + "tags": [ + "WorshipServiceCategory" + ], + "summary": "Deletes Worship Service Category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Event
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Worship Service category.", + "operationId": "DeleteWorshipServiceCategory", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Event category ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Worship Service category was deleted successfully." + }, + "403": { + "description": "Not authorized." + }, + "409": { + "description": "Worship Service Category is in use." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Event" + ] + } + ] + } + } + }, + "/api/worship-service-category": { + "get": { + "tags": [ + "WorshipServiceCategory" + ], + "summary": "Gets all Worship Service Categories with pagination", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Read Event
\r\n
\r\n**Data Access:**
\r\nREAD Access to Worship Service categories.", + "operationId": "GetAllWorshipServiceCategories", + "parameters": [ + { + "name": "pageSize", + "in": "query", + "description": "Page size", + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "Page number", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Returns Worship Service category list." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Read Event" + ] + } + ] + } + }, + "post": { + "tags": [ + "WorshipServiceCategory" + ], + "summary": "Creates Worship Service Category", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Update Event
\r\n
\r\n**Data Access:**
\r\nWRITE Access to Worship Service category.", + "operationId": "CreateWorshipServiceCategory", + "parameters": [ + { + "name": "api-version", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Worship Service category Data", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Event_WorshipServiceCategoryViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Event_WorshipServiceCategoryViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Event_WorshipServiceCategoryViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Event_WorshipServiceCategoryViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Returns Worship Service category." + }, + "400": { + "description": "Invalid model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Update Event" + ] + } + ] + } + } + } + }, + "components": { + "schemas": { + "Event_AccommodationViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "nullable": true + }, + "description": { + "maxLength": 2048, + "minLength": 0, + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + }, + "isUsed": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_AttendanceViewModel": { + "type": "object", + "properties": { + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "actualDateTime": { + "type": "string", + "format": "date-time" + }, + "attended": { + "type": "boolean", + "nullable": true + }, + "past": { + "type": "boolean" + }, + "assigned": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Event_App_AttendeeCheckInViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "subVenueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_AttendeeCheckInStatus" + }, + "checkInTime": { + "type": "string", + "description": "Check in time in UTC", + "format": "date-time", + "nullable": true + }, + "checkOutTime": { + "type": "string", + "description": "Check out time in UTC", + "format": "date-time", + "nullable": true + }, + "guardianPersonId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "contactPersonId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "checkedInBy": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Event_PersonViewModel" + }, + "contactPerson": { + "$ref": "#/components/schemas/Event_PersonViewModel" + }, + "subVenue": { + "$ref": "#/components/schemas/Event_SubVenueViewModel" + }, + "checkOutQrCode": { + "type": "string", + "description": "Check out QR code BMP image", + "format": "byte", + "nullable": true + }, + "checkOutQrCodeBase64": { + "type": "string", + "description": "Check out QR code BMP image base64 string", + "nullable": true + }, + "coreMilestones": { + "$ref": "#/components/schemas/Event_CoreMilestonesViewModel" + }, + "checkInRoomId": { + "type": "integer", + "description": "Initial room ID for specific attendee check-in", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_AttendeeCheckInsViewModel": { + "type": "object", + "properties": { + "attendees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + }, + "nullable": true + }, + "total": { + "type": "integer", + "format": "int32" + }, + "maleCount": { + "type": "integer", + "format": "int32" + }, + "femaleCount": { + "type": "integer", + "format": "int32" + }, + "roomStatistics": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Dto_RoomStatistics" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_BulkAttendeeCheckOutViewModel": { + "type": "object", + "properties": { + "attendeePersonIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "checkOutDate": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_BulkAttendeeTransferViewModel": { + "type": "object", + "properties": { + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "subVenueId": { + "type": "integer", + "format": "int32" + }, + "attendeePersonIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_CheckInEventViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "attendees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_AttendeeCheckInViewModel" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryName": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "canRegister": { + "type": "boolean" + }, + "isPaid": { + "type": "boolean" + }, + "isSelfCheckInEnabled": { + "type": "boolean" + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxCapacityUnpublish": { + "type": "boolean" + }, + "webHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "companionAppHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "thumbnail": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "allowSingleOccurrenceRegistration": { + "type": "boolean" + }, + "recurring": { + "type": "boolean" + }, + "virtualUrl": { + "type": "string", + "nullable": true + }, + "isVirtual": { + "type": "boolean" + }, + "registrationStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "registrationEndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isRegistrationClosed": { + "type": "boolean" + }, + "publishedEmail": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "publishedPhone": { + "maxLength": 33, + "minLength": 0, + "type": "string", + "nullable": true + }, + "privateId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isPrivate": { + "type": "boolean" + }, + "eventContactIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "tagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "schedule": { + "$ref": "#/components/schemas/Event_ScheduleViewModel" + }, + "venues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueViewModel" + }, + "nullable": true + }, + "subVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventSubVenueViewModel" + }, + "nullable": true + }, + "accommodations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + }, + "nullable": true + }, + "publicationStatuses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventPublishViewModel" + }, + "nullable": true + }, + "publishedChurchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "worshipServiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "customRegistrationNotificationSettings": { + "$ref": "#/components/schemas/Event_EventCustomRegistrationNotificationSettingsViewModel" + }, + "allowGuestRegistration": { + "type": "boolean" + }, + "publishedContactName": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_CheckInRoomViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "subVenueId": { + "type": "integer", + "description": "Room ID (Sub-venue should be a room or venue if no other rooms exist)", + "format": "int32" + }, + "isRoomForChildren": { + "type": "boolean" + }, + "noGradeRestriction": { + "type": "boolean" + }, + "overrideVolunteerRequirements": { + "type": "boolean" + }, + "openTime": { + "type": "string", + "description": "Open time in UTC", + "format": "date-time", + "nullable": true + }, + "closeTime": { + "type": "string", + "description": "Close time in UTC", + "format": "date-time", + "nullable": true + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attendeeCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "volunteerCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isFull": { + "type": "boolean", + "nullable": true + }, + "roomCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "roomCategory": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_CheckInRoomsViewModel": { + "type": "object", + "properties": { + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "statistics": { + "$ref": "#/components/schemas/Event_Dto_CheckInRoomStatistics" + }, + "rooms": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_CheckInRoomViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_DataExtractFormat": { + "enum": [ + "Unknown", + "Excel", + "CSV" + ], + "type": "string" + }, + "Event_App_DataExtractPreviewViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_DateEventStatisticsViewModel": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "ministryEventCount": { + "type": "integer", + "format": "int32" + }, + "campusEventCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Event_App_EventAttendeeRegistrationViewModel": { + "required": [ + "email", + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "eventId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceDateTime": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "answers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_ConnectionQuestionAnswerViewModel" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "email": { + "pattern": "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:|\\\\)+)\\])", + "type": "string" + }, + "emailVerifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isEmailVerified": { + "type": "boolean" + }, + "sourceClientId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_EventHistoricPersonsViewModel": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attendees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventHistoricAttendeeViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_EventStatisticsViewModel": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32" + }, + "myEvents": { + "type": "integer", + "format": "int32" + }, + "unpublished": { + "type": "integer", + "format": "int32" + }, + "ministry": { + "type": "integer", + "format": "int32" + }, + "withRegistration": { + "type": "integer", + "format": "int32" + }, + "recurring": { + "type": "integer", + "format": "int32" + }, + "campus": { + "type": "integer", + "format": "int32" + }, + "byDate": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_DateEventStatisticsViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_EventbriteOrganizerViewModel": { + "type": "object", + "properties": { + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "organizerId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_IsoDayOfWeek": { + "enum": [ + "None", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" + ], + "type": "string" + }, + "Event_App_OccurrenceIdOrDateViewModel": { + "type": "object", + "properties": { + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "actualDateTime": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Event_App_OpenRoomViewModel": { + "type": "object", + "properties": { + "occurrenceId": { + "type": "integer", + "description": "Occurrence ID", + "format": "int32" + }, + "roomId": { + "type": "integer", + "description": "Room (SubVenue) ID", + "format": "int32" + }, + "isRoomForChildren": { + "type": "boolean", + "description": "True for children rooms" + }, + "noGradeRestriction": { + "type": "boolean", + "description": "True to override child room requirements" + }, + "overrideVolunteerRequirements": { + "type": "boolean", + "description": "True to cancel volunteer requirements" + }, + "labelNumbers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Dto_LabelNumber" + }, + "description": "Label numbers for the room for this occurrence", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_ProblemDetails": { + "type": "object", + "properties": { + "type": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "status": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "detail": { + "type": "string", + "nullable": true + }, + "instance": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": { } + }, + "Event_App_RpcRestContainer": { + "type": "object", + "properties": { + "body": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_ServingOpportunityVolunteerRoomInfoViewModel": { + "type": "object", + "properties": { + "subVenueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "checkOutAllowed": { + "type": "boolean" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "ministryName": { + "type": "string", + "nullable": true + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityName": { + "type": "string", + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Event_PersonViewModel" + } + }, + "additionalProperties": false + }, + "Event_App_SetAttendanceViewModel": { + "type": "object", + "properties": { + "attended": { + "type": "boolean", + "description": "Attendance status. Null means 'not set'", + "nullable": true + }, + "occurrences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_App_OccurrenceIdOrDateViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_App_SortDirection": { + "enum": [ + "Ascending", + "Descending" + ], + "type": "string" + }, + "Event_App_Sorting": { + "type": "object", + "properties": { + "sortColumn": { + "type": "string", + "nullable": true + }, + "sortDirection": { + "$ref": "#/components/schemas/Event_App_SortDirection" + } + }, + "additionalProperties": false + }, + "Event_CheckInSmsViewModel": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "childPersonIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "recipientIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "message": { + "maxLength": 153, + "type": "string" + } + }, + "additionalProperties": false + }, + "Event_CommunicationTemplateAttachmentViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "emailTemplateId": { + "type": "integer", + "format": "int32" + }, + "fileName": { + "type": "string", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "nullable": true + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_CommunicationTemplateDetailViewModel": { + "required": [ + "churchEntityId", + "name" + ], + "type": "object", + "properties": { + "emailSubject": { + "$ref": "#/components/schemas/Event_TemplateViewModel" + }, + "emailBodyContent": { + "$ref": "#/components/schemas/Event_TemplateViewModel" + }, + "emailBodyLayout": { + "$ref": "#/components/schemas/Event_TemplateViewModel" + }, + "sms": { + "$ref": "#/components/schemas/Event_TemplateViewModel" + }, + "emailAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_CommunicationTemplateAttachmentViewModel" + }, + "nullable": true + }, + "tempEmailAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Model_CommunicationTemplateTempAttachmentDto" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "emailBody": { + "type": "string", + "nullable": true + }, + "emailSubjectContent": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + }, + "smsBody": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "isEmail": { + "type": "boolean" + }, + "isSMS": { + "type": "boolean" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "thumbnailImageUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_ConnectionQuestionAnswerViewModel": { + "required": [ + "answerSourceId", + "questionId" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "questionId": { + "type": "integer", + "format": "int32" + }, + "answerSourceId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "answerCustomFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "questionCustomFieldId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "title": { + "type": "string", + "nullable": true + }, + "booleanValue": { + "type": "boolean", + "nullable": true + }, + "dateTimeValue": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "numericValue": { + "type": "number", + "format": "double", + "nullable": true + }, + "textValue": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdBy": { + "$ref": "#/components/schemas/Event_NamedEntityViewModel" + }, + "modifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "modifiedBy": { + "$ref": "#/components/schemas/Event_NamedEntityViewModel" + } + }, + "additionalProperties": false + }, + "Event_CoreMilestonesViewModel": { + "type": "object", + "properties": { + "uniquePersonID": { + "type": "integer", + "format": "int32" + }, + "hasAcceptedChrist": { + "type": "boolean" + }, + "isBaptised": { + "type": "boolean" + }, + "hasAttendedClass101": { + "type": "boolean" + }, + "hasAttendedClass201": { + "type": "boolean" + }, + "hasAttendedClass301": { + "type": "boolean" + }, + "hasAttendedClass401": { + "type": "boolean" + }, + "hasSignedMembershipAgreement": { + "type": "boolean" + }, + "hasSignedMaturityCovenant": { + "type": "boolean" + }, + "hasSignedMinistryCovenant": { + "type": "boolean" + }, + "hasSignedMissionCovenant": { + "type": "boolean" + }, + "acceptedChristDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "baptismDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "attendedClass101Date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "attendedClass201Date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "attendedClass301Date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "attendedClass401Date": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMembershipAgreementDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMaturityCovenantDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMinistryCovenantDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "signedMissionCovenantDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "firstContactDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "congregationDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isInMinistry": { + "type": "boolean" + }, + "firstMinistryJoinDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isInSmallGroup": { + "type": "boolean" + }, + "firstSmallGroupJoinDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isActiveInMissions": { + "type": "boolean" + }, + "activeInMissionsDate": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_DateRangeViewModel": { + "type": "object", + "properties": { + "startDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDateTime": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_Dto_AddMinistryMemberResult": { + "type": "object", + "properties": { + "addedToMinistry": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Event_Dto_AttendeeSmsStatusData": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "contactPersonId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Event_Model_Person" + }, + "status": { + "$ref": "#/components/schemas/Event_Dto_NotificationSmsStatus" + } + }, + "additionalProperties": false + }, + "Event_Dto_AttendeeSmsStatuses": { + "type": "object", + "properties": { + "hasSmsConfigurationError": { + "type": "boolean" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Dto_AttendeeSmsStatusData" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_Dto_CheckInRoomStatistics": { + "type": "object", + "properties": { + "totalRooms": { + "type": "integer", + "format": "int32" + }, + "totalOpenRooms": { + "type": "integer", + "format": "int32" + }, + "totalCapacity": { + "type": "integer", + "format": "int32" + }, + "totalAttendeesCheckedIn": { + "type": "integer", + "format": "int32" + }, + "totalVolunteersCheckedIn": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Event_Dto_EventFilterStatus": { + "enum": [ + "Upcoming", + "Past", + "Cancelled" + ], + "type": "string" + }, + "Event_Dto_EventOccurrenceStatistics": { + "type": "object", + "properties": { + "eventId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "attended": { + "type": "integer", + "format": "int32" + }, + "unattended": { + "type": "integer", + "format": "int32" + }, + "count": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "capacity": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Event_Dto_EventPublishDto": { + "type": "object", + "properties": { + "destination": { + "$ref": "#/components/schemas/Event_Model_EventPublishDestinationType" + }, + "publish": { + "type": "boolean" + }, + "isPrivate": { + "type": "boolean" + }, + "churchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_Dto_LabelNumber": { + "type": "object", + "properties": { + "checkInLabelId": { + "type": "integer", + "format": "int32" + }, + "number": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Event_Dto_NotificationSmsStatus": { + "enum": [ + "Available", + "PersonNotFound", + "NoCellPhone", + "NoEmergencyContactCellPhone", + "HasNotConsented", + "DoNotTextIsSet", + "StopWasSent", + "PersonIsDeceased", + "NotInWhiteList", + "Failed" + ], + "type": "string" + }, + "Event_Dto_PersonNotesCount": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "notesCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Event_Dto_RoomStatistics": { + "type": "object", + "properties": { + "subVenueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "checkedInCount": { + "type": "integer", + "format": "int32" + }, + "checkedOutCount": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Event_Dto_WebHeader": { + "type": "object", + "properties": { + "value": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EmailViewModel": { + "required": [ + "body", + "replyEmail", + "senderName", + "subject" + ], + "type": "object", + "properties": { + "recipientIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "senderName": { + "type": "string" + }, + "fromEmail": { + "type": "string", + "nullable": true + }, + "replyEmail": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "body": { + "type": "string" + }, + "bodyTemplateName": { + "type": "string", + "nullable": true + }, + "bodyMergeVars": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "attachments": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventAttendeeOccurrenceViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "subVenueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attended": { + "type": "boolean", + "nullable": true + }, + "isCheckedIn": { + "type": "boolean", + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Event_PersonViewModel" + }, + "answers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_ConnectionQuestionAnswerViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventAttendeeOccurrencesViewModel": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "attendees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventAttendeeOccurrenceViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventAttendeeViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "subVenueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "answers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_ConnectionQuestionAnswerViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventCategoryViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "nullable": true + }, + "description": { + "maxLength": 2048, + "minLength": 0, + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + }, + "isUsed": { + "type": "boolean", + "nullable": true + }, + "eventCount": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventCustomRegistrationNotificationSettingsViewModel": { + "type": "object", + "properties": { + "communicationTemplateId": { + "type": "integer", + "format": "int32" + }, + "communicationTemplate": { + "$ref": "#/components/schemas/Event_CommunicationTemplateDetailViewModel" + }, + "senderDisplayName": { + "type": "string", + "nullable": true + }, + "senderEmailAddress": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventDateViewModel": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time" + }, + "occurrences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_OccurrenceEventViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventDetailsViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryId": { + "type": "integer", + "format": "int32" + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "canRegister": { + "type": "boolean" + }, + "isPaid": { + "type": "boolean" + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxCapacityUnpublish": { + "type": "boolean" + }, + "webHeader": { + "type": "string", + "nullable": true + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "allowSingleOccurrenceRegistration": { + "type": "boolean" + }, + "allowGuestRegistration": { + "type": "boolean" + }, + "recurring": { + "type": "boolean" + }, + "isVirtual": { + "type": "boolean" + }, + "publishedEmail": { + "type": "string", + "nullable": true + }, + "publishedContactName": { + "type": "string", + "nullable": true + }, + "publishedPhone": { + "type": "string", + "nullable": true + }, + "privateId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isPrivate": { + "type": "boolean" + }, + "eventCategoryName": { + "type": "string", + "nullable": true + }, + "tagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "schedule": { + "$ref": "#/components/schemas/Event_SchedulePublicViewModel" + }, + "eventContacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PersonPublicContactViewModel" + }, + "nullable": true + }, + "eventVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueDetailsViewModel" + }, + "nullable": true + }, + "venues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueViewModel" + }, + "nullable": true + }, + "subVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventSubVenueViewModel" + }, + "nullable": true + }, + "accommodations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + }, + "nullable": true + }, + "changeableSequenceIds": { + "type": "object", + "additionalProperties": { + "type": "boolean", + "nullable": true + }, + "nullable": true + }, + "worshipServiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "relatedEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventItemViewModel" + }, + "nullable": true + }, + "occurrence": { + "$ref": "#/components/schemas/Event_OccurrencePublicViewModel" + }, + "slug": { + "type": "string", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "Event_EventDetailsViewModel_V2": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryName": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "canRegister": { + "type": "boolean" + }, + "isPaid": { + "type": "boolean" + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "webHeader": { + "type": "string", + "nullable": true + }, + "webHeaderUrl": { + "type": "string", + "nullable": true + }, + "companionAppHeader": { + "type": "string", + "nullable": true + }, + "companionAppHeaderUrl": { + "type": "string", + "nullable": true + }, + "thumbnail": { + "type": "string", + "nullable": true + }, + "thumbnailUrl": { + "type": "string", + "nullable": true + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "allowSingleOccurrenceRegistration": { + "type": "boolean" + }, + "allowGuestRegistration": { + "type": "boolean" + }, + "recurring": { + "type": "boolean" + }, + "isVirtual": { + "type": "boolean" + }, + "publishedEmail": { + "type": "string", + "nullable": true + }, + "publishedContactName": { + "type": "string", + "nullable": true + }, + "publishedPhone": { + "type": "string", + "nullable": true + }, + "tagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "schedule": { + "$ref": "#/components/schemas/Event_ScheduleViewModel_V2" + }, + "eventContacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PersonPublicContactViewModel" + }, + "nullable": true + }, + "eventVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueDetailsViewModel" + }, + "nullable": true + }, + "venues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueViewModel_V2" + }, + "nullable": true + }, + "subVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventSubVenueViewModel_V2" + }, + "nullable": true + }, + "accommodations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + }, + "nullable": true + }, + "changeableSequenceIds": { + "type": "object", + "additionalProperties": { + "type": "boolean", + "nullable": true + }, + "nullable": true + }, + "worshipServiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "relatedEvents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventItemViewModel_V2" + }, + "nullable": true + }, + "publicationStatuses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PublicEventPublishViewModel" + }, + "nullable": true + }, + "occurrence": { + "$ref": "#/components/schemas/Event_PublicOccurrenceViewModel_V2" + }, + "registrationCapacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "registrationCount": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "localRegistrationStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "localRegistrationEndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "utcRegistrationStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "utcRegistrationEndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isRegistrationClosed": { + "type": "boolean" + }, + "slug": { + "type": "string", + "nullable": true, + "readOnly": true + } + }, + "additionalProperties": false + }, + "Event_EventHistoricAttendeeViewModel": { + "type": "object", + "properties": { + "eventId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "registrationDate": { + "type": "integer", + "format": "int64" + }, + "person": { + "$ref": "#/components/schemas/Event_PersonViewModel" + } + }, + "additionalProperties": false + }, + "Event_EventItemViewModel": { + "type": "object", + "properties": { + "eventStatus": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryId": { + "type": "integer", + "format": "int32" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "schedule": { + "$ref": "#/components/schemas/Event_SchedulePublicViewModel" + }, + "occurrence": { + "$ref": "#/components/schemas/Event_OccurrencePublicViewModel" + }, + "tagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isVirtual": { + "type": "boolean" + }, + "eventVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueDetailsViewModel" + }, + "nullable": true + }, + "publishedChurchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "slug": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "webHeader": { + "type": "string", + "nullable": true + }, + "webHeaderUrl": { + "type": "string", + "nullable": true + }, + "companionAppHeader": { + "type": "string", + "nullable": true + }, + "companionAppHeaderUrl": { + "type": "string", + "nullable": true + }, + "thumbnail": { + "type": "string", + "nullable": true + }, + "thumbnailUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventItemViewModel_V2": { + "type": "object", + "properties": { + "eventStatus": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryId": { + "type": "integer", + "format": "int32" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "schedule": { + "$ref": "#/components/schemas/Event_ScheduleViewModel_V2" + }, + "occurrence": { + "$ref": "#/components/schemas/Event_PublicOccurrenceViewModel_V2" + }, + "tagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isVirtual": { + "type": "boolean" + }, + "eventVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueDetailsViewModel" + }, + "nullable": true + }, + "slug": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "webHeader": { + "type": "string", + "nullable": true + }, + "webHeaderUrl": { + "type": "string", + "nullable": true + }, + "companionAppHeader": { + "type": "string", + "nullable": true + }, + "companionAppHeaderUrl": { + "type": "string", + "nullable": true + }, + "thumbnail": { + "type": "string", + "nullable": true + }, + "thumbnailUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventLiteViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryName": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "canRegister": { + "type": "boolean" + }, + "isPaid": { + "type": "boolean" + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxCapacityUnpublish": { + "type": "boolean" + }, + "webHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "allowSingleOccurrenceRegistration": { + "type": "boolean" + }, + "recurring": { + "type": "boolean" + }, + "virtualUrl": { + "type": "string", + "nullable": true + }, + "isVirtual": { + "type": "boolean" + }, + "publishedEmail": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "publishedPhone": { + "maxLength": 33, + "minLength": 0, + "type": "string", + "nullable": true + }, + "worshipServiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventMinistryInviteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "ministryId": { + "type": "integer", + "format": "int32" + }, + "ministryName": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_EventMinistryInviteStatus" + } + }, + "additionalProperties": false + }, + "Event_EventOccurrenceResponseViewModel_V2": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isVirtual": { + "type": "boolean" + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "eventVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueDetailsViewModel" + }, + "nullable": true + }, + "occurrence": { + "$ref": "#/components/schemas/Event_PublicOccurrenceViewModel_Core_V2" + } + }, + "additionalProperties": false + }, + "Event_EventOccurrenceViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "occurrence": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryName": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "canRegister": { + "type": "boolean" + }, + "isPaid": { + "type": "boolean" + }, + "isSelfCheckInEnabled": { + "type": "boolean" + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxCapacityUnpublish": { + "type": "boolean" + }, + "webHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "companionAppHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "thumbnail": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "allowSingleOccurrenceRegistration": { + "type": "boolean" + }, + "recurring": { + "type": "boolean" + }, + "virtualUrl": { + "type": "string", + "nullable": true + }, + "isVirtual": { + "type": "boolean" + }, + "registrationStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "registrationEndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isRegistrationClosed": { + "type": "boolean" + }, + "publishedEmail": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "publishedPhone": { + "maxLength": 33, + "minLength": 0, + "type": "string", + "nullable": true + }, + "privateId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isPrivate": { + "type": "boolean" + }, + "eventContactIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "tagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "schedule": { + "$ref": "#/components/schemas/Event_ScheduleViewModel" + }, + "venues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueViewModel" + }, + "nullable": true + }, + "subVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventSubVenueViewModel" + }, + "nullable": true + }, + "accommodations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + }, + "nullable": true + }, + "publicationStatuses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventPublishViewModel" + }, + "nullable": true + }, + "publishedChurchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "worshipServiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "customRegistrationNotificationSettings": { + "$ref": "#/components/schemas/Event_EventCustomRegistrationNotificationSettingsViewModel" + }, + "allowGuestRegistration": { + "type": "boolean" + }, + "publishedContactName": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventPersonViewModel": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "events": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventPublishViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "destination": { + "$ref": "#/components/schemas/Event_Model_EventPublishDestinationType" + }, + "status": { + "$ref": "#/components/schemas/Event_Model_EventPublishStatus" + }, + "publishDate": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string", + "nullable": true + }, + "churchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventRegistrationCancellationRequestViewModel": { + "type": "object", + "properties": { + "token": { + "type": "string", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventSubVenueOccurrenceViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "subVenueId": { + "type": "integer", + "format": "int32" + }, + "roomCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventSubVenueViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "subVenueId": { + "type": "integer", + "format": "int32" + }, + "roomCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "capacity": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "labelNumbers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Dto_LabelNumber" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventSubVenueViewModel_V2": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "subVenueId": { + "type": "integer", + "format": "int32" + }, + "roomCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "capacity": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventVenueDetailsViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "latitude": { + "maximum": 90, + "minimum": -90, + "type": "number", + "format": "double", + "nullable": true + }, + "longitude": { + "maximum": 180, + "minimum": -180, + "type": "number", + "format": "double", + "nullable": true + }, + "venueAddressId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "hasAssociation": { + "type": "boolean", + "nullable": true + }, + "venueAddress": { + "$ref": "#/components/schemas/Event_VenueAddressViewModel" + }, + "venueCapacity": { + "type": "integer", + "format": "int32" + }, + "totalVenueCapacity": { + "type": "integer", + "format": "int32" + }, + "subVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_SubVenueViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventVenueOccurrenceViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "venueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "privateAddress": { + "type": "boolean" + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "virtualUrl": { + "type": "string", + "nullable": true + }, + "isVirtual": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Event_EventVenueViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "venueId": { + "type": "integer", + "format": "int32" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "privateAddress": { + "type": "boolean" + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventVenueViewModel_V2": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "venueId": { + "type": "integer", + "format": "int32" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "privateAddress": { + "type": "boolean" + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_EventViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryName": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "canRegister": { + "type": "boolean" + }, + "isPaid": { + "type": "boolean" + }, + "isSelfCheckInEnabled": { + "type": "boolean" + }, + "capacity": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "maxCapacityUnpublish": { + "type": "boolean" + }, + "webHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "companionAppHeader": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "thumbnail": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "allowSingleOccurrenceRegistration": { + "type": "boolean" + }, + "recurring": { + "type": "boolean" + }, + "virtualUrl": { + "type": "string", + "nullable": true + }, + "isVirtual": { + "type": "boolean" + }, + "registrationStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "registrationEndDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isRegistrationClosed": { + "type": "boolean" + }, + "publishedEmail": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + }, + "publishedPhone": { + "maxLength": 33, + "minLength": 0, + "type": "string", + "nullable": true + }, + "privateId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "isPrivate": { + "type": "boolean" + }, + "eventContactIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "tagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "schedule": { + "$ref": "#/components/schemas/Event_ScheduleViewModel" + }, + "venues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueViewModel" + }, + "nullable": true + }, + "subVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventSubVenueViewModel" + }, + "nullable": true + }, + "accommodations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_AccommodationViewModel" + }, + "nullable": true + }, + "publicationStatuses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventPublishViewModel" + }, + "nullable": true + }, + "publishedChurchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "worshipServiceCategoryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "customRegistrationNotificationSettings": { + "$ref": "#/components/schemas/Event_EventCustomRegistrationNotificationSettingsViewModel" + }, + "allowGuestRegistration": { + "type": "boolean" + }, + "publishedContactName": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_InterestedMinistryMemberBulkViewModel": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/Event_Model_MinistryMemberStatus" + }, + "sourceId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Event_Model_AttendeeCheckInStatus": { + "enum": [ + "Invalid", + "CheckedIn", + "CheckedOut" + ], + "type": "string" + }, + "Event_Model_CommunicationTemplateTempAttachmentDto": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "fileName": { + "type": "string", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_Model_EventMinistryInviteStatus": { + "enum": [ + "Invalid", + "Open", + "Accepted", + "Rejected" + ], + "type": "string" + }, + "Event_Model_EventPublishDestinationType": { + "enum": [ + "Invalid", + "TenantWebsite", + "Eventbrite" + ], + "type": "string" + }, + "Event_Model_EventPublishStatus": { + "enum": [ + "Invalid", + "NotPublished", + "Published", + "Canceled" + ], + "type": "string" + }, + "Event_Model_EventReminderType": { + "enum": [ + "Common", + "InviteNotification", + "EventApproaching" + ], + "type": "string" + }, + "Event_Model_EventStatus": { + "enum": [ + "Unknown", + "Open", + "Closed" + ], + "type": "string" + }, + "Event_Model_GradeLevel": { + "enum": [ + "None", + "PreK", + "Kindergarten", + "First", + "Second", + "Third", + "Fourth", + "Fifth", + "Sixth", + "Seventh", + "Eighth", + "Ninth", + "Tenth", + "Eleventh", + "Twelfth", + "Invalid" + ], + "type": "string" + }, + "Event_Model_MergeItemDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/Event_Model_MergeItemType" + }, + "name": { + "type": "string", + "nullable": true + }, + "value": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_Model_MergeItemType": { + "enum": [ + "Common", + "Image" + ], + "type": "string" + }, + "Event_Model_MilestoneCategory": { + "enum": [ + "Undefined", + "Personal", + "Discipleship", + "Security" + ], + "type": "string" + }, + "Event_Model_MinistryMemberStatus": { + "enum": [ + "NotContacted", + "FirstContact", + "SecondContact", + "Pending", + "Ineligible", + "Active", + "Inactive", + "InTraining", + "Unknown" + ], + "type": "string" + }, + "Event_Model_NotificationChannelType": { + "enum": [ + "All", + "Email", + "Sms", + "App", + "Push" + ], + "type": "string" + }, + "Event_Model_NotificationLabelType": { + "enum": [ + "None", + "Favorite" + ], + "type": "string" + }, + "Event_Model_NotificationSourceType": { + "enum": [ + "Unknown", + "FlowWorkItemAssigned", + "FlowWorkItemReassigned", + "FlowWorkItemCommented", + "FlowWorkItemOverdue", + "FlowWorkItemBlocked", + "MinistryMemberInterested", + "MinistryMemberStatusChanged", + "MinistryMemberNoteCreated", + "MinistryMember", + "DeliveryResult", + "ServingOpportunityVolunteer", + "ServingOpportunityVolunteerInterested", + "DebugEmail", + "VerificationEmail", + "AddedToMinistryAsLeader", + "WorkflowCommunication", + "ReminderNotification", + "EventAttendee", + "WorkflowTaskEscalated", + "WorkflowTaskCommented", + "WorkflowTaskReassigned", + "WorkflowTaskBlocked", + "WorkflowTasksPastDueDigest", + "WorkflowTasksDueTodayDigest", + "WorkflowTasksNewlyCreatedOrAssignedDigest", + "MemberEngagementStartOfService", + "MemberEngagementDailyVerse", + "MemberEngagementMilestoneAchieved", + "MemberEngagementCustomPastorMessage", + "InviteAndNotifyMinistry", + "SystemCommunication", + "MinistryMemberSms", + "SmsConsentRequest", + "EventCheckInVolunteer", + "GivingCommunication", + "EventContact", + "EventCheckInAttendee", + "ServingOpportunityVolunteerSms", + "ServingOpportunityVolunteerUnscheduled", + "MemberEngagementDailyDevotional", + "MyFollowUpsManualCommunication" + ], + "type": "string" + }, + "Event_Model_NotificationSourceTypeCategory": { + "enum": [ + "Discipleship", + "Events", + "Ministry", + "System", + "Workflow", + "MemberEngagement", + "Giving" + ], + "type": "string" + }, + "Event_Model_NotificationStatusType": { + "enum": [ + "Unprocessed", + "Pending", + "Running", + "Succeeded", + "Failed", + "Skipped" + ], + "type": "string" + }, + "Event_Model_OccurrenceStatus": { + "enum": [ + "Active", + "Canceled", + "Removed" + ], + "type": "string" + }, + "Event_Model_Person": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "uniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityKnown": { + "type": "boolean" + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "prefix": { + "type": "string", + "nullable": true + }, + "firstName": { + "type": "string", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "maritalStatus": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "membershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "disengagementReason": { + "type": "string", + "nullable": true + }, + "birthDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "deceasedDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "gradeLevel": { + "$ref": "#/components/schemas/Event_Model_GradeLevel" + }, + "allergies": { + "type": "string", + "nullable": true + }, + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "homePhone": { + "type": "string", + "nullable": true + }, + "cellPhone": { + "type": "string", + "nullable": true + }, + "workPhone": { + "type": "string", + "nullable": true + }, + "primaryPhoneType": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Model_PersonMilestone" + }, + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentName": { + "type": "string", + "nullable": true + }, + "departmentChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentChurchEntityName": { + "type": "string", + "nullable": true + }, + "preferredServiceEventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isUser": { + "type": "boolean" + }, + "profilePictureUrl": { + "type": "string", + "nullable": true + }, + "profilePhotoUrl": { + "type": "string", + "nullable": true + }, + "createdByPerson": { + "$ref": "#/components/schemas/Event_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Event_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Event_Model_PersonDocument": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "personUniqueId": { + "type": "integer", + "format": "int32" + }, + "filename": { + "type": "string", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "nullable": true + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "fileTitle": { + "type": "string", + "nullable": true + }, + "deleteDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "mergeableItem": { + "$ref": "#/components/schemas/Event_Model_MergeItemDto" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Event_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Event_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Event_Model_PersonMilestone": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "milestoneId": { + "type": "integer", + "format": "int32" + }, + "milestoneOrder": { + "type": "integer", + "format": "int32" + }, + "milestone": { + "type": "string", + "nullable": true + }, + "milestoneCategory": { + "$ref": "#/components/schemas/Event_Model_MilestoneCategory" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "location": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "document": { + "$ref": "#/components/schemas/Event_Model_PersonDocument" + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_Model_PersonDocument" + }, + "nullable": true + }, + "mergeableItem": { + "$ref": "#/components/schemas/Event_Model_MergeItemDto" + }, + "createdByPerson": { + "$ref": "#/components/schemas/Event_Model_PersonSecurityLite" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "modifiedByPerson": { + "$ref": "#/components/schemas/Event_Model_PersonSecurityLite" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Event_Model_PersonSecurityLite": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "uniqueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "fullName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "avatarUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_Model_ReminderData": { + "type": "object", + "properties": { + "emailData": { + "$ref": "#/components/schemas/Event_Model_ReminderEmailData" + }, + "eventData": { + "$ref": "#/components/schemas/Event_Model_ReminderEventData" + } + }, + "additionalProperties": false + }, + "Event_Model_ReminderEmailData": { + "type": "object", + "properties": { + "emailTemplateId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "emailTemplateName": { + "type": "string", + "nullable": true + }, + "senderId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "senderName": { + "type": "string", + "nullable": true + }, + "replyEmail": { + "type": "string", + "nullable": true + }, + "subject": { + "type": "string", + "nullable": true + }, + "htmlBody": { + "type": "string", + "nullable": true + }, + "bodyTemplateName": { + "type": "string", + "nullable": true + }, + "attachments": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "ccToSender": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_Model_ReminderEventData": { + "type": "object", + "properties": { + "eventId": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/Event_Model_EventReminderType" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Event_Model_ReminderInterval": { + "enum": [ + "Unknown", + "Minutes", + "Hours", + "Days", + "Weeks" + ], + "type": "string" + }, + "Event_Model_StandardErrorResponse": { + "type": "object", + "properties": { + "message": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_Model_TemplateFormat": { + "enum": [ + "Unknown", + "PlainText", + "Html", + "PrinterLabel" + ], + "type": "string" + }, + "Event_Model_TemplateType": { + "enum": [ + "Unknown", + "ContentSpot", + "Layout", + "CompleteDocument", + "Base" + ], + "type": "string" + }, + "Event_Model_VolunteerCheckInStatus": { + "enum": [ + "Invalid", + "CheckedIn", + "CheckedOut", + "Scheduled" + ], + "type": "string" + }, + "Event_MyPersonEventItemViewModel": { + "type": "object", + "properties": { + "registeredForAllOccurrences": { + "type": "boolean" + }, + "privateId": { + "type": "string", + "format": "uuid", + "nullable": true + }, + "eventStatus": { + "$ref": "#/components/schemas/Event_Model_EventStatus" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "eventCategoryId": { + "type": "integer", + "format": "int32" + }, + "advertiseOnWeb": { + "type": "boolean" + }, + "schedule": { + "$ref": "#/components/schemas/Event_SchedulePublicViewModel" + }, + "occurrence": { + "$ref": "#/components/schemas/Event_OccurrencePublicViewModel" + }, + "tagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "hostMinistryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isVirtual": { + "type": "boolean" + }, + "eventVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueDetailsViewModel" + }, + "nullable": true + }, + "publishedChurchEntityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "slug": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "webHeader": { + "type": "string", + "nullable": true + }, + "webHeaderUrl": { + "type": "string", + "nullable": true + }, + "companionAppHeader": { + "type": "string", + "nullable": true + }, + "companionAppHeaderUrl": { + "type": "string", + "nullable": true + }, + "thumbnail": { + "type": "string", + "nullable": true + }, + "thumbnailUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_MyPersonEventResultsViewModel": { + "type": "object", + "properties": { + "totalResults": { + "type": "integer", + "format": "int32" + }, + "myPersonEventItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_MyPersonEventItemViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_NamedEntityViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_NoteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32" + }, + "purpose": { + "type": "string", + "nullable": true + }, + "subject": { + "type": "string", + "nullable": true + }, + "noteText": { + "type": "string", + "nullable": true + }, + "isSensitive": { + "type": "boolean" + }, + "isPinned": { + "type": "boolean", + "nullable": true + }, + "createdBy": { + "type": "integer", + "format": "int32" + }, + "createdByName": { + "type": "string", + "nullable": true + }, + "createdByEmail": { + "type": "string", + "nullable": true + }, + "createdByAvatar": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "integer", + "format": "int64" + }, + "modifiedBy": { + "type": "integer", + "format": "int32" + }, + "modifiedByName": { + "type": "string", + "nullable": true + }, + "modifiedByEmail": { + "type": "string", + "nullable": true + }, + "modifiedByAvatar": { + "type": "string", + "nullable": true + }, + "modifyDate": { + "type": "integer", + "format": "int64" + }, + "ministryId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ministry": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntity": { + "type": "string", + "nullable": true + }, + "categoryId": { + "type": "integer", + "format": "int32" + }, + "categoryName": { + "type": "string", + "nullable": true + }, + "taskName": { + "type": "string", + "nullable": true + }, + "reminderId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_NotificationRecipientViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "pushNotificationRegistrationId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "channel": { + "$ref": "#/components/schemas/Event_Model_NotificationChannelType" + }, + "status": { + "$ref": "#/components/schemas/Event_Model_NotificationStatusType" + }, + "error": { + "type": "string", + "nullable": true + }, + "isViewed": { + "type": "boolean" + }, + "retryCount": { + "type": "integer", + "format": "int32" + }, + "person": { + "$ref": "#/components/schemas/Event_PersonLiteViewModel" + }, + "mergeVariableReplacements": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_NotificationResultViewModel": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "list": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_NotificationViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_NotificationSenderContactViewModel": { + "type": "object", + "properties": { + "senderIdentifier": { + "type": "string", + "nullable": true + }, + "senderName": { + "type": "string", + "nullable": true + }, + "replyIdentifier": { + "type": "string", + "nullable": true + }, + "reportPersonId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ccToSender": { + "type": "boolean" + }, + "person": { + "$ref": "#/components/schemas/Event_PersonLiteViewModel" + } + }, + "additionalProperties": false + }, + "Event_NotificationViewModel": { + "required": [ + "body", + "sourceId", + "summary" + ], + "type": "object", + "properties": { + "attachments": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sourceId": { + "type": "integer", + "format": "int32" + }, + "sourceId2": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sourceId3": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "groupId": { + "type": "string", + "nullable": true + }, + "sourceType": { + "$ref": "#/components/schemas/Event_Model_NotificationSourceType" + }, + "summary": { + "type": "string" + }, + "body": { + "type": "string" + }, + "label": { + "$ref": "#/components/schemas/Event_Model_NotificationLabelType" + }, + "payload": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "integer", + "format": "int64" + }, + "recipients": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_NotificationRecipientViewModel" + }, + "nullable": true + }, + "senderContact": { + "$ref": "#/components/schemas/Event_NotificationSenderContactViewModel" + }, + "allFailed": { + "type": "boolean" + }, + "allSkipped": { + "type": "boolean" + }, + "category": { + "$ref": "#/components/schemas/Event_Model_NotificationSourceTypeCategory" + } + }, + "additionalProperties": false + }, + "Event_OccurrenceEventViewModel": { + "required": [ + "duration", + "startTime" + ], + "type": "object", + "properties": { + "event": { + "$ref": "#/components/schemas/Event_EventViewModel" + }, + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "scheduleSequenceId": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string" + }, + "duration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "status": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + }, + "newDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "newStartTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string", + "nullable": true + }, + "newDuration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string", + "nullable": true + }, + "actualDate": { + "type": "string", + "format": "date-time" + }, + "actualStartDateTime": { + "type": "string", + "format": "date-time" + }, + "actualDuration": { + "type": "string", + "nullable": true + }, + "isOverloaded": { + "type": "boolean" + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Event_OccurrencePublicViewModel": { + "required": [ + "duration", + "startTime" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "scheduleSequenceId": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "status": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + }, + "actualDate": { + "type": "string", + "format": "date-time" + }, + "actualStartDateTime": { + "type": "string", + "format": "date-time" + }, + "actualDuration": { + "type": "string", + "format": "date-span" + }, + "isOverloaded": { + "type": "boolean" + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Event_OccurrenceVenueViewModel": { + "type": "object", + "properties": { + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "occurrenceDateTime": { + "type": "string", + "format": "date-time" + }, + "venueIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_OccurrenceViewModel": { + "required": [ + "duration", + "startTime" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "scheduleSequenceId": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string" + }, + "duration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "startDateTime": { + "type": "string", + "format": "date-time" + }, + "endDateTime": { + "type": "string", + "format": "date-time" + }, + "status": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + }, + "newDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "newStartTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string", + "nullable": true + }, + "newDuration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string", + "nullable": true + }, + "actualDate": { + "type": "string", + "format": "date-time" + }, + "actualStartDateTime": { + "type": "string", + "format": "date-time" + }, + "actualDuration": { + "type": "string", + "nullable": true + }, + "isOverloaded": { + "type": "boolean" + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Event_OccurrenceViewModel_V2": { + "required": [ + "date", + "duration", + "startTime" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "scheduleId": { + "type": "integer", + "format": "int32" + }, + "scheduleSequenceId": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_OccurrenceStatus" + }, + "newDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "newStartTime": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "newDuration": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Event_OccurrencesViewModel": { + "type": "object", + "properties": { + "next": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + }, + "current": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + }, + "previous": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel" + } + }, + "additionalProperties": false + }, + "Event_OccurrencesViewModel_V2": { + "type": "object", + "properties": { + "next": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + }, + "current": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + }, + "previous": { + "$ref": "#/components/schemas/Event_OccurrenceViewModel_V2" + } + }, + "additionalProperties": false + }, + "Event_PersonAddressViewModel": { + "required": [ + "address1", + "city", + "countryAlpha3" + ], + "type": "object", + "properties": { + "address1": { + "type": "string" + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string" + }, + "region": { + "type": "string", + "nullable": true + }, + "regionCode": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "countryAlpha2": { + "type": "string", + "nullable": true + }, + "countryAlpha3": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Event_PersonDocumentViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "filename": { + "type": "string", + "nullable": true + }, + "fileMimeType": { + "type": "string", + "nullable": true + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "fileTitle": { + "type": "string", + "nullable": true + }, + "url": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_PersonEmailViewModel": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "isPublic": { + "type": "boolean" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Event_PersonLiteViewModel": { + "required": [ + "email", + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "email": { + "pattern": "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:|\\\\)+)\\])", + "type": "string" + }, + "emailVerifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isEmailVerified": { + "type": "boolean" + }, + "sourceClientId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_PersonMilestoneDateLiteViewModel": { + "type": "object", + "properties": { + "date": { + "type": "integer", + "format": "int64" + }, + "location": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_PersonMilestoneDateViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "date": { + "type": "integer", + "format": "int64" + }, + "location": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "document": { + "$ref": "#/components/schemas/Event_PersonDocumentViewModel" + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PersonDocumentViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_PersonMilestoneViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "category": { + "$ref": "#/components/schemas/Event_Model_MilestoneCategory" + }, + "uiOrder": { + "type": "integer", + "format": "int32" + }, + "dates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PersonMilestoneDateViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_PersonOccupationViewModel": { + "required": [ + "title" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "typeId": { + "type": "integer", + "format": "int32" + }, + "type": { + "type": "string", + "nullable": true + }, + "categoryId": { + "type": "integer", + "format": "int32" + }, + "category": { + "type": "string", + "nullable": true + }, + "company": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string" + }, + "isPrimary": { + "type": "boolean" + }, + "isStaff": { + "type": "boolean" + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentName": { + "type": "string", + "nullable": true + }, + "departmentChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentChurchEntityName": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_PersonPhoneViewModel": { + "required": [ + "phoneNumber" + ], + "type": "object", + "properties": { + "phoneTypeId": { + "type": "integer", + "format": "int32" + }, + "phoneType": { + "type": "string", + "nullable": true + }, + "phoneNumber": { + "maxLength": 20, + "minLength": 0, + "type": "string", + "format": "tel" + }, + "isPublic": { + "type": "boolean" + }, + "displayPhoneNumber": { + "type": "string", + "nullable": true + }, + "countryCode": { + "type": "string", + "nullable": true + }, + "extension": { + "maxLength": 7, + "minLength": 0, + "pattern": "\\d*", + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "isPrimary": { + "type": "boolean" + }, + "isValidated": { + "type": "boolean" + }, + "isBadContact": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Event_PersonPublicContactViewModel": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "nullable": true + }, + "lastName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "phone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_PersonViewModel": { + "required": [ + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "address1": { + "type": "string", + "nullable": true + }, + "address2": { + "type": "string", + "nullable": true + }, + "addresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PersonAddressViewModel" + }, + "nullable": true + }, + "age": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "allergies": { + "type": "string", + "nullable": true + }, + "birthDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "cellPhone": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "churchEntityKnown": { + "type": "boolean" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + }, + "deceasedDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "departmentChurchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentChurchEntityName": { + "type": "string", + "nullable": true + }, + "departmentId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "departmentName": { + "type": "string", + "nullable": true + }, + "disengagementReason": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "emails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PersonEmailViewModel" + }, + "nullable": true + }, + "firstContact": { + "$ref": "#/components/schemas/Event_PersonMilestoneDateLiteViewModel" + }, + "firstName": { + "type": "string" + }, + "fullName": { + "type": "string", + "nullable": true + }, + "gender": { + "type": "string", + "nullable": true + }, + "gradeLevel": { + "$ref": "#/components/schemas/Event_Model_GradeLevel" + }, + "homePhone": { + "type": "string", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isAdult": { + "type": "boolean", + "nullable": true + }, + "isChild": { + "type": "boolean", + "nullable": true + }, + "isStudent": { + "type": "boolean", + "nullable": true + }, + "lastName": { + "type": "string" + }, + "maritalStatus": { + "type": "string", + "nullable": true + }, + "maritalStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "membershipStatus": { + "type": "string", + "nullable": true + }, + "membershipStatusId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "middleName": { + "type": "string", + "nullable": true + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PersonMilestoneViewModel" + }, + "nullable": true + }, + "modifiedDate": { + "type": "integer", + "format": "int64", + "nullable": true + }, + "nickName": { + "type": "string", + "nullable": true + }, + "occupations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PersonOccupationViewModel" + }, + "nullable": true + }, + "phones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_PersonPhoneViewModel" + }, + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "preferredServiceEventId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "prefix": { + "type": "string", + "nullable": true + }, + "primaryPhoneType": { + "type": "string", + "nullable": true + }, + "profilePhotoUrl": { + "type": "string", + "nullable": true + }, + "profilePictureUrl": { + "type": "string", + "nullable": true + }, + "region": { + "type": "string", + "nullable": true + }, + "suffix": { + "type": "string", + "nullable": true + }, + "workPhone": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_PublicEventPublishViewModel": { + "type": "object", + "properties": { + "destination": { + "$ref": "#/components/schemas/Event_Model_EventPublishDestinationType" + }, + "url": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_PublicOccurrenceViewModel_Core_V2": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "localStartDateTime": { + "type": "string", + "format": "date-time" + }, + "localEndDateTime": { + "type": "string", + "format": "date-time" + }, + "utcStartDateTime": { + "type": "string", + "format": "date-time" + }, + "utcEndDateTime": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Event_PublicOccurrenceViewModel_V2": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "localStartDateTime": { + "type": "string", + "format": "date-time" + }, + "localEndDateTime": { + "type": "string", + "format": "date-time" + }, + "utcStartDateTime": { + "type": "string", + "format": "date-time" + }, + "utcEndDateTime": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Event_PublicRegistrationOccurrenceViewModel_V2": { + "type": "object", + "properties": { + "registrationCapacity": { + "type": "integer", + "format": "int32" + }, + "registrationCount": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "date": { + "type": "string", + "format": "date-time" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "timeZone": { + "type": "string", + "nullable": true + }, + "localStartDateTime": { + "type": "string", + "format": "date-time" + }, + "localEndDateTime": { + "type": "string", + "format": "date-time" + }, + "utcStartDateTime": { + "type": "string", + "format": "date-time" + }, + "utcEndDateTime": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "Event_ReminderViewModel": { + "type": "object", + "properties": { + "schedule": { + "$ref": "#/components/schemas/Event_ScheduleViewModel_Core_V2" + }, + "id": { + "type": "integer", + "format": "int32" + }, + "interval": { + "$ref": "#/components/schemas/Event_Model_ReminderInterval" + }, + "before": { + "type": "integer", + "format": "int32" + }, + "scheduleId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "occurrenceId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "enabled": { + "type": "boolean" + }, + "processed": { + "type": "boolean" + }, + "reminderData": { + "$ref": "#/components/schemas/Event_Model_ReminderData" + } + }, + "additionalProperties": false + }, + "Event_RoomCategoryViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "nullable": true + }, + "description": { + "maxLength": 2048, + "minLength": 0, + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + }, + "isUsed": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_SchedulePublicViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "occurrencesCount": { + "maximum": 10000, + "minimum": 2, + "type": "integer", + "format": "int32", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "custom": { + "type": "boolean" + }, + "sequences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_ScheduleSequencePublicViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_ScheduleSequencePublicViewModel": { + "required": [ + "duration", + "startTime", + "timeZone" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "occurrenceStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timeZone": { + "type": "string" + }, + "isRecurring": { + "type": "boolean" + }, + "recurrenceFrequencyId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "recurrenceFrequency": { + "type": "string", + "nullable": true + }, + "dayOfWeek": { + "type": "integer", + "format": "int32" + }, + "startTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string", + "format": "date-span" + }, + "duration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string", + "format": "date-span" + }, + "monthEnabled": { + "type": "array", + "items": { + "type": "boolean" + }, + "nullable": true + }, + "interval": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true + }, + "canBeChanged": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_ScheduleSequenceViewModel": { + "required": [ + "duration", + "startTime", + "timeZone" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "occurrenceStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timeZone": { + "type": "string" + }, + "isRecurring": { + "type": "boolean" + }, + "recurrenceFrequencyId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "recurrenceFrequency": { + "type": "string", + "nullable": true + }, + "dayOfWeek": { + "type": "integer", + "format": "int32" + }, + "startTime": { + "pattern": "^(2[0-3]|1[0-9]|0?[0-9]):([0-5][0-9])(:([0-5][0-9]))?$", + "type": "string" + }, + "duration": { + "pattern": "^(([0-9][0-9]?).)?(2[0-3]|1[0-9]|0?[0-9]):([0-5]?[0-9])(:([0-5]?[0-9]))?$", + "type": "string" + }, + "monthEnabled": { + "type": "array", + "items": { + "type": "boolean" + }, + "nullable": true + }, + "interval": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true + }, + "canBeChanged": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_ScheduleSequenceViewModel_Core_V2": { + "required": [ + "duration", + "startTime", + "timeZone" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "occurrenceStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timeZone": { + "type": "string" + }, + "isRecurring": { + "type": "boolean" + }, + "recurrenceFrequencyId": { + "type": "integer", + "format": "int32" + }, + "recurrenceFrequency": { + "type": "string", + "nullable": true + }, + "dayOfWeek": { + "$ref": "#/components/schemas/Event_App_IsoDayOfWeek" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "monthEnabled": { + "type": "array", + "items": { + "type": "boolean" + }, + "nullable": true + }, + "interval": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true + }, + "canBeChanged": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_ScheduleSequenceViewModel_V2": { + "required": [ + "duration", + "startTime", + "timeZone" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "occurrenceStartDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "timeZone": { + "type": "string" + }, + "isRecurring": { + "type": "boolean" + }, + "recurrenceFrequencyId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "recurrenceFrequency": { + "type": "string", + "nullable": true + }, + "dayOfWeek": { + "$ref": "#/components/schemas/Event_App_IsoDayOfWeek" + }, + "startTime": { + "type": "string", + "format": "date-span" + }, + "duration": { + "type": "string", + "format": "date-span" + }, + "monthEnabled": { + "type": "array", + "items": { + "type": "boolean" + }, + "nullable": true + }, + "interval": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true + }, + "canBeChanged": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_ScheduleViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "occurrencesCount": { + "maximum": 10000, + "minimum": 2, + "type": "integer", + "format": "int32", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "custom": { + "type": "boolean" + }, + "startDayOfWeek": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sequences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_ScheduleSequenceViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_ScheduleViewModel_Core_V2": { + "type": "object", + "properties": { + "occurrencesCount": { + "maximum": 10000, + "minimum": 2, + "type": "integer", + "format": "int32", + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "custom": { + "type": "boolean" + }, + "sequences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_ScheduleSequenceViewModel_Core_V2" + }, + "nullable": true + }, + "startDayOfWeek": { + "type": "integer", + "format": "int32", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_ScheduleViewModel_V2": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityTypeId": { + "type": "integer", + "format": "int32" + }, + "scheduleEntityType": { + "type": "string", + "nullable": true + }, + "startDate": { + "type": "string", + "format": "date-time" + }, + "occurrencesCount": { + "maximum": 10000, + "minimum": 2, + "type": "integer", + "format": "int32", + "nullable": true + }, + "endDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "custom": { + "type": "boolean" + }, + "startDayOfWeek": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sequences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_ScheduleSequenceViewModel_V2" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_SmsViewModel": { + "required": [ + "message" + ], + "type": "object", + "properties": { + "recipientIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "message": { + "maxLength": 153, + "type": "string" + } + }, + "additionalProperties": false + }, + "Event_SubVenueViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "capacity": { + "type": "integer", + "format": "int32" + }, + "venueId": { + "type": "integer", + "format": "int32" + }, + "subVenueTypeId": { + "type": "integer", + "format": "int32" + }, + "subVenueType": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_TemplateViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "type": { + "$ref": "#/components/schemas/Event_Model_TemplateType" + }, + "format": { + "$ref": "#/components/schemas/Event_Model_TemplateFormat" + }, + "name": { + "type": "string", + "nullable": true + }, + "content": { + "type": "string", + "nullable": true + }, + "isSystem": { + "type": "boolean" + }, + "isRazor": { + "type": "boolean" + }, + "designData": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_VenueAddressViewModel": { + "required": [ + "address1", + "city" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "address1": { + "type": "string" + }, + "address2": { + "type": "string", + "nullable": true + }, + "city": { + "type": "string" + }, + "region": { + "type": "string", + "nullable": true + }, + "postalCode": { + "type": "string", + "nullable": true + }, + "country": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_VenuesOccurrenceViewModel": { + "type": "object", + "properties": { + "venues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventVenueOccurrenceViewModel" + }, + "nullable": true + }, + "subVenues": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Event_EventSubVenueOccurrenceViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Event_VolunteerCheckInViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "eventId": { + "type": "integer", + "format": "int32" + }, + "servingOpportunityId": { + "type": "integer", + "format": "int32" + }, + "occurrenceId": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32" + }, + "subVenueId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "status": { + "$ref": "#/components/schemas/Event_Model_VolunteerCheckInStatus" + }, + "checkInTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "checkOutTime": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "person": { + "$ref": "#/components/schemas/Event_PersonViewModel" + }, + "checkOutAllowed": { + "type": "boolean", + "nullable": true + }, + "coreMilestones": { + "$ref": "#/components/schemas/Event_CoreMilestonesViewModel" + } + }, + "additionalProperties": false + }, + "Event_WorshipServiceCategoryViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "nullable": true + }, + "description": { + "maxLength": 2048, + "minLength": 0, + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "isActive": { + "type": "boolean" + }, + "isUsed": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + } + } + } +} diff --git a/test/spec/saddlebackWebAppApi.json b/test/spec/saddlebackWebAppApi.json new file mode 100644 index 000000000..74604b5c4 --- /dev/null +++ b/test/spec/saddlebackWebAppApi.json @@ -0,0 +1,2751 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "HC WebApp API", + "version": "v1" + }, + "paths": { + "/api/bootstrap": { + "get": { + "tags": [ + "Bootstrap" + ], + "operationId": "GetBootstrap", + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/enumerations": { + "get": { + "tags": [ + "Bootstrap" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetEnumerations", + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/notification": { + "get": { + "tags": [ + "Notification" + ], + "summary": "Get all notifications with optional sourceType and channel filters", + "operationId": "GetAll", + "parameters": [ + { + "name": "sourceType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + }, + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + }, + { + "name": "days", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "post": { + "tags": [ + "Notification" + ], + "summary": "Create a new notification", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n", + "operationId": "CreateNotification", + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Notification_NotificationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notification_NotificationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Notification_NotificationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Notification_NotificationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/notification/group-count": { + "get": { + "tags": [ + "Notification" + ], + "summary": "", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n", + "operationId": "GetGroupCounts", + "parameters": [ + { + "name": "sourceTypes", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + } + }, + { + "name": "sourceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sourceId2", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/notification/group-count/last": { + "get": { + "tags": [ + "Notification" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n", + "operationId": "GetLastWithGrouping", + "parameters": [ + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + }, + { + "name": "types", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + } + }, + { + "name": "sourceId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sourceId2", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/notification/user": { + "get": { + "tags": [ + "Notification" + ], + "summary": "Get all notifications for current user", + "operationId": "GetForCurrentUser", + "parameters": [ + { + "name": "sourceType", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + }, + { + "name": "channel", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + }, + { + "name": "categories", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "days", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isViewed", + "in": "query", + "description": "", + "schema": { + "type": "boolean" + } + }, + { + "name": "sort", + "in": "query", + "description": "Sorting parameter [createdate],[ASC | DESC]. Optional, by default sorted by createdate DESC", + "schema": { + "type": "string" + } + }, + { + "name": "fromDate", + "in": "query", + "description": "", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "toDate", + "in": "query", + "description": "", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "pageSize", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageNumber", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/person/{id}": { + "get": { + "tags": [ + "Notification" + ], + "summary": "Get all notifications by person id", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sourceType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + }, + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + }, + { + "name": "days", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "pageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/{id}/resend_email": { + "post": { + "tags": [ + "Notification" + ], + "summary": "Resend Email to failed recipients by Notification ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Email Ministry Leadership, Email Ministry Members, Manage Event Attendees, Manage Ministry Invitations
\r\n", + "operationId": "ResendEmail", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Notification Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "Recipient's person unique Ids", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Email Ministry Leadership" + ] + }, + { + "Permissions": [ + "Email Ministry Members" + ] + }, + { + "Permissions": [ + "Manage Event Attendees" + ] + }, + { + "Permissions": [ + "Manage Ministry Invitations" + ] + } + ] + } + } + }, + "/api/notification/{id}/resend_sms": { + "post": { + "tags": [ + "Notification" + ], + "summary": "Resend SMS to failed recipients by Notification ID", + "description": "**Authorization Policy:**
\r\nAllowed With one of these Permissions: Send SMS to Interested Ministry Members, Send SMS to Ministry Members, Manage Event Attendees, Manage Ministry Invitations
\r\n", + "operationId": "ResendSms", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Notification Id", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "Recipient's person unique Ids", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithPermissions": [ + { + "Permissions": [ + "Send SMS to Interested Ministry Members" + ] + }, + { + "Permissions": [ + "Send SMS to Ministry Members" + ] + }, + { + "Permissions": [ + "Manage Event Attendees" + ] + }, + { + "Permissions": [ + "Manage Ministry Invitations" + ] + } + ] + } + } + }, + "/api/notification/{id}": { + "get": { + "tags": [ + "Notification" + ], + "summary": "Get a notification by id", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/{notificationId}/person/{personId}": { + "get": { + "tags": [ + "Notification" + ], + "operationId": "GetFiltered", + "parameters": [ + { + "name": "notificationId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/user/count": { + "get": { + "tags": [ + "Notification" + ], + "summary": "Get Count of Pending Messages", + "operationId": "GetCountForCurrentUser", + "parameters": [ + { + "name": "sourceType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + }, + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + }, + { + "name": "status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationStatusType" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/person/{personUniqueId}/count-unique": { + "get": { + "tags": [ + "Notification" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n", + "operationId": "GetCountByUniqueId", + "parameters": [ + { + "name": "personUniqueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sourceType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + }, + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + }, + { + "name": "status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationStatusType" + } + }, + { + "name": "isViewed", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/notification/person/{id}/count": { + "get": { + "tags": [ + "Notification" + ], + "summary": "Get Count of Pending Message by Person Id", + "operationId": "GetCountByPersonId", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sourceType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + }, + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + }, + { + "name": "status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationStatusType" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/status": { + "post": { + "tags": [ + "Notification" + ], + "summary": "Update notification status", + "operationId": "UpdateNotificationStatus", + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Notification_NotificationStatusViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notification_NotificationStatusViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Notification_NotificationStatusViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Notification_NotificationStatusViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/person/{personUniqueId}/status": { + "post": { + "tags": [ + "Notification" + ], + "operationId": "UpdateStatusByUniqueId", + "parameters": [ + { + "name": "personUniqueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + }, + { + "name": "oldStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationStatusType" + } + }, + { + "name": "status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationStatusType" + } + }, + { + "name": "error", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/{notificationId}/person/{personUniqueId}/status": { + "post": { + "tags": [ + "Notification" + ], + "operationId": "UpdateStatusByNotificationIdAndUniqueId", + "parameters": [ + { + "name": "notificationId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "personUniqueId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "channel", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + } + }, + { + "name": "oldStatus", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationStatusType" + } + }, + { + "name": "status", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationStatusType" + } + }, + { + "name": "error", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/sms-status": { + "post": { + "tags": [ + "Notification" + ], + "summary": "Gets SMS status for recipients", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Read Person Contact Data
\r\n
\r\n**Data Access:**
\r\nTrusted (internal) application access to notification.\r\nor\r\nREAD Access to person contact data", + "operationId": "GetPersonSmsStatus", + "parameters": [ + { + "name": "churchEntityId", + "in": "query", + "description": "Church Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sourceType", + "in": "query", + "description": "Notification source type", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + }, + { + "name": "sourceId", + "in": "query", + "description": "Source ID if necessary", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "List of person unique IDs", + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "responses": { + "200": { + "description": "Returns person SMS statuses.", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Notification_Dto_PersonSmsStatuses" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notification_Dto_PersonSmsStatuses" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Notification_Dto_PersonSmsStatuses" + } + } + } + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Read Person Contact Data" + ] + } + ] + } + } + }, + "/api/notification/reassign-person": { + "post": { + "tags": [ + "Notification" + ], + "summary": "Reassign person in all tables of notification microservice", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nTrusted (internal) application access to notification.", + "operationId": "ReassignPerson", + "parameters": [ + { + "name": "oldPersonId", + "in": "query", + "description": "Old person unique ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "newPersonId", + "in": "query", + "description": "New person unique ID", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Person was reassigned successfully." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/user/notification-preference": { + "get": { + "tags": [ + "NotificationPreference" + ], + "summary": "Get notification preferences for current user\r\nIf corresponding preference is not found for specific source type, the method returns default preference", + "operationId": "GetForCurrentUser", + "parameters": [ + { + "name": "sourceType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "post": { + "tags": [ + "NotificationPreference" + ], + "summary": "Create/update set of notification preferences for current user", + "operationId": "UpsertForCurrentUser", + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/device/{registrationId}/client/{clientId}/notification-preference": { + "get": { + "tags": [ + "NotificationPreference" + ], + "summary": "Get notification preferences for given device and client id", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetForDevice", + "parameters": [ + { + "name": "registrationId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "clientId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "NotificationPreference" + ], + "summary": "Create/update set of push notification registration preferences", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "UpsertByRegistrationIdAndClientId", + "parameters": [ + { + "name": "registrationId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "clientId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/person/{personId}/notification-preference": { + "get": { + "tags": [ + "NotificationPreference" + ], + "summary": "Get notification preferences by person id (or by person id and sourceType)\r\nIf corresponding preference is not found for specific source type, the method returns default preference", + "operationId": "GetByPersonId", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sourceType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "post": { + "tags": [ + "NotificationPreference" + ], + "summary": "Create/update set of notification preferences", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\nAllowed With Permission: Update Person Contact Data
\r\n", + "operationId": "UpsertByPerson", + "parameters": [ + { + "name": "personId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + }, + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + }, + "text/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + }, + "application/*+json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceViewModel" + } + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ] + } + ] + } + } + }, + "/api/notification-preference/{id}": { + "get": { + "tags": [ + "NotificationPreference" + ], + "summary": "Get a notification preference by id", + "operationId": "GetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification-preference/recipient-identifier": { + "get": { + "tags": [ + "NotificationPreference" + ], + "summary": "Get Person UniqueIDs and push notification registration ids by notificationSourceType", + "operationId": "GetPersonIdsByNotificationSourceType", + "parameters": [ + { + "name": "notificationSourceType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification-source-types": { + "get": { + "tags": [ + "NotificationPreference" + ], + "summary": "Gets all available notification source types. These types control system generated notifications for CHP Users.", + "operationId": "GetNotificationSourceTypes", + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/sms-configuration": { + "get": { + "tags": [ + "NotificationSmsConfiguration" + ], + "summary": "Gets all the notification SMS configurations", + "operationId": "GetAll", + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/notification/sms-configuration/church-entity/{churchEntityId}": { + "get": { + "tags": [ + "NotificationSmsConfiguration" + ], + "summary": "Gets notification SMS configurations by church entity id", + "operationId": "GetByChurchEntityId", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "entityType", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + }, + "post": { + "tags": [ + "NotificationSmsConfiguration" + ], + "summary": "Creates new notification SMS configuration", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage SMS Configuration
\r\n", + "operationId": "UpsertConfiguration", + "parameters": [ + { + "name": "churchEntityId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_NotificationSmsConfigurationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_NotificationSmsConfigurationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_NotificationSmsConfigurationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_NotificationSmsConfigurationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage SMS Configuration" + ] + } + ] + } + } + }, + "/api/notification/sms-configuration/preference": { + "get": { + "tags": [ + "NotificationSmsConfiguration" + ], + "summary": "Gets all mobile phones paired with SMS preference (opt-out flag) for the specified persons\r\nusing Church Entity ID and an optional entity specification to identify the relevant SMS configuration.", + "description": "**Authorization Policy:**
\r\nRequires access to Scope: hc:internal-systems
\r\n", + "operationId": "GetPreferencesAsync", + "parameters": [ + { + "name": "personIds", + "in": "query", + "description": "Person Unique IDs", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "Church Entity ID used identify relevant SMS Configuration", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "entityType", + "in": "query", + "description": "Entity Type (optional) used to identify relevant SMS Configuration", + "schema": { + "type": "string" + } + }, + { + "name": "entityId", + "in": "query", + "description": "Entity ID (optional) used to identify relevant SMS Configuration", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "RequiredScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/notification/sms-consent/{personId}": { + "get": { + "tags": [ + "NotificationSmsConsent" + ], + "summary": "Gets SMS Consent record for the specified Person (if it exists)", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\n", + "operationId": "GetConsentByPerson", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + }, + "post": { + "tags": [ + "NotificationSmsConsent" + ], + "summary": "Sets SMS Consent for the specified Person", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\n", + "operationId": "SetConsentByPerson", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + }, + "delete": { + "tags": [ + "NotificationSmsConsent" + ], + "summary": "Deletes the SMS Consent record (i.e. revokes consent) for the specified Person", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\n", + "operationId": "RevokeConsentByPerson", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + } + }, + "/api/notification/sms-opt-in/{personId}": { + "post": { + "tags": [ + "NotificationSmsConsent" + ], + "summary": "Sets SMS Consent for the specified Person and enable default cell number to receive SMS", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed With Permission: Update Person Contact Data
\r\n
\r\n**Data Access:**
\r\nTrusted (internal) application access to notification.\r\nor\r\nWRITE Access to person contact data", + "operationId": "SmsOptIn", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "Person Unique ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "churchEntityId", + "in": "query", + "description": "Church Entity ID", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sourceType", + "in": "query", + "schema": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + } + }, + { + "name": "sourceId", + "in": "query", + "description": "Source ID", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "description": "Bad Request" + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowedWithPermissions": [ + { + "Permissions": [ + "Update Person Contact Data" + ] + } + ] + } + } + }, + "/api/notification/sms-consent-request/{personId}": { + "post": { + "tags": [ + "NotificationSmsConsent" + ], + "summary": "Requests a new SMS Consent solicitation email for the specified Person (containing a link with a one-time use verification token)", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\nAllowed with Person Record Ownership
\r\n", + "operationId": "SendSmsConsentRequest", + "parameters": [ + { + "name": "personId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "sendRequestEvenIfPreviouslyConsented", + "in": "query", + "description": "", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ], + "AllowWithPersonRecordOwners": [ + { + "RecordOwners": [ + "personId" + ] + } + ] + } + } + }, + "/api/notification/sms-consent-request-retry": { + "post": { + "tags": [ + "NotificationSmsConsent" + ], + "summary": "Allows the caller to submit a prior verification token for an SMS Consent solicitation \"workflow\" and request a new email with a new verification token", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n
\r\n**More Info:**
\r\nIntended for the use case of an expired verification token. This allows us to improve the UI/UX a bit and help the user out.", + "operationId": "RetrySmsConsentRequest", + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Notification_SmsConsentRequestFullfillmentViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notification_SmsConsentRequestFullfillmentViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Notification_SmsConsentRequestFullfillmentViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Notification_SmsConsentRequestFullfillmentViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/notification/sms-consent-request-verification": { + "get": { + "tags": [ + "NotificationSmsConsent" + ], + "summary": "Validates (verifies) a verification token for an SMS Consent solicition \"workflow\" without consuming the token and recording consent", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "VerifySmsConsentRequestToken", + "parameters": [ + { + "name": "token", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + }, + "post": { + "tags": [ + "NotificationSmsConsent" + ], + "summary": "Validates (verifies) a verification token for an SMS Consent solicition \"workflow\" and records consent and consumes the token", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "VerifySmsConsentRequestAndSetConsent", + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Notification_SmsConsentRequestFullfillmentViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notification_SmsConsentRequestFullfillmentViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Notification_SmsConsentRequestFullfillmentViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Notification_SmsConsentRequestFullfillmentViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/notification-hub/install": { + "post": { + "tags": [ + "PushNotificationHub" + ], + "summary": "", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "CreateInstallation", + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushNotificationRegistationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushNotificationRegistationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushNotificationRegistationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushNotificationRegistationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/notification-hub/update/{id}": { + "put": { + "tags": [ + "PushNotificationHub" + ], + "summary": "", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "UpdateInstallation", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushNotificationRegistationViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushNotificationRegistationViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushNotificationRegistationViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushNotificationRegistationViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/notification-hub/uninstall/{id}": { + "delete": { + "tags": [ + "PushNotificationHub" + ], + "summary": "", + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "Uninstall", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/notification-hub/push-notification": { + "post": { + "tags": [ + "PushNotificationHub" + ], + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n", + "operationId": "PushNotification", + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushMessage" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushMessage" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushMessage" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Notification_App_PushMessage" + } + } + } + }, + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/version": { + "get": { + "tags": [ + "Version" + ], + "operationId": "Get", + "responses": { + "200": { + "description": "Success" + } + } + } + } + }, + "components": { + "schemas": { + "Notification_App_DevicePlatform": { + "enum": [ + "Android", + "iOS" + ], + "type": "string" + }, + "Notification_App_NotificationSmsConfigurationViewModel": { + "type": "object", + "properties": { + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "smsCodeType": { + "$ref": "#/components/schemas/Notification_Model_SmsCodeType" + }, + "code": { + "type": "string", + "nullable": true + }, + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Notification_App_PushMessage": { + "type": "object", + "properties": { + "devicePlatform": { + "$ref": "#/components/schemas/Notification_App_DevicePlatform" + }, + "title": { + "type": "string", + "nullable": true + }, + "subTitle": { + "type": "string", + "nullable": true + }, + "body": { + "type": "string", + "nullable": true + }, + "action": { + "$ref": "#/components/schemas/Notification_Model_Action" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Notification_App_PushNotificationRegistationViewModel": { + "required": [ + "deviceHandle", + "deviceId" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "devicePlatform": { + "$ref": "#/components/schemas/Notification_App_DevicePlatform" + }, + "deviceHandle": { + "maxLength": 300, + "type": "string" + }, + "deviceId": { + "maxLength": 100, + "type": "string" + } + }, + "additionalProperties": false + }, + "Notification_Dto_NotificationSmsStatus": { + "enum": [ + "Available", + "PersonNotFound", + "NoCellPhone", + "NoEmergencyContactCellPhone", + "HasNotConsented", + "DoNotTextIsSet", + "StopWasSent", + "PersonIsDeceased", + "NotInWhiteList", + "Failed" + ], + "type": "string" + }, + "Notification_Dto_PersonSmsStatus": { + "type": "object", + "properties": { + "personId": { + "type": "integer", + "format": "int32" + }, + "status": { + "$ref": "#/components/schemas/Notification_Dto_NotificationSmsStatus" + } + }, + "additionalProperties": false + }, + "Notification_Dto_PersonSmsStatuses": { + "type": "object", + "properties": { + "hasSmsConfigurationError": { + "type": "boolean" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_Dto_PersonSmsStatus" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Notification_Model_Action": { + "type": "object", + "properties": { + "source": { + "type": "string", + "nullable": true + }, + "type": { + "type": "string", + "nullable": true + }, + "uri": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Notification_Model_NotificationChannelType": { + "enum": [ + "All", + "Email", + "Sms", + "App", + "Push" + ], + "type": "string" + }, + "Notification_Model_NotificationLabelType": { + "enum": [ + "None", + "Favorite" + ], + "type": "string" + }, + "Notification_Model_NotificationSourceType": { + "enum": [ + "Unknown", + "FlowWorkItemAssigned", + "FlowWorkItemReassigned", + "FlowWorkItemCommented", + "FlowWorkItemOverdue", + "FlowWorkItemBlocked", + "MinistryMemberInterested", + "MinistryMemberStatusChanged", + "MinistryMemberNoteCreated", + "MinistryMember", + "DeliveryResult", + "ServingOpportunityVolunteer", + "ServingOpportunityVolunteerInterested", + "DebugEmail", + "VerificationEmail", + "AddedToMinistryAsLeader", + "WorkflowCommunication", + "ReminderNotification", + "EventAttendee", + "WorkflowTaskEscalated", + "WorkflowTaskCommented", + "WorkflowTaskReassigned", + "WorkflowTaskBlocked", + "WorkflowTasksPastDueDigest", + "WorkflowTasksDueTodayDigest", + "WorkflowTasksNewlyCreatedOrAssignedDigest", + "MemberEngagementStartOfService", + "MemberEngagementDailyVerse", + "MemberEngagementMilestoneAchieved", + "MemberEngagementCustomPastorMessage", + "InviteAndNotifyMinistry", + "SystemCommunication", + "MinistryMemberSms", + "SmsConsentRequest", + "EventCheckInVolunteer", + "GivingCommunication", + "EventContact", + "EventCheckInAttendee", + "ServingOpportunityVolunteerSms", + "ServingOpportunityVolunteerUnscheduled", + "MemberEngagementDailyDevotional", + "MyFollowUpsManualCommunication" + ], + "type": "string" + }, + "Notification_Model_NotificationSourceTypeCategory": { + "enum": [ + "Discipleship", + "Events", + "Ministry", + "System", + "Workflow", + "MemberEngagement", + "Giving" + ], + "type": "string" + }, + "Notification_Model_NotificationStatusType": { + "enum": [ + "Unprocessed", + "Pending", + "Running", + "Succeeded", + "Failed", + "Skipped" + ], + "type": "string" + }, + "Notification_Model_SmsCodeType": { + "enum": [ + "ShortCode", + "LongCode" + ], + "type": "string" + }, + "Notification_NotificationPreferenceChannelViewModel": { + "type": "object", + "properties": { + "notificationChannelType": { + "type": "integer", + "format": "int32" + }, + "notificationChannelTypeName": { + "type": "string", + "nullable": true, + "readOnly": true + }, + "value": { + "type": "boolean", + "nullable": true + } + }, + "additionalProperties": false + }, + "Notification_NotificationPreferenceViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "pushNotificationRegistrationId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sourceType": { + "type": "integer", + "format": "int32" + }, + "sourceTypeName": { + "type": "string", + "nullable": true + }, + "sourceTypeDescription": { + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + }, + "channels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationPreferenceChannelViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Notification_NotificationRecipientViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "personId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "pushNotificationRegistrationId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "channel": { + "$ref": "#/components/schemas/Notification_Model_NotificationChannelType" + }, + "status": { + "$ref": "#/components/schemas/Notification_Model_NotificationStatusType" + }, + "error": { + "type": "string", + "nullable": true + }, + "isViewed": { + "type": "boolean" + }, + "retryCount": { + "type": "integer", + "format": "int32" + }, + "person": { + "$ref": "#/components/schemas/Notification_PersonLiteViewModel" + }, + "mergeVariableReplacements": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Notification_NotificationSenderContactViewModel": { + "type": "object", + "properties": { + "senderIdentifier": { + "type": "string", + "nullable": true + }, + "senderName": { + "type": "string", + "nullable": true + }, + "replyIdentifier": { + "type": "string", + "nullable": true + }, + "reportPersonId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "ccToSender": { + "type": "boolean" + }, + "person": { + "$ref": "#/components/schemas/Notification_PersonLiteViewModel" + } + }, + "additionalProperties": false + }, + "Notification_NotificationStatusViewModel": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "isViewed": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Notification_NotificationViewModel": { + "required": [ + "body", + "sourceId", + "summary" + ], + "type": "object", + "properties": { + "attachments": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + }, + "id": { + "type": "integer", + "format": "int32" + }, + "churchEntityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sourceId": { + "type": "integer", + "format": "int32" + }, + "sourceId2": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "sourceId3": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "groupId": { + "type": "string", + "nullable": true + }, + "sourceType": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceType" + }, + "summary": { + "type": "string" + }, + "body": { + "type": "string" + }, + "label": { + "$ref": "#/components/schemas/Notification_Model_NotificationLabelType" + }, + "payload": { + "type": "string", + "nullable": true + }, + "createDate": { + "type": "integer", + "format": "int64" + }, + "recipients": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Notification_NotificationRecipientViewModel" + }, + "nullable": true + }, + "senderContact": { + "$ref": "#/components/schemas/Notification_NotificationSenderContactViewModel" + }, + "allFailed": { + "type": "boolean" + }, + "allSkipped": { + "type": "boolean" + }, + "category": { + "$ref": "#/components/schemas/Notification_Model_NotificationSourceTypeCategory" + } + }, + "additionalProperties": false + }, + "Notification_PersonLiteViewModel": { + "required": [ + "email", + "firstName", + "lastName" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "email": { + "pattern": "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*)@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:|\\\\)+)\\])", + "type": "string" + }, + "emailVerifyDate": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "isEmailVerified": { + "type": "boolean" + }, + "sourceClientId": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Notification_SmsConsentRequestFullfillmentViewModel": { + "type": "object", + "properties": { + "token": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + } + } + } +} diff --git a/test/spec/saddlebackWorkflowApi.json b/test/spec/saddlebackWorkflowApi.json new file mode 100644 index 000000000..f50830547 --- /dev/null +++ b/test/spec/saddlebackWorkflowApi.json @@ -0,0 +1,1054 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "HC Workflows Service Web API", + "version": "v1" + }, + "paths": { + "/api/bootstrap": { + "get": { + "tags": [ + "Bootstrap" + ], + "operationId": "GetBootstrap", + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/enumerations": { + "get": { + "tags": [ + "Bootstrap" + ], + "description": "**Authorization Policy:**
\r\nAnonymous Access Allowed
\r\n", + "operationId": "GetEnumerations", + "responses": { + "200": { + "description": "Success" + } + }, + "x-hc-security": { + "AllowAnonymous": true + } + } + }, + "/api/rpc": { + "post": { + "tags": [ + "Rpc" + ], + "summary": "Handle RPC request", + "description": "**Authorization Policy:**
\r\nAllowed With Scope: hc:internal-systems
\r\n
\r\n**Data Access:**
\r\nExecute functionality exposed via the RPC interface.", + "operationId": "Rpc", + "requestBody": { + "description": "RPC command", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RpcRestContainer" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RpcRestContainer" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RpcRestContainer" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RpcRestContainer" + } + } + } + }, + "responses": { + "200": { + "description": "Returns RPC operation result." + }, + "400": { + "description": "Invalid RPC model." + }, + "403": { + "description": "Not authorized." + } + }, + "x-hc-security": { + "AllowedWithScopes": [ + { + "Scopes": [ + "hc:internal-systems" + ] + } + ] + } + } + }, + "/api/rule": { + "get": { + "tags": [ + "Rule" + ], + "summary": "Gets a collection of Rules By associated Entity Type and Entity ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Follow Up Rules
\r\n
\r\n**Data Access:**
\r\nREAD access to a collection of Rules for an entity, with only basic descriptive attributes", + "operationId": "GetByEntity", + "parameters": [ + { + "name": "EntityType", + "in": "query", + "description": "Entity Type to which requested Rules are associated (via Entity Conditions, or the right-hand side of Attribute Conditions)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "EntityId", + "in": "query", + "description": "Entity ID to which requested Rules are associated (via Entity Conditions, or the right-hand side of Attribute Conditions)", + "required": true, + "schema": { + "minimum": 1, + "type": "integer", + "format": "int32" + } + }, + { + "name": "ChurchEntityIds", + "in": "query", + "description": "Comma-separated list of Church Entity IDs", + "schema": { + "type": "string" + } + }, + { + "name": "IsActive", + "in": "query", + "description": "Optional filter to request only Active or Inactive Rules", + "schema": { + "type": "boolean" + } + }, + { + "name": "Query", + "in": "query", + "description": "Optional free-text search query (will be matched, as if surrounded by wildcards, against Rule Name)", + "schema": { + "type": "string" + } + }, + { + "name": "SecondaryEntityType", + "in": "query", + "description": "Optional secondary Entity Type to which requested Rules are also associated (via Entity Conditions, or the right-hand side of Attribute Conditions)", + "schema": { + "type": "string" + } + }, + { + "name": "SecondaryEntityId", + "in": "query", + "description": "Optional secondary Entity ID to which requested Rules are also associated (via Entity Conditions, or the right-hand side of Attribute Conditions)", + "schema": { + "minimum": 1, + "type": "integer", + "format": "int32" + } + }, + { + "name": "IncludeSystemRules", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "SortQuery", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "Sort", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "SortColumns", + "in": "query", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Workflow_App_Sorting" + } + } + }, + { + "name": "SortColumn", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "IsDescendingSort", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "Offset", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "Limit", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "DBLimit", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "PageNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "PageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_SearchResultsViewModel_RuleViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_SearchResultsViewModel_RuleViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_SearchResultsViewModel_RuleViewModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + }, + "post": { + "tags": [ + "Rule" + ], + "summary": "Creates a new Rule", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Follow Up Rules
\r\n
\r\n**Data Access:**
\r\nCREATE a new Rule", + "operationId": "CreateRule", + "requestBody": { + "description": "Saddleback.Cm.WebApp.Workflows.ViewModels.RuleDetailsViewModel Rule to create", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/rule/{id}": { + "get": { + "tags": [ + "Rule" + ], + "summary": "Gets the full details of a Rule by ID", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Follow Up Rules
\r\n
\r\n**Data Access:**
\r\nREAD access to the full details of a single specified Rule", + "operationId": "GetDetailedById", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "integer: Rule ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + }, + "put": { + "tags": [ + "Rule" + ], + "summary": "Updates a Rule", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Follow Up Rules
\r\n
\r\n**Data Access:**
\r\nUPDATE the specified Rule\r\n\r\n**More Info:**
\r\nThis method is not intended to enable the caller to transform an existing rule into a completely different rule.\r\nIt only allows sensible modifications to an existing rule.\r\nCurrently this method will *ONLY* update the following:\r\n* Name\r\n* Description\r\n* Active/Inactive \"Status\"\r\n* Entity Conditions, Attribute Conditions and Actions (collection upserts)\r\nThis method will *NOT* update (so as not to change the \"identity\" of the Rule) the following:\r\n* Church Entity ID\r\nIf an existing rule needs to be discarded and replaced with a different rule, this should be accomplished via\r\na delete and an insert.", + "operationId": "UpdateRule", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "integer: Follow Up Rule ID", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "Saddleback.Cm.WebApp.Workflows.ViewModels.RuleDetailsViewModelRule details to be updated", + "content": { + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "409": { + "description": "Conflict", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_Model_StandardErrorResponse" + } + } + } + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + }, + "delete": { + "tags": [ + "Rule" + ], + "summary": "Deletes a Rule", + "description": "**Authorization Policy:**
\r\nRequires access to Permission: Manage Follow Up Rules
\r\n
\r\n**Data Access:**
\r\nDELETE a single specified Rule (soft/logical delete)", + "operationId": "DeleteRule", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/Workflow_App_RuleDetailsViewModel" + } + } + } + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "x-hc-security": { + "RequiredPermissions": [ + { + "Permissions": [ + "Manage Follow Up Rules" + ] + } + ] + } + } + }, + "/api/rule-builder-metadata/attribute": { + "get": { + "tags": [ + "RuleBuilderMetadata" + ], + "summary": "Gets a collection of Attributes allowed in Rule Attribute Conditions, and associated metadata to aid Rule Building, by Entity Type", + "description": "**Data Access:**
\r\nREAD access to a collection of Attributes allowed in Rule Attribute Conditions, and associated metadata", + "operationId": "GetAttributesByEntityType", + "parameters": [ + { + "name": "entityType", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success" + } + } + } + }, + "/api/version": { + "get": { + "tags": [ + "Version" + ], + "operationId": "Get", + "responses": { + "200": { + "description": "Success" + } + } + } + } + }, + "components": { + "schemas": { + "Workflow_App_RpcRestContainer": { + "type": "object", + "properties": { + "body": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Workflow_App_RuleActionSettingViewModel": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "description": "Action Setting Key/Name/Property" + }, + "value": { + "type": "string", + "description": "Action Setting Value. Must be populated for Inserts, but may be null/empty for updates (to allow deletion).", + "nullable": true + }, + "ruleActionId": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Workflow_App_RuleActionViewModel": { + "required": [ + "actionType" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "order": { + "type": "integer", + "format": "int32" + }, + "action": { + "type": "string", + "description": "Friendly Action Name", + "nullable": true + }, + "actionType": { + "$ref": "#/components/schemas/Workflow_Model_ActionType" + }, + "actionSettings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Workflow_App_RuleActionSettingViewModel" + }, + "nullable": true + }, + "executionDelay": { + "type": "string", + "format": "date-span", + "nullable": true + }, + "isActive": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Workflow_App_RuleAttributeConditionViewModel": { + "required": [ + "attribute", + "condition" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "attribute": { + "$ref": "#/components/schemas/Workflow_Model_AttributeType" + }, + "condition": { + "$ref": "#/components/schemas/Workflow_Model_ConditionType" + }, + "parameter": { + "type": "string", + "nullable": true + }, + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "doesEntityOwnRule": { + "type": "boolean" + }, + "order": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Workflow_App_RuleDetailsViewModel": { + "required": [ + "churchEntityId", + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "entityConditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Workflow_App_RuleEntityConditionViewModel" + }, + "nullable": true + }, + "attributeConditions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Workflow_App_RuleAttributeConditionViewModel" + }, + "nullable": true + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Workflow_App_RuleActionViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "Workflow_App_RuleEntityConditionViewModel": { + "required": [ + "condition" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "entityType": { + "type": "string", + "nullable": true + }, + "entityId": { + "type": "integer", + "format": "int32" + }, + "condition": { + "$ref": "#/components/schemas/Workflow_Model_ConditionType" + }, + "parameter": { + "type": "string", + "nullable": true + }, + "order": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "Workflow_App_RuleViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "churchEntityId": { + "type": "integer", + "format": "int32" + }, + "churchEntityName": { + "type": "string", + "nullable": true + }, + "isActive": { + "type": "boolean" + }, + "isSystem": { + "type": "boolean" + }, + "createDate": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "$ref": "#/components/schemas/Workflow_PersonSecurityUltraLiteViewModel" + }, + "modifyDate": { + "type": "string", + "format": "date-time" + }, + "modifiedBy": { + "$ref": "#/components/schemas/Workflow_PersonSecurityUltraLiteViewModel" + } + }, + "additionalProperties": false + }, + "Workflow_App_SortDirection": { + "enum": [ + "Ascending", + "Descending" + ], + "type": "string" + }, + "Workflow_App_Sorting": { + "type": "object", + "properties": { + "sortColumn": { + "type": "string", + "nullable": true + }, + "sortDirection": { + "$ref": "#/components/schemas/Workflow_App_SortDirection" + } + }, + "additionalProperties": false + }, + "Workflow_Model_ActionType": { + "enum": [ + "Unknown", + "SendEmail", + "CreateFollowUp", + "CancelDelayedActions" + ], + "type": "string" + }, + "Workflow_Model_AttributeType": { + "enum": [ + "Unknown", + "Campus", + "AnswerSourceType", + "AnswerSourceEntity", + "AnswerValue", + "PersonHasMetPrerequisiteMilestones" + ], + "type": "string" + }, + "Workflow_Model_ConditionType": { + "enum": [ + "Unknown", + "IsSelected", + "RelatedRecordAdded", + "RelatedRecordEdited", + "RelatedRecordDeleted", + "IsEqualTo", + "IsNotSelected", + "HasValue", + "DoesNotHaveValue", + "IsNotEqualTo", + "Contains", + "DoesNotContain", + "IsLessThan", + "IsLessThanOrEqualTo", + "IsGreaterThan", + "IsGreaterThanOrEqualTo", + "IsBetween", + "IsTrue", + "IsFalse" + ], + "type": "string" + }, + "Workflow_Model_StandardErrorResponse": { + "type": "object", + "properties": { + "message": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Workflow_PersonSecurityUltraLiteViewModel": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "fullName": { + "type": "string", + "nullable": true + }, + "email": { + "type": "string", + "nullable": true + }, + "avatarUrl": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "Workflow_SearchResultsViewModel_RuleViewModel": { + "type": "object", + "properties": { + "resultCount": { + "type": "integer", + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Workflow_App_RuleViewModel" + }, + "nullable": true + } + }, + "additionalProperties": false + } + } + } +} diff --git a/types/index.d.ts b/types/index.d.ts index 47fb33903..4b698e01d 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -4,6 +4,7 @@ export declare enum HttpClient { NODE = 'node', AXIOS = 'axios', ANGULAR = 'angular', + SADDLEBACK = 'saddleback', } export declare enum Indent { @@ -15,7 +16,7 @@ export declare enum Indent { export type Options = { input: string | Record; output: string; - httpClient?: HttpClient | 'fetch' | 'xhr' | 'node' | 'axios' | 'angular'; + httpClient?: HttpClient | 'fetch' | 'xhr' | 'node' | 'axios' | 'angular' | 'saddleback'; clientName?: string; useOptions?: boolean; useUnionTypes?: boolean; @@ -33,6 +34,8 @@ export type CustomConfig = Options & { filterMethod: 'greedy' | 'ascetic'; filterArray: string[]; input: string; + additionalModelFileExtension?: boolean; + additionalServiceFileExtension?: boolean; }; export declare function generate(options: Options): Promise; From 78cdd788de8307c46e087d1b457eb4eb3d0fe980 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 17 Jun 2022 10:44:55 +0500 Subject: [PATCH 12/52] feat: remove unused filters --- openapi.config.json | 10 ++- src/generateCustomSpec.ts | 128 -------------------------------------- types/index.d.ts | 3 - 3 files changed, 4 insertions(+), 137 deletions(-) diff --git a/openapi.config.json b/openapi.config.json index 260764a22..061ed0aba 100644 --- a/openapi.config.json +++ b/openapi.config.json @@ -1,16 +1,14 @@ { "input": "./test/spec/saddlebackApi.json", "output": "./test/test/saddleback/", - "httpClient": "axios", - "clientName": "TestAxiosClassName", + "httpClient": "saddleback", + "clientName": "", "useOptions": true, "useUnionTypes": false, - "exportCore": true, + "exportCore": false, "exportServices": true, "exportModels": true, "exportSchemas": false, "indent": "4", - "postfix": "", - "filterMethod": "greedy", - "filterArray": ["/api/agreement", "/api/agreement/{id}", "/api/share-page/compare-results"] + "postfix": "" } diff --git a/src/generateCustomSpec.ts b/src/generateCustomSpec.ts index b483af73d..4b9744df4 100644 --- a/src/generateCustomSpec.ts +++ b/src/generateCustomSpec.ts @@ -1,140 +1,12 @@ import { generate, Options } from './generate'; -import { OpenApi } from './openApi/v3/interfaces/OpenApi'; -import { OpenApiMediaType } from './openApi/v3/interfaces/OpenApiMediaType'; -import { OpenApiOperation } from './openApi/v3/interfaces/OpenApiOperation'; -import { OpenApiParameter } from './openApi/v3/interfaces/OpenApiParameter'; -import { OpenApiSchema } from './openApi/v3/interfaces/OpenApiSchema'; -import { OpenApiServer } from './openApi/v3/interfaces/OpenApiServer'; -import { getOpenApiSpec } from './utils/getOpenApiSpec'; -import { Dictionary } from './utils/types'; type Config = Options & { - filterMethod: 'greedy' | 'ascetic'; - filterArray: string[]; - input: string; useSaddlebackServices?: boolean; additionalModelFileExtension?: boolean; additionalServiceFileExtension?: boolean; }; export const generateCustomSpec = async (config: Config) => { - const getNameFromRef = (ref: string): string => { - return ref.split('/').slice(-1)[0]; - }; - - const getSchemaRefFromContent = (content: OpenApiMediaType): string => { - let ref: string = ''; - - ref = content.$ref || content.schema?.$ref || content.schema?.items?.$ref || ''; - - return getNameFromRef(ref); - }; - - const recursiveAddAllUnknownModels = (modelName: string): void => { - const model = list.components?.schemas ? list.components.schemas[modelName] : undefined; - if (model === undefined) return; - - for (const property in model.properties) { - const ref = model.properties[property].$ref || model.properties[property].items?.$ref || ''; - const modelName = getNameFromRef(ref); - - if (!requiredSchemasSet.has(modelName)) { - requiredSchemasSet.add(modelName); - recursiveAddAllUnknownModels(modelName); - } - } - }; - - const list: OpenApi = await getOpenApiSpec(config.input); - - // const filterArray: string[] = ['/api/agreement', '/api/agreement/{id}']; - - const requiredPaths: OpenApi['paths'] = {}; - - for (const path in list.paths) { - if (!list.paths.hasOwnProperty(path)) return; - - if (config.filterMethod === 'ascetic') { - if (config.filterArray.some(it => it === path)) requiredPaths[path] = list.paths[path]; - } - if (config.filterMethod === 'greedy') { - if (!config.filterArray.some(it => it === path)) requiredPaths[path] = list.paths[path]; - } - } - - const requiredSchemasSet: Set = new Set(); - - for (const pathName in requiredPaths) { - const pathElement = requiredPaths[pathName]; - - const openApiPathValues = Object.values(pathElement) as ( - | OpenApiOperation - | OpenApiServer - | OpenApiParameter - | string - )[]; - - openApiPathValues.forEach(requestMethodData => { - if (typeof requestMethodData !== 'string') { - if (!('url' in requestMethodData)) { - if ('parameters' in requestMethodData) { - // add schemas from {apiPath}/{method}/parameters - requestMethodData.parameters?.forEach(parameter => { - const modelName = getSchemaRefFromContent(parameter); - - requiredSchemasSet.add(modelName); - recursiveAddAllUnknownModels(modelName); - }); - } - if ('responses' in requestMethodData) { - const responsesCodeData = Object.values(requestMethodData.responses); - - responsesCodeData.forEach(response => { - const contentTypeData = Object.values(response.content ?? {}); - - // add schemas from {apiPath}/{method}/responses/{responseType}/content - contentTypeData.forEach(content => { - const modelName = getSchemaRefFromContent(content); - - requiredSchemasSet.add(getSchemaRefFromContent(content)); - recursiveAddAllUnknownModels(modelName); - }); - }); - } - if ('requestBody' in requestMethodData) { - const requestBodyContent = Object.values(requestMethodData.requestBody?.content ?? {}); - - // add schemas from {apiPath}/{method}/responses/{responseType}/requestBody/content - requestBodyContent.forEach(content => { - const modelName = getSchemaRefFromContent(content); - - requiredSchemasSet.add(getSchemaRefFromContent(content)); - recursiveAddAllUnknownModels(modelName); - }); - } - } - } - }); - } - - const requiredSchemas: Dictionary = {}; - - if (list && list.components && list.components.schemas) { - for (const schema in list.components.schemas) { - if (requiredSchemasSet.has(schema)) { - requiredSchemas[schema] = list.components.schemas[schema]; - } - } - } - - const listWithRequiredPaths: OpenApi = { - ...list, - paths: requiredPaths, - components: { - schemas: requiredSchemas, - }, - }; - await generate({ ...config, input: listWithRequiredPaths }); }; diff --git a/types/index.d.ts b/types/index.d.ts index 4b698e01d..221911713 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -31,9 +31,6 @@ export type Options = { }; export type CustomConfig = Options & { - filterMethod: 'greedy' | 'ascetic'; - filterArray: string[]; - input: string; additionalModelFileExtension?: boolean; additionalServiceFileExtension?: boolean; }; From 30c40060c2e1ed30119eaec7af88264bc2cf5a09 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 17 Jun 2022 10:46:55 +0500 Subject: [PATCH 13/52] feat: rename custom to saddleback --- src/{generateCustomSpec.ts => generateSaddlebackSpec.ts} | 6 +++--- src/index.ts | 6 +++--- types/index.d.ts | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) rename src/{generateCustomSpec.ts => generateSaddlebackSpec.ts} (56%) diff --git a/src/generateCustomSpec.ts b/src/generateSaddlebackSpec.ts similarity index 56% rename from src/generateCustomSpec.ts rename to src/generateSaddlebackSpec.ts index 4b9744df4..a772bc3f5 100644 --- a/src/generateCustomSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -6,8 +6,8 @@ type Config = Options & { additionalServiceFileExtension?: boolean; }; -export const generateCustomSpec = async (config: Config) => { - await generate({ ...config, input: listWithRequiredPaths }); +export const generateSaddlebackSpec = async (config: Config) => { + await generate({ ...config }); }; -export default generateCustomSpec; +export default generateSaddlebackSpec; diff --git a/src/index.ts b/src/index.ts index 621559354..4dc2e097d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,9 @@ import { generate } from './generate'; -import { generateCustomSpec } from './generateCustomSpec'; +import { generateSaddlebackSpec } from './generateSaddlebackSpec'; import { HttpClient } from './HttpClient'; import { Indent } from './Indent'; -export { generateCustomSpec }; +export { generateSaddlebackSpec }; export { generate }; export { HttpClient } from './HttpClient'; export { Indent } from './Indent'; @@ -11,5 +11,5 @@ export { Indent } from './Indent'; export default { HttpClient, generate, - generateCustomSpec, + generateSaddlebackSpec, }; diff --git a/types/index.d.ts b/types/index.d.ts index 221911713..4fce6b9b5 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -36,13 +36,13 @@ export type CustomConfig = Options & { }; export declare function generate(options: Options): Promise; -export declare function generateCustomSpec(config: CustomConfig): Promise; +export declare function generateSaddlebackSpec(config: CustomConfig): Promise; declare type OpenAPI = { HttpClient: HttpClient; Indent: Indent; generate: typeof generate; - generateCustomSpec: typeof generateCustomSpec; + generateCustomSpec: typeof generateSaddlebackSpec; }; export default OpenAPI; From 941596ac861f56a5db1bd196aa8543ad513d5a57 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 20 Jun 2022 10:50:15 +0500 Subject: [PATCH 14/52] feat: remove lodash prefixes --- src/generateSaddlebackSpec.ts | 27 ++++++++++++++++++++++- src/templates/exportSaddlebackService.hbs | 2 ++ src/templates/index.hbs | 4 ++++ src/utils/mapSwaggerRef.ts | 13 +++++++++++ src/utils/removeLodashPrefix.ts | 3 +++ src/utils/removeLodashPrefixFromRef.ts | 11 +++++++++ src/utils/writeClient.ts | 1 + src/utils/writeClientIndex.spec.ts | 3 ++- src/utils/writeClientIndex.ts | 4 ++++ test/index.js | 15 ++++++------- tsconfig.json | 2 ++ types/index.d.ts | 2 ++ 12 files changed, 77 insertions(+), 10 deletions(-) create mode 100644 src/utils/mapSwaggerRef.ts create mode 100644 src/utils/removeLodashPrefix.ts create mode 100644 src/utils/removeLodashPrefixFromRef.ts diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index a772bc3f5..91d7b6522 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -1,13 +1,38 @@ import { generate, Options } from './generate'; +import { isString } from './utils/isString'; +import { getOpenApiSpec } from './utils/getOpenApiSpec'; +import { OpenApi } from './openApi/v3/interfaces/OpenApi'; +import { Dictionary } from './utils/types'; +import { OpenApiSchema } from './openApi/v3/interfaces/OpenApiSchema'; +import { removeLodashPrefix } from './utils/removeLodashPrefix'; +import { mapSwaggerRef } from './utils/mapSwaggerRef'; +import { removeLodashPrefixFromRef } from './utils/removeLodashPrefixFromRef'; type Config = Options & { useSaddlebackServices?: boolean; additionalModelFileExtension?: boolean; additionalServiceFileExtension?: boolean; + removeLodashPrefixes?: boolean; }; export const generateSaddlebackSpec = async (config: Config) => { - await generate({ ...config }); + const openApi: OpenApi = isString(config.input) ? await getOpenApiSpec(config.input) : config.input; + + if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { + const newSchemas: Dictionary = {}; + + for (const schemaKey in openApi.components.schemas) { + if (openApi.components.schemas.hasOwnProperty(schemaKey)) { + newSchemas[removeLodashPrefix(schemaKey)] = openApi.components.schemas[schemaKey]; + } + } + + openApi.components.schemas = newSchemas; + } + + mapSwaggerRef(openApi, removeLodashPrefixFromRef); + + await generate({ ...config, input: openApi }); }; export default generateSaddlebackSpec; diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index 71ba06b5f..caf33d4ed 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -51,7 +51,9 @@ export const fetch{{{../name}}}{{pascalCase name}} = async ({{> saddlebackParame contentType: '{{{parametersBody.mediaType}}}', {{/if}} {{/if}} +{{#if parameters}} ...config, +{{/if}} }); try { diff --git a/src/templates/index.hbs b/src/templates/index.hbs index 4f7038bf2..3a7ace4e2 100644 --- a/src/templates/index.hbs +++ b/src/templates/index.hbs @@ -41,7 +41,11 @@ export { ${{{name}}} } from './schemas/${{{name}}}'; {{#if services}} {{#each services}} +{{#equals @root.httpClient 'saddleback'}} +export * as fetch{{{name}}}{{{@root.postfix}}} from './services/{{{name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; +{{else}} export { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; +{{/equals}} {{/each}} {{/if}} {{/if}} diff --git a/src/utils/mapSwaggerRef.ts b/src/utils/mapSwaggerRef.ts new file mode 100644 index 000000000..daddb3cdf --- /dev/null +++ b/src/utils/mapSwaggerRef.ts @@ -0,0 +1,13 @@ +export const mapSwaggerRef = (obj: Record, mapFunction: Function): void => { + const searchRef = (obj: Record) => { + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + if (key === '$ref') { + obj[key] = mapFunction(obj[key]); + } else if (typeof obj[key] === 'object') searchRef(obj[key]); + } + } + } + + searchRef(obj); +}; diff --git a/src/utils/removeLodashPrefix.ts b/src/utils/removeLodashPrefix.ts new file mode 100644 index 000000000..1f8ee2eaa --- /dev/null +++ b/src/utils/removeLodashPrefix.ts @@ -0,0 +1,3 @@ +export const removeLodashPrefix = (s: string): string => { + return s.split('_').slice(-1)[0]; +}; diff --git a/src/utils/removeLodashPrefixFromRef.ts b/src/utils/removeLodashPrefixFromRef.ts new file mode 100644 index 000000000..dd7295ed9 --- /dev/null +++ b/src/utils/removeLodashPrefixFromRef.ts @@ -0,0 +1,11 @@ +import { removeLodashPrefix } from './removeLodashPrefix'; + +export const removeLodashPrefixFromRef = (swaggerRef: string) => { + return ( + swaggerRef + .split('/') + .slice(0, -1) + .reduce((acc: string, it: string) => `${acc}${it}/`, '') + + removeLodashPrefix(swaggerRef.split('/').slice(-1)[0]) + ); +}; diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index 7dabbf1a4..3fcc36111 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -141,6 +141,7 @@ export const writeClient = async ( exportModels, exportSchemas, postfix, + httpClient, clientName ); } diff --git a/src/utils/writeClientIndex.spec.ts b/src/utils/writeClientIndex.spec.ts index 939c8c772..c5e1712f6 100644 --- a/src/utils/writeClientIndex.spec.ts +++ b/src/utils/writeClientIndex.spec.ts @@ -2,6 +2,7 @@ import type { Client } from '../client/interfaces/Client'; import { writeFile } from './fileSystem'; import type { Templates } from './registerHandlebarTemplates'; import { writeClientIndex } from './writeClientIndex'; +import { HttpClient } from '../HttpClient'; jest.mock('./fileSystem'); @@ -35,7 +36,7 @@ describe('writeClientIndex', () => { }, }; - await writeClientIndex(client, templates, '/', true, true, true, true, true, 'Service'); + await writeClientIndex(client, templates, '/', true, true, true, true, true, 'Service', HttpClient.AXIOS); expect(writeFile).toBeCalledWith('/index.ts', 'index'); }); diff --git a/src/utils/writeClientIndex.ts b/src/utils/writeClientIndex.ts index eaecd1b40..0a717949f 100644 --- a/src/utils/writeClientIndex.ts +++ b/src/utils/writeClientIndex.ts @@ -6,6 +6,7 @@ import { isDefined } from './isDefined'; import { Templates } from './registerHandlebarTemplates'; import { sortModelsByName } from './sortModelsByName'; import { sortServicesByName } from './sortServicesByName'; +import { HttpClient } from '../HttpClient'; /** * Generate the OpenAPI client index file using the Handlebar template and write it to disk. @@ -20,6 +21,7 @@ import { sortServicesByName } from './sortServicesByName'; * @param exportModels Generate models * @param exportSchemas Generate schemas * @param postfix Service name postfix + * @param httpClient The selected httpClient (fetch, xhr, node or axios) * @param clientName Custom client class name */ export const writeClientIndex = async ( @@ -32,6 +34,7 @@ export const writeClientIndex = async ( exportModels: boolean, exportSchemas: boolean, postfix: string, + httpClient: HttpClient, clientName?: string ): Promise => { const templateResult = templates.index({ @@ -47,6 +50,7 @@ export const writeClientIndex = async ( models: sortModelsByName(client.models), services: sortServicesByName(client.services), exportClient: isDefined(clientName), + httpClient, }); await writeFile(resolve(outputPath, 'index.ts'), templateResult); diff --git a/test/index.js b/test/index.js index a373d4568..e727d0664 100644 --- a/test/index.js +++ b/test/index.js @@ -60,8 +60,8 @@ const main = async () => { // await generate('./test/spec/v2.json', './test/generated/v2/'); // await generate('./test/spec/v3.json', './test/generated/v3/'); const config = { - httpClient: 'axios', - clientName: 'TestAxiosClassName', + httpClient: 'saddleback', + clientName: '', useOptions: true, useUnionTypes: false, exportCore: false, @@ -70,27 +70,26 @@ const main = async () => { exportSchemas: false, indent: '4', postfix: '', - filterMethod: 'greedy', - filterArray: ['/api/agreement', '/api/agreement/{id}', '/api/share-page/compare-results'], additionalModelFileExtension: false, additionalServiceFileExtension: false, + removeLodashPrefixes: true, }; - await OpenAPI.generateCustomSpec({ + await OpenAPI.generateSaddlebackSpec({ input: './test/spec/saddlebackCoreApi.json', output: './test/new/saddleback/core', ...config, }); - await OpenAPI.generateCustomSpec({ + await OpenAPI.generateSaddlebackSpec({ input: './test/spec/saddlebackEventApi.json', output: './test/new/saddleback/event', ...config, }); - await OpenAPI.generateCustomSpec({ + await OpenAPI.generateSaddlebackSpec({ input: './test/spec/saddlebackWebAppApi.json', output: './test/new/saddleback/web', ...config, }); - await OpenAPI.generateCustomSpec({ + await OpenAPI.generateSaddlebackSpec({ input: './test/spec/saddlebackWorkflowApi.json', output: './test/new/saddleback/workflow', ...config, diff --git a/tsconfig.json b/tsconfig.json index 8d27e49a8..704de716d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,7 @@ { "compilerOptions": { + "baseUrl": "./src", + "jsx": "react", "outDir": "./dist", "target": "es2019", "module": "commonjs", diff --git a/types/index.d.ts b/types/index.d.ts index 4fce6b9b5..4f65b2f09 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -31,8 +31,10 @@ export type Options = { }; export type CustomConfig = Options & { + useSaddlebackServices?: boolean; additionalModelFileExtension?: boolean; additionalServiceFileExtension?: boolean; + removeLodashPrefixes?: boolean; }; export declare function generate(options: Options): Promise; From 8fc10ec58ae951bbb9cc7b328ddf2889d206be44 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 20 Jun 2022 13:05:04 +0500 Subject: [PATCH 15/52] fix: index file and config priority --- bin/saddleback.cli.js | 5 +++-- src/generateSaddlebackSpec.ts | 14 ++++++++++++++ src/utils/writeClient.ts | 2 ++ src/utils/writeClientIndex.spec.ts | 2 +- src/utils/writeClientIndex.ts | 6 ++++++ test/index.js | 4 ++-- 6 files changed, 28 insertions(+), 5 deletions(-) diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index 45a0c172b..aa8fe4969 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -18,12 +18,13 @@ const params = program const OpenAPI = require(path.resolve(__dirname, '../dist/index.js')); const config = require(path.resolve(params.config || `./openapi.config.json`)); +const generateSaddlebackSpec = require('../src/generateSaddlebackSpec'); if (OpenAPI) { - OpenAPI.generateCustomSpec({ + OpenAPI.generateSaddlebackSpec({ + ...config, input: params.input, output: params.output, - ...config, }) .then(() => { process.exit(0); diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index 91d7b6522..6178ed670 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -7,6 +7,7 @@ import { OpenApiSchema } from './openApi/v3/interfaces/OpenApiSchema'; import { removeLodashPrefix } from './utils/removeLodashPrefix'; import { mapSwaggerRef } from './utils/mapSwaggerRef'; import { removeLodashPrefixFromRef } from './utils/removeLodashPrefixFromRef'; +import RefParser from 'json-schema-ref-parser'; type Config = Options & { useSaddlebackServices?: boolean; @@ -16,6 +17,19 @@ type Config = Options & { }; export const generateSaddlebackSpec = async (config: Config) => { + const url = 'https://hc-eventservice-dev.azurewebsites.net/api-doc/all/swagger.json'; + const test = await RefParser.bundle(url, url, { + resolve: { + http: { + withCredentials: true, + headers: { + 'Cookie': 'ARRAffinity=7d18d5957d129d3dc3a25d7a2c85147ef57f1a6b93910c50eb850417ab59dc56; ARRAffinitySameSite=7d18d5957d129d3dc3a25d7a2c85147ef57f1a6b93910c50eb850417ab59dc56; apiKey=eyJhbGciOiJSUzI1NiIsImtpZCI6IjRCNDc1Q0I5RUQ5QTAzNThFMzExRjNBMjEwOERCNERDOUJGMDQ0MTIiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJTMGRjdWUyYUExampFZk9pRUkyMDNKdndSQkkifQ.eyJuYmYiOjE2NTU3MDc5MjcsImV4cCI6MTY1NTcxMTUyNywiaXNzIjoiaHR0cHM6Ly9pZGVudGl0eS1kZXYuc2FkZGxlYmFjay5jb20iLCJhdWQiOlsiaHR0cHM6Ly9pZGVudGl0eS1kZXYuc2FkZGxlYmFjay5jb20vcmVzb3VyY2VzIiwiY20tYXBpIl0sImNsaWVudF9pZCI6ImNtIiwic3ViIjoiNzc5ODMxMCIsImF1dGhfdGltZSI6MTY1NTcwNzkyNSwiaWRwIjoibG9jYWwiLCJ1cm46c2FkZGxlYmFjazp1c2VyX2lkIjpbIjg4YjI4ODk1LTQyMDgtNDY5NC1hZGQ4LWYzYWJhZjUzYjFlYiIsIjg4YjI4ODk1LTQyMDgtNDY5NC1hZGQ4LWYzYWJhZjUzYjFlYiJdLCJpZCI6Ijc3OTgzMTAiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwidXJuOnNhZGRsZWJhY2s6cGVyc29uX2xpbmsiOiJFeGlzdGluZ1JlY29yZCIsInNjb3BlIjpbImNtLWFwaS5kZWZhdWx0Il0sImFtciI6WyJwd2QiXX0.qstJ8gSzRFXgo5hcBlj7BusYSxno-Cx_l96CQjqlRXfiTBOrouCpcCdrQLuaafZrJv7Hvn_jogOI7-r6d_qB575NIPBKNed7Z6LSQcXHWbvZVBB3J9Ch1g5M8U3eG71_uuBF7aFb_ecVVktOHcGDeC24g7UrmI5_jRFf9rYXbT0lhH4KwSIZzMFOS19Wd8txa7XE_rIDkhzetcH1z2sf9QL5Vd9RkdJUgFKPJEneyRmeZyBxHKn5cgrtF3cANZJlvIBZ2Mxu1OFxcQx6mGy-nHUTEPz1dHFPi2FZ8xkBgUxLeaQMflLgIv6nICpe_uESRvP91MxIQ--vEsrjN7Cy9A; SL_G_WPT_TO=ru; SL_GWPT_Show_Hide_tmp=1; SL_wptGlobTipTmp=1', + 'Authorizations': 'Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjRCNDc1Q0I5RUQ5QTAzNThFMzExRjNBMjEwOERCNERDOUJGMDQ0MTIiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJTMGRjdWUyYUExampFZk9pRUkyMDNKdndSQkkifQ.eyJuYmYiOjE2NTU3MDc5MjcsImV4cCI6MTY1NTcxMTUyNywiaXNzIjoiaHR0cHM6Ly9pZGVudGl0eS1kZXYuc2FkZGxlYmFjay5jb20iLCJhdWQiOlsiaHR0cHM6Ly9pZGVudGl0eS1kZXYuc2FkZGxlYmFjay5jb20vcmVzb3VyY2VzIiwiY20tYXBpIl0sImNsaWVudF9pZCI6ImNtIiwic3ViIjoiNzc5ODMxMCIsImF1dGhfdGltZSI6MTY1NTcwNzkyNSwiaWRwIjoibG9jYWwiLCJ1cm46c2FkZGxlYmFjazp1c2VyX2lkIjpbIjg4YjI4ODk1LTQyMDgtNDY5NC1hZGQ4LWYzYWJhZjUzYjFlYiIsIjg4YjI4ODk1LTQyMDgtNDY5NC1hZGQ4LWYzYWJhZjUzYjFlYiJdLCJpZCI6Ijc3OTgzMTAiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwidXJuOnNhZGRsZWJhY2s6cGVyc29uX2xpbmsiOiJFeGlzdGluZ1JlY29yZCIsInNjb3BlIjpbImNtLWFwaS5kZWZhdWx0Il0sImFtciI6WyJwd2QiXX0.qstJ8gSzRFXgo5hcBlj7BusYSxno-Cx_l96CQjqlRXfiTBOrouCpcCdrQLuaafZrJv7Hvn_jogOI7-r6d_qB575NIPBKNed7Z6LSQcXHWbvZVBB3J9Ch1g5M8U3eG71_uuBF7aFb_ecVVktOHcGDeC24g7UrmI5_jRFf9rYXbT0lhH4KwSIZzMFOS19Wd8txa7XE_rIDkhzetcH1z2sf9QL5Vd9RkdJUgFKPJEneyRmeZyBxHKn5cgrtF3cANZJlvIBZ2Mxu1OFxcQx6mGy-nHUTEPz1dHFPi2FZ8xkBgUxLeaQMflLgIv6nICpe_uESRvP91MxIQ--vEsrjN7Cy9A', + } + } + } + }); + const openApi: OpenApi = isString(config.input) ? await getOpenApiSpec(config.input) : config.input; if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index 3fcc36111..99ef43f52 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -142,6 +142,8 @@ export const writeClient = async ( exportSchemas, postfix, httpClient, + additionalModelFileExtension, + additionalServiceFileExtension, clientName ); } diff --git a/src/utils/writeClientIndex.spec.ts b/src/utils/writeClientIndex.spec.ts index c5e1712f6..110494c59 100644 --- a/src/utils/writeClientIndex.spec.ts +++ b/src/utils/writeClientIndex.spec.ts @@ -36,7 +36,7 @@ describe('writeClientIndex', () => { }, }; - await writeClientIndex(client, templates, '/', true, true, true, true, true, 'Service', HttpClient.AXIOS); + await writeClientIndex(client, templates, '/', true, true, true, true, true, 'Service', HttpClient.AXIOS, false, false); expect(writeFile).toBeCalledWith('/index.ts', 'index'); }); diff --git a/src/utils/writeClientIndex.ts b/src/utils/writeClientIndex.ts index 0a717949f..c4bfe2d0c 100644 --- a/src/utils/writeClientIndex.ts +++ b/src/utils/writeClientIndex.ts @@ -22,6 +22,8 @@ import { HttpClient } from '../HttpClient'; * @param exportSchemas Generate schemas * @param postfix Service name postfix * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param additionalModelFileExtension Add file extension for models *.models.* + * @param additionalServiceFileExtension Add file extension for service *.service.* * @param clientName Custom client class name */ export const writeClientIndex = async ( @@ -35,6 +37,8 @@ export const writeClientIndex = async ( exportSchemas: boolean, postfix: string, httpClient: HttpClient, + additionalModelFileExtension: boolean, + additionalServiceFileExtension: boolean, clientName?: string ): Promise => { const templateResult = templates.index({ @@ -51,6 +55,8 @@ export const writeClientIndex = async ( services: sortServicesByName(client.services), exportClient: isDefined(clientName), httpClient, + additionalModelFileExtension, + additionalServiceFileExtension, }); await writeFile(resolve(outputPath, 'index.ts'), templateResult); diff --git a/test/index.js b/test/index.js index e727d0664..2c3cb8814 100644 --- a/test/index.js +++ b/test/index.js @@ -70,8 +70,8 @@ const main = async () => { exportSchemas: false, indent: '4', postfix: '', - additionalModelFileExtension: false, - additionalServiceFileExtension: false, + additionalModelFileExtension: true, + additionalServiceFileExtension: true, removeLodashPrefixes: true, }; await OpenAPI.generateSaddlebackSpec({ From b7eb86db869c8cd5d3d1af1337fb3b1aa25184db Mon Sep 17 00:00:00 2001 From: Roman P Date: Tue, 21 Jun 2022 12:17:18 +0500 Subject: [PATCH 16/52] feat: add new README --- README.md | 134 +++++++++++++++------------------- bin/saddleback.cli.js | 16 +++- docs/basic-usage.md | 2 +- docs/original-readme.md | 95 ++++++++++++++++++++++++ src/generateSaddlebackSpec.ts | 16 +--- types/index.d.ts | 1 - 6 files changed, 169 insertions(+), 95 deletions(-) create mode 100644 docs/original-readme.md diff --git a/README.md b/README.md index 7c3a945c1..5167e86c8 100644 --- a/README.md +++ b/README.md @@ -1,95 +1,75 @@ -# OpenAPI Typescript Codegen - -[![NPM][npm-image]][npm-url] -[![License][license-image]][license-url] -[![Coverage][coverage-image]][coverage-url] -[![Quality][quality-image]][quality-url] -[![Code Climate][climate-image]][climate-url] -[![Downloads][downloads-image]][downloads-url] -[![Build][build-image]][build-url] - -> Node.js library that generates Typescript clients based on the OpenAPI specification. - -## Why? -- Frontend ❤️ OpenAPI, but we do not want to use JAVA codegen in our builds -- Quick, lightweight, robust and framework-agnostic 🚀 -- Supports generation of TypeScript clients -- Supports generations of Fetch, [Node-Fetch](#node-fetch-support), [Axios](#axios-support), [Angular](#angular-support) and XHR http clients -- Supports OpenAPI specification v2.0 and v3.0 -- Supports JSON and YAML files for input -- Supports generation through CLI, Node.js and NPX -- Supports tsc and @babel/plugin-transform-typescript -- Supports aborting of requests (cancelable promise pattern) -- Supports external references using [json-schema-ref-parser](https://github.com/APIDevTools/json-schema-ref-parser/) +# Custom Saddleback OpenAPI Typescript Codegen + +> For original usage read - [original README](docs/original-readme.md) ## Install ``` -npm install openapi-typescript-codegen --save-dev +npm install [gitUrl] --save-dev ``` ## Usage ``` -$ openapi --help +$ saddlebackOpenapi --help - Usage: openapi [options] + Usage: saddlebackOpenapi [options] Options: -V, --version output the version number - -i, --input OpenAPI specification, can be a path, url or string content (required) - -o, --output Output directory (required) - -c, --client HTTP client to generate [fetch, xhr, node, axios, angular] (default: "fetch") - --name Custom client class name - --useOptions Use options instead of arguments - --useUnionTypes Use union types instead of enums - --exportCore Write core files to disk (default: true) - --exportServices Write services to disk (default: true) - --exportModels Write models to disk (default: true) - --exportSchemas Write schemas to disk (default: false) - --indent Indentation options [4, 2, tab] (default: "4") - --postfix Service name postfix (default: "Service") - --request Path to custom request file + -i, --input OpenAPI specification, can be a path, url or string content + -o, --output Output directory + -c, --config Path to the config file -h, --help display help for command Examples - $ openapi --input ./spec.json --output ./generated - $ openapi --input ./spec.json --output ./generated --client xhr + $ saddlebackOpenapi --input ./spec.json --output ./generated + $ saddlebackOpenapi --config ./openapi.config.json +``` + +## Config file +*extends original OPTIONS* +``` + input required in the config or cmd arguments + output required in the config or cmd arguments + + additionalModelFileExtension optional + additionalServiceFileExtension optional + removeLodashPrefixes optional ``` +### Settings: +### `input` +- Default: `undefined` +- Type: `string` + +OpenAPI specification, can be a path, url or string content (required in the config or cmd arguments) + +### `output` +- Default: `undefined` +- Type: `string` + +Output directory (required in the config or cmd arguments) + +### `additionalModelFileExtension` +- Default: `true` +- Type: `boolean` + +Apply `*.models.*` extension to model files. + +For example (myModel.ts -> myModel.models.ts) + +### `additionalServiceFileExtension` +- Default: `true` +- Type: `boolean` + +Apply `*.service.*` extension to service files. + +For example (myService.ts -> myService.service.ts) + +### `removeLodashPrefixes` +- Default: `true` +- Type: `boolean` + +Remove special prefixes that are separated by `_` at the start of names. -Documentation -=== -- [Basic usage](docs/basic-usage.md) -- [OpenAPI object](docs/openapi-object.md) -- [Client instances](docs/client-instances.md) `--name` -- [Argument vs. Object style](docs/arguments-vs-object-style.md) `--useOptions` -- [Enums vs. Union types](docs/enum-vs-union-types.md) `--useUnionTypes` -- [Runtime schemas](docs/runtime-schemas.md) `--exportSchemas` -- [Enum with custom names and descriptions](docs/custom-enums.md) -- [Nullable props (OpenAPI v2)](docs/nullable-props.md) -- [Authorization](docs/authorization.md) -- [External references](docs/external-references.md) -- [Canceling requests](docs/canceling-requests.md) -- [Custom request file](docs/custom-request-file.md) - -Support -=== -- [Babel support](docs/babel-support.md) -- [Axios support](docs/axios-support.md) -- [Angular support](docs/angular-support.md) -- [Node-Fetch support](docs/node-fetch-support.md) - -[npm-url]: https://npmjs.org/package/openapi-typescript-codegen -[npm-image]: https://img.shields.io/npm/v/openapi-typescript-codegen.svg -[license-url]: LICENSE -[license-image]: http://img.shields.io/npm/l/openapi-typescript-codegen.svg -[coverage-url]: https://codecov.io/gh/ferdikoomen/openapi-typescript-codegen -[coverage-image]: https://img.shields.io/codecov/c/github/ferdikoomen/openapi-typescript-codegen.svg -[quality-url]: https://lgtm.com/projects/g/ferdikoomen/openapi-typescript-codegen -[quality-image]: https://img.shields.io/lgtm/grade/javascript/g/ferdikoomen/openapi-typescript-codegen.svg -[climate-url]: https://codeclimate.com/github/ferdikoomen/openapi-typescript-codegen -[climate-image]: https://img.shields.io/codeclimate/maintainability/ferdikoomen/openapi-typescript-codegen.svg -[downloads-url]: http://npm-stat.com/charts.html?package=openapi-typescript-codegen -[downloads-image]: http://img.shields.io/npm/dm/openapi-typescript-codegen.svg -[build-url]: https://circleci.com/gh/ferdikoomen/openapi-typescript-codegen/tree/master -[build-image]: https://circleci.com/gh/ferdikoomen/openapi-typescript-codegen/tree/master.svg?style=svg +For example (Custom_Prefix_Name -> Name) diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index aa8fe4969..e0bc7afba 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -18,10 +18,24 @@ const params = program const OpenAPI = require(path.resolve(__dirname, '../dist/index.js')); const config = require(path.resolve(params.config || `./openapi.config.json`)); -const generateSaddlebackSpec = require('../src/generateSaddlebackSpec'); if (OpenAPI) { OpenAPI.generateSaddlebackSpec({ + httpClient: 'saddleback', + clientName: '', + useOptions: true, + useUnionTypes: false, + exportCore: false, + exportServices: true, + exportModels: true, + exportSchemas: false, + indent: '4', + postfix: '', + request: '', + write: true, + additionalModelFileExtension: true, + additionalServiceFileExtension: true, + removeLodashPrefixes: true, ...config, input: params.input, output: params.output, diff --git a/docs/basic-usage.md b/docs/basic-usage.md index 5b110f2ac..938267c05 100644 --- a/docs/basic-usage.md +++ b/docs/basic-usage.md @@ -1,4 +1,4 @@ -# Basic usage + # Basic usage ``` $ openapi --help diff --git a/docs/original-readme.md b/docs/original-readme.md new file mode 100644 index 000000000..536ecc452 --- /dev/null +++ b/docs/original-readme.md @@ -0,0 +1,95 @@ +# OpenAPI Typescript Codegen + +[![NPM][npm-image]][npm-url] +[![License][license-image]][license-url] +[![Coverage][coverage-image]][coverage-url] +[![Quality][quality-image]][quality-url] +[![Code Climate][climate-image]][climate-url] +[![Downloads][downloads-image]][downloads-url] +[![Build][build-image]][build-url] + +> Node.js library that generates Typescript clients based on the OpenAPI specification. + +## Why? +- Frontend ❤️ OpenAPI, but we do not want to use JAVA codegen in our builds +- Quick, lightweight, robust and framework-agnostic 🚀 +- Supports generation of TypeScript clients +- Supports generations of Fetch, [Node-Fetch](#node-fetch-support), [Axios](#axios-support), [Angular](#angular-support) and XHR http clients +- Supports OpenAPI specification v2.0 and v3.0 +- Supports JSON and YAML files for input +- Supports generation through CLI, Node.js and NPX +- Supports tsc and @babel/plugin-transform-typescript +- Supports aborting of requests (cancelable promise pattern) +- Supports external references using [json-schema-ref-parser](https://github.com/APIDevTools/json-schema-ref-parser/) + +## Install + +``` +npm install openapi-typescript-codegen --save-dev +``` + +## Usage + +``` +$ openapi --help + + Usage: openapi [options] + + Options: + -V, --version output the version number + -i, --input OpenAPI specification, can be a path, url or string content (required) + -o, --output Output directory (required) + -c, --client HTTP client to generate [fetch, xhr, node, axios, angular] (default: "fetch") + --name Custom client class name + --useOptions Use options instead of arguments + --useUnionTypes Use union types instead of enums + --exportCore Write core files to disk (default: true) + --exportServices Write services to disk (default: true) + --exportModels Write models to disk (default: true) + --exportSchemas Write schemas to disk (default: false) + --indent Indentation options [4, 2, tab] (default: "4") + --postfix Service name postfix (default: "Service") + --request Path to custom request file + -h, --help display help for command + + Examples + $ openapi --input ./spec.json --output ./generated + $ openapi --input ./spec.json --output ./generated --client xhr +``` + +Documentation +=== +- [Basic usage](basic-usage.md) +- [OpenAPI object](openapi-object.md) +- [Client instances](client-instances.md) `--name` +- [Argument vs. Object style](arguments-vs-object-style.md) `--useOptions` +- [Enums vs. Union types](enum-vs-union-types.md) `--useUnionTypes` +- [Runtime schemas](runtime-schemas.md) `--exportSchemas` +- [Enum with custom names and descriptions](custom-enums.md) +- [Nullable props (OpenAPI v2)](nullable-props.md) +- [Authorization](authorization.md) +- [External references](external-references.md) +- [Canceling requests](canceling-requests.md) +- [Custom request file](custom-request-file.md) + +Support +=== +- [Babel support](babel-support.md) +- [Axios support](axios-support.md) +- [Angular support](angular-support.md) +- [Node-Fetch support](node-fetch-support.md) + +[npm-url]: https://npmjs.org/package/openapi-typescript-codegen +[npm-image]: https://img.shields.io/npm/v/openapi-typescript-codegen.svg +[license-url]: ../LICENSE +[license-image]: http://img.shields.io/npm/l/openapi-typescript-codegen.svg +[coverage-url]: https://codecov.io/gh/ferdikoomen/openapi-typescript-codegen +[coverage-image]: https://img.shields.io/codecov/c/github/ferdikoomen/openapi-typescript-codegen.svg +[quality-url]: https://lgtm.com/projects/g/ferdikoomen/openapi-typescript-codegen +[quality-image]: https://img.shields.io/lgtm/grade/javascript/g/ferdikoomen/openapi-typescript-codegen.svg +[climate-url]: https://codeclimate.com/github/ferdikoomen/openapi-typescript-codegen +[climate-image]: https://img.shields.io/codeclimate/maintainability/ferdikoomen/openapi-typescript-codegen.svg +[downloads-url]: http://npm-stat.com/charts.html?package=openapi-typescript-codegen +[downloads-image]: http://img.shields.io/npm/dm/openapi-typescript-codegen.svg +[build-url]: https://circleci.com/gh/ferdikoomen/openapi-typescript-codegen/tree/master +[build-image]: https://circleci.com/gh/ferdikoomen/openapi-typescript-codegen/tree/master.svg?style=svg diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index 6178ed670..1fb08e1e7 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -7,7 +7,6 @@ import { OpenApiSchema } from './openApi/v3/interfaces/OpenApiSchema'; import { removeLodashPrefix } from './utils/removeLodashPrefix'; import { mapSwaggerRef } from './utils/mapSwaggerRef'; import { removeLodashPrefixFromRef } from './utils/removeLodashPrefixFromRef'; -import RefParser from 'json-schema-ref-parser'; type Config = Options & { useSaddlebackServices?: boolean; @@ -17,20 +16,7 @@ type Config = Options & { }; export const generateSaddlebackSpec = async (config: Config) => { - const url = 'https://hc-eventservice-dev.azurewebsites.net/api-doc/all/swagger.json'; - const test = await RefParser.bundle(url, url, { - resolve: { - http: { - withCredentials: true, - headers: { - 'Cookie': 'ARRAffinity=7d18d5957d129d3dc3a25d7a2c85147ef57f1a6b93910c50eb850417ab59dc56; ARRAffinitySameSite=7d18d5957d129d3dc3a25d7a2c85147ef57f1a6b93910c50eb850417ab59dc56; apiKey=eyJhbGciOiJSUzI1NiIsImtpZCI6IjRCNDc1Q0I5RUQ5QTAzNThFMzExRjNBMjEwOERCNERDOUJGMDQ0MTIiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJTMGRjdWUyYUExampFZk9pRUkyMDNKdndSQkkifQ.eyJuYmYiOjE2NTU3MDc5MjcsImV4cCI6MTY1NTcxMTUyNywiaXNzIjoiaHR0cHM6Ly9pZGVudGl0eS1kZXYuc2FkZGxlYmFjay5jb20iLCJhdWQiOlsiaHR0cHM6Ly9pZGVudGl0eS1kZXYuc2FkZGxlYmFjay5jb20vcmVzb3VyY2VzIiwiY20tYXBpIl0sImNsaWVudF9pZCI6ImNtIiwic3ViIjoiNzc5ODMxMCIsImF1dGhfdGltZSI6MTY1NTcwNzkyNSwiaWRwIjoibG9jYWwiLCJ1cm46c2FkZGxlYmFjazp1c2VyX2lkIjpbIjg4YjI4ODk1LTQyMDgtNDY5NC1hZGQ4LWYzYWJhZjUzYjFlYiIsIjg4YjI4ODk1LTQyMDgtNDY5NC1hZGQ4LWYzYWJhZjUzYjFlYiJdLCJpZCI6Ijc3OTgzMTAiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwidXJuOnNhZGRsZWJhY2s6cGVyc29uX2xpbmsiOiJFeGlzdGluZ1JlY29yZCIsInNjb3BlIjpbImNtLWFwaS5kZWZhdWx0Il0sImFtciI6WyJwd2QiXX0.qstJ8gSzRFXgo5hcBlj7BusYSxno-Cx_l96CQjqlRXfiTBOrouCpcCdrQLuaafZrJv7Hvn_jogOI7-r6d_qB575NIPBKNed7Z6LSQcXHWbvZVBB3J9Ch1g5M8U3eG71_uuBF7aFb_ecVVktOHcGDeC24g7UrmI5_jRFf9rYXbT0lhH4KwSIZzMFOS19Wd8txa7XE_rIDkhzetcH1z2sf9QL5Vd9RkdJUgFKPJEneyRmeZyBxHKn5cgrtF3cANZJlvIBZ2Mxu1OFxcQx6mGy-nHUTEPz1dHFPi2FZ8xkBgUxLeaQMflLgIv6nICpe_uESRvP91MxIQ--vEsrjN7Cy9A; SL_G_WPT_TO=ru; SL_GWPT_Show_Hide_tmp=1; SL_wptGlobTipTmp=1', - 'Authorizations': 'Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjRCNDc1Q0I5RUQ5QTAzNThFMzExRjNBMjEwOERCNERDOUJGMDQ0MTIiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJTMGRjdWUyYUExampFZk9pRUkyMDNKdndSQkkifQ.eyJuYmYiOjE2NTU3MDc5MjcsImV4cCI6MTY1NTcxMTUyNywiaXNzIjoiaHR0cHM6Ly9pZGVudGl0eS1kZXYuc2FkZGxlYmFjay5jb20iLCJhdWQiOlsiaHR0cHM6Ly9pZGVudGl0eS1kZXYuc2FkZGxlYmFjay5jb20vcmVzb3VyY2VzIiwiY20tYXBpIl0sImNsaWVudF9pZCI6ImNtIiwic3ViIjoiNzc5ODMxMCIsImF1dGhfdGltZSI6MTY1NTcwNzkyNSwiaWRwIjoibG9jYWwiLCJ1cm46c2FkZGxlYmFjazp1c2VyX2lkIjpbIjg4YjI4ODk1LTQyMDgtNDY5NC1hZGQ4LWYzYWJhZjUzYjFlYiIsIjg4YjI4ODk1LTQyMDgtNDY5NC1hZGQ4LWYzYWJhZjUzYjFlYiJdLCJpZCI6Ijc3OTgzMTAiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwidXJuOnNhZGRsZWJhY2s6cGVyc29uX2xpbmsiOiJFeGlzdGluZ1JlY29yZCIsInNjb3BlIjpbImNtLWFwaS5kZWZhdWx0Il0sImFtciI6WyJwd2QiXX0.qstJ8gSzRFXgo5hcBlj7BusYSxno-Cx_l96CQjqlRXfiTBOrouCpcCdrQLuaafZrJv7Hvn_jogOI7-r6d_qB575NIPBKNed7Z6LSQcXHWbvZVBB3J9Ch1g5M8U3eG71_uuBF7aFb_ecVVktOHcGDeC24g7UrmI5_jRFf9rYXbT0lhH4KwSIZzMFOS19Wd8txa7XE_rIDkhzetcH1z2sf9QL5Vd9RkdJUgFKPJEneyRmeZyBxHKn5cgrtF3cANZJlvIBZ2Mxu1OFxcQx6mGy-nHUTEPz1dHFPi2FZ8xkBgUxLeaQMflLgIv6nICpe_uESRvP91MxIQ--vEsrjN7Cy9A', - } - } - } - }); - - const openApi: OpenApi = isString(config.input) ? await getOpenApiSpec(config.input) : config.input; + const openApi: OpenApi = isString(config.input) ? await getOpenApiSpec(config.input) : config.input; if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { const newSchemas: Dictionary = {}; diff --git a/types/index.d.ts b/types/index.d.ts index 4f65b2f09..91ae230f7 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -31,7 +31,6 @@ export type Options = { }; export type CustomConfig = Options & { - useSaddlebackServices?: boolean; additionalModelFileExtension?: boolean; additionalServiceFileExtension?: boolean; removeLodashPrefixes?: boolean; From cee9a2f302fc0842caf9b511ac105b2d4ad2fd72 Mon Sep 17 00:00:00 2001 From: Roman P Date: Thu, 23 Jun 2022 14:32:55 +0500 Subject: [PATCH 17/52] feat: add functions to fetch swagger.json from saddleback server --- rollup.config.js | 2 +- src/generateSaddlebackSpec.ts | 61 +++++++++++++++++-- src/utils/saddleback/getApiToken.ts | 27 ++++++++ .../saddleback/getRequestVerificationToken.ts | 27 ++++++++ src/utils/saddleback/getSessionCookie.ts | 50 +++++++++++++++ src/utils/saddleback/getSwaggerJson.ts | 12 ++++ 6 files changed, 173 insertions(+), 6 deletions(-) create mode 100644 src/utils/saddleback/getApiToken.ts create mode 100644 src/utils/saddleback/getRequestVerificationToken.ts create mode 100644 src/utils/saddleback/getSessionCookie.ts create mode 100644 src/utils/saddleback/getSwaggerJson.ts diff --git a/rollup.config.js b/rollup.config.js index cb5bc6469..ff88c800a 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -70,6 +70,6 @@ export default { file: './dist/index.js', format: 'cjs', }, - external: ['camelcase', 'commander', 'fs-extra', 'handlebars', 'json-schema-ref-parser'], + external: ['camelcase', 'commander', 'fs-extra', 'handlebars', 'json-schema-ref-parser', 'axios', 'form-data'], plugins: getPlugins(), }; diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index 1fb08e1e7..3eb581816 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -1,12 +1,16 @@ import { generate, Options } from './generate'; -import { isString } from './utils/isString'; -import { getOpenApiSpec } from './utils/getOpenApiSpec'; import { OpenApi } from './openApi/v3/interfaces/OpenApi'; -import { Dictionary } from './utils/types'; import { OpenApiSchema } from './openApi/v3/interfaces/OpenApiSchema'; -import { removeLodashPrefix } from './utils/removeLodashPrefix'; +import { getOpenApiSpec } from './utils/getOpenApiSpec'; +import { isString } from './utils/isString'; import { mapSwaggerRef } from './utils/mapSwaggerRef'; +import { removeLodashPrefix } from './utils/removeLodashPrefix'; import { removeLodashPrefixFromRef } from './utils/removeLodashPrefixFromRef'; +import { getApiToken } from './utils/saddleback/getApiToken'; +import { getRequestVerificationToken } from './utils/saddleback/getRequestVerificationToken'; +import { getSessionCookie } from './utils/saddleback/getSessionCookie'; +import { getSwaggerJson } from './utils/saddleback/getSwaggerJson'; +import { Dictionary } from './utils/types'; type Config = Options & { useSaddlebackServices?: boolean; @@ -16,7 +20,54 @@ type Config = Options & { }; export const generateSaddlebackSpec = async (config: Config) => { - const openApi: OpenApi = isString(config.input) ? await getOpenApiSpec(config.input) : config.input; + const username = 'roman.tech48@gmail.com'; + const password = "&cY8at<'S5PfJa#k"; + const swaggerUrl = `https://hc-workflowsservice-dev.azurewebsites.net/api-doc/v1/swagger.json`; + + const loginUrl = `https://identity-dev.saddleback.com/account/login`; + const tokenUrl = `https://identity-dev.saddleback.com/connect/authorize/callback`; + + // params + const client_id = 'cm'; + const response_type = 'token'; + const scope = 'cm-api.default'; + const redirect_uri = (swaggerUrl.match(new RegExp(`.*\.net`)) || [])[0] + '/api-doc-auth-callback'; + const response_mode = 'form_post'; + const state = 'e57a56201103b8bda3981515294649254a764612d871ecbe7a31efb8e3e66c8b'; + const nonce = '78fd83bf2d178a5c5de18f9f7da3269b34f7daa07d4accc28cd0bdb87f9deee8'; + const returnUrl = `/connect/authorize/callback?client_id=${client_id}&response_type=${response_type}&scope=${scope}&redirect_uri=${redirect_uri}&state=${state}&nonce=${nonce}&response_mode=${response_mode}`; + + const { requestVerificationToken, cookie } = await getRequestVerificationToken({ + url: loginUrl, + params: { returnUrl }, + }); + + const { cookie: sessionCookie } = await getSessionCookie({ + url: loginUrl, + username, + password, + cookie, + requestVerificationToken, + params: { returnUrl }, + }); + + const { apiToken } = await getApiToken({ + url: tokenUrl, + cookie: sessionCookie, + params: { + client_id, + response_type, + scope, + redirect_uri, + state, + nonce, + response_mode, + }, + }); + + const { data: json } = await getSwaggerJson({ url: swaggerUrl, apiToken: apiToken }); + + const openApi: OpenApi = isString(config.input) ? await getOpenApiSpec(config.input) : config.input; if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { const newSchemas: Dictionary = {}; diff --git a/src/utils/saddleback/getApiToken.ts b/src/utils/saddleback/getApiToken.ts new file mode 100644 index 000000000..079596fd7 --- /dev/null +++ b/src/utils/saddleback/getApiToken.ts @@ -0,0 +1,27 @@ +import axios from 'axios'; + +export const getApiToken = async ({ + url, + cookie, + params, +}: { + url: string; + cookie: string; + params: Record; +}): Promise<{ apiToken: string }> => { + const response = await axios(url, { + method: 'GET', + headers: { + Cookie: cookie, + }, + params, + maxRedirects: 0, + }); + + const regexp = new RegExp(`type='hidden' name='access_token' value='(.*)'`); + const apiToken = response.data.match(regexp)?.[1] || null; + + if (apiToken === null) throw new Error('wrong apiToken getApiToken'); + + return { apiToken }; +}; diff --git a/src/utils/saddleback/getRequestVerificationToken.ts b/src/utils/saddleback/getRequestVerificationToken.ts new file mode 100644 index 000000000..575972132 --- /dev/null +++ b/src/utils/saddleback/getRequestVerificationToken.ts @@ -0,0 +1,27 @@ +import axios from 'axios'; + +export const getRequestVerificationToken = async ({ + url, + params, +}: { + url: string; + params: Record; +}): Promise<{ requestVerificationToken: string; cookie: string }> => { + const response0 = await axios(url, { + method: 'GET', + params, + maxRedirects: 0, + }); + const regexp = new RegExp(` `${acc}${it};`, '') || null; + + if (!requestVerificationToken || !cookieString) throw new Error('getRequestVerificationToken failed'); + + return { + cookie: cookieString, + requestVerificationToken, + }; +}; diff --git a/src/utils/saddleback/getSessionCookie.ts b/src/utils/saddleback/getSessionCookie.ts new file mode 100644 index 000000000..831c022ef --- /dev/null +++ b/src/utils/saddleback/getSessionCookie.ts @@ -0,0 +1,50 @@ +import axios, { AxiosError } from 'axios'; +import FormData from 'form-data'; + +export const getSessionCookie = async ({ + username, + password, + requestVerificationToken, + url, + params, + cookie, +}: { + username: string; + password: string; + requestVerificationToken: string; + url: string; + params: Record; + cookie: string; +}): Promise<{ cookie: string }> => { + let cookieString = ''; + + try { + const form = new FormData(); + form.append('Username', username); + form.append('Password', password); + form.append('__RequestVerificationToken', requestVerificationToken); + + const response = await axios(`${url}`, { + method: 'POST', + data: form, + params, + headers: { + Cookie: cookie, + 'Content-Type': 'application/x-www-form-urlencoded', + }, + maxRedirects: 0, + }); + } catch (e) { + const error = e as AxiosError; + if (error.response && error.response.status === 302) { + const cookies = error.response?.headers['set-cookie'] || []; + cookieString = cookies.reduce((acc, it) => `${acc}${it};`, '') || ''; + } else { + throw new Error('Wrong response getSessionCookie'); + } + } finally { + if (cookieString.length === 0) throw new Error('Wrong cookies getSessionCookie'); + + return { cookie: cookieString }; + } +}; diff --git a/src/utils/saddleback/getSwaggerJson.ts b/src/utils/saddleback/getSwaggerJson.ts new file mode 100644 index 000000000..efef5b153 --- /dev/null +++ b/src/utils/saddleback/getSwaggerJson.ts @@ -0,0 +1,12 @@ +import axios, { AxiosResponse } from 'axios'; + +export const getSwaggerJson = async ({ url, apiToken }: { url: string; apiToken: string }): Promise => { + const response = await axios(url, { + method: 'GET', + headers: { + Cookie: `apiKey=${apiToken}`, + }, + maxRedirects: 0, + }); + return response; +}; From 789d3a37da5c898e6a872b16ecbc1c330d604623 Mon Sep 17 00:00:00 2001 From: Roman P Date: Thu, 23 Jun 2022 19:41:05 +0500 Subject: [PATCH 18/52] wip --- bin/saddleback.cli.js | 17 +++ src/generateSaddlebackSpec.ts | 131 ++++++++++-------- src/utils/saddleback/getApiToken.ts | 6 +- .../saddleback/getRequestVerificationToken.ts | 16 ++- src/utils/saddleback/getStateNonce.ts | 25 ++++ src/utils/saddleback/getSwaggerJson.ts | 13 +- src/utils/saddleback/getSwaggerJsonByEnv.ts | 75 ++++++++++ src/utils/saddleback/getUrlByServiceEnv.ts | 25 ++++ test/index.js | 45 +++--- types/index.d.ts | 9 ++ 10 files changed, 274 insertions(+), 88 deletions(-) create mode 100644 src/utils/saddleback/getStateNonce.ts create mode 100644 src/utils/saddleback/getSwaggerJsonByEnv.ts create mode 100644 src/utils/saddleback/getUrlByServiceEnv.ts diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index e0bc7afba..a29183241 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -13,6 +13,16 @@ const params = program .option('-i, --input ', 'OpenAPI specification, can be a path, url or string content (required)') .option('-o, --output ', 'Output directory (required)') .option('-c, --config ', 'Path to the config file') + .option('-l, --login ', 'Login') + .option('-p, --password ', 'Password') + .option('-e, --environment ', 'Environment') + .option('-uc, --useAutoCore ', 'Use fetching Core service swagger.json via login and password') + .option('-ue, --useAutoEvent ', 'Use fetching Event service swagger.json via login and password') + .option( + '-un, --useAutoNotification ', + 'Use fetching Notification service swagger.json via login and password' + ) + .option('-uw, --useAutoWorkflows ', 'Use fetching Workflows service swagger.json via login and password') .parse(process.argv) .opts(); @@ -39,6 +49,13 @@ if (OpenAPI) { ...config, input: params.input, output: params.output, + username: params.login, + password: params.password, + useEnvironment: params.environment, + useAutoCoreService: params.useAutoCore, + useAutoEventService: params.useAutoEvent, + useAutoNotificationService: params.useAutoNotification, + useAutoWorkflowsService: params.useAutoWorkflows, }) .then(() => { process.exit(0); diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index 3eb581816..cb738bf7b 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -6,10 +6,8 @@ import { isString } from './utils/isString'; import { mapSwaggerRef } from './utils/mapSwaggerRef'; import { removeLodashPrefix } from './utils/removeLodashPrefix'; import { removeLodashPrefixFromRef } from './utils/removeLodashPrefixFromRef'; -import { getApiToken } from './utils/saddleback/getApiToken'; -import { getRequestVerificationToken } from './utils/saddleback/getRequestVerificationToken'; -import { getSessionCookie } from './utils/saddleback/getSessionCookie'; -import { getSwaggerJson } from './utils/saddleback/getSwaggerJson'; +import { getSwaggerJsonByEnv } from './utils/saddleback/getSwaggerJsonByEnv'; +import { Environment, Service } from './utils/saddleback/getUrlByServiceEnv'; import { Dictionary } from './utils/types'; type Config = Options & { @@ -17,73 +15,84 @@ type Config = Options & { additionalModelFileExtension?: boolean; additionalServiceFileExtension?: boolean; removeLodashPrefixes?: boolean; + username: string; + password: string; + useAutoCoreService?: boolean; + useAutoEventService?: boolean; + useAutoNotificationService?: boolean; + useAutoWorkflowsService?: boolean; + useEnvironment?: Environment; }; export const generateSaddlebackSpec = async (config: Config) => { - const username = 'roman.tech48@gmail.com'; - const password = "&cY8at<'S5PfJa#k"; - const swaggerUrl = `https://hc-workflowsservice-dev.azurewebsites.net/api-doc/v1/swagger.json`; + const saddlebackGenerator = async (input: string | Record, output: string) => { + const openApi: OpenApi = isString(input) ? await getOpenApiSpec(input) : input; - const loginUrl = `https://identity-dev.saddleback.com/account/login`; - const tokenUrl = `https://identity-dev.saddleback.com/connect/authorize/callback`; + if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { + const newSchemas: Dictionary = {}; - // params - const client_id = 'cm'; - const response_type = 'token'; - const scope = 'cm-api.default'; - const redirect_uri = (swaggerUrl.match(new RegExp(`.*\.net`)) || [])[0] + '/api-doc-auth-callback'; - const response_mode = 'form_post'; - const state = 'e57a56201103b8bda3981515294649254a764612d871ecbe7a31efb8e3e66c8b'; - const nonce = '78fd83bf2d178a5c5de18f9f7da3269b34f7daa07d4accc28cd0bdb87f9deee8'; - const returnUrl = `/connect/authorize/callback?client_id=${client_id}&response_type=${response_type}&scope=${scope}&redirect_uri=${redirect_uri}&state=${state}&nonce=${nonce}&response_mode=${response_mode}`; - - const { requestVerificationToken, cookie } = await getRequestVerificationToken({ - url: loginUrl, - params: { returnUrl }, - }); - - const { cookie: sessionCookie } = await getSessionCookie({ - url: loginUrl, - username, - password, - cookie, - requestVerificationToken, - params: { returnUrl }, - }); - - const { apiToken } = await getApiToken({ - url: tokenUrl, - cookie: sessionCookie, - params: { - client_id, - response_type, - scope, - redirect_uri, - state, - nonce, - response_mode, - }, - }); - - const { data: json } = await getSwaggerJson({ url: swaggerUrl, apiToken: apiToken }); - - const openApi: OpenApi = isString(config.input) ? await getOpenApiSpec(config.input) : config.input; - - if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { - const newSchemas: Dictionary = {}; - - for (const schemaKey in openApi.components.schemas) { - if (openApi.components.schemas.hasOwnProperty(schemaKey)) { - newSchemas[removeLodashPrefix(schemaKey)] = openApi.components.schemas[schemaKey]; + for (const schemaKey in openApi.components.schemas) { + if (openApi.components.schemas.hasOwnProperty(schemaKey)) { + newSchemas[removeLodashPrefix(schemaKey)] = openApi.components.schemas[schemaKey]; + } } + + openApi.components.schemas = newSchemas; } - openApi.components.schemas = newSchemas; - } + mapSwaggerRef(openApi, removeLodashPrefixFromRef); - mapSwaggerRef(openApi, removeLodashPrefixFromRef); + await generate({ ...config, input: openApi }); + }; - await generate({ ...config, input: openApi }); + if (!config.useEnvironment) { + await saddlebackGenerator(config.input, config.output); + return; + } + if (config.useAutoCoreService) { + await saddlebackGenerator( + await getSwaggerJsonByEnv({ + env: config.useEnvironment, + service: Service.Core, + username: config.username, + password: config.password, + }), + config.output + '/core' + ); + } + if (config.useAutoEventService) { + await saddlebackGenerator( + await getSwaggerJsonByEnv({ + env: config.useEnvironment, + service: Service.Event, + username: config.username, + password: config.password, + }), + config.output + '/event' + ); + } + if (config.useAutoNotificationService) { + await saddlebackGenerator( + await getSwaggerJsonByEnv({ + env: config.useEnvironment, + service: Service.Notifications, + username: config.username, + password: config.password, + }), + config.output + '/notifications' + ); + } + if (config.useAutoWorkflowsService) { + await saddlebackGenerator( + await getSwaggerJsonByEnv({ + env: config.useEnvironment, + service: Service.Workflows, + username: config.username, + password: config.password, + }), + config.output + '/workflows' + ); + } }; export default generateSaddlebackSpec; diff --git a/src/utils/saddleback/getApiToken.ts b/src/utils/saddleback/getApiToken.ts index 079596fd7..53f039dd0 100644 --- a/src/utils/saddleback/getApiToken.ts +++ b/src/utils/saddleback/getApiToken.ts @@ -8,7 +8,7 @@ export const getApiToken = async ({ url: string; cookie: string; params: Record; -}): Promise<{ apiToken: string }> => { +}): Promise<{ apiToken: string | null }> => { const response = await axios(url, { method: 'GET', headers: { @@ -16,7 +16,9 @@ export const getApiToken = async ({ }, params, maxRedirects: 0, - }); + }).catch(e => console.log(e)); + + if (!response) return { apiToken: null }; const regexp = new RegExp(`type='hidden' name='access_token' value='(.*)'`); const apiToken = response.data.match(regexp)?.[1] || null; diff --git a/src/utils/saddleback/getRequestVerificationToken.ts b/src/utils/saddleback/getRequestVerificationToken.ts index 575972132..2c9f79b42 100644 --- a/src/utils/saddleback/getRequestVerificationToken.ts +++ b/src/utils/saddleback/getRequestVerificationToken.ts @@ -6,16 +6,22 @@ export const getRequestVerificationToken = async ({ }: { url: string; params: Record; -}): Promise<{ requestVerificationToken: string; cookie: string }> => { - const response0 = await axios(url, { +}): Promise<{ + requestVerificationToken: string | null; + cookie: string | null; +}> => { + const response = await axios(url, { method: 'GET', params, maxRedirects: 0, - }); + }).catch(e => console.log(e)); + + if (!response) return { requestVerificationToken: null, cookie: null }; + const regexp = new RegExp(` `${acc}${it};`, '') || null; if (!requestVerificationToken || !cookieString) throw new Error('getRequestVerificationToken failed'); diff --git a/src/utils/saddleback/getStateNonce.ts b/src/utils/saddleback/getStateNonce.ts new file mode 100644 index 000000000..e06207a04 --- /dev/null +++ b/src/utils/saddleback/getStateNonce.ts @@ -0,0 +1,25 @@ +import axios, { AxiosError } from 'axios'; + +export const getStateNonce = async ({ + url, +}: { + url: string; +}): Promise<{ state: string | null; nonce: string | null }> => { + let [state, nonce]: [string | null, string | null] = [null, null]; + + const response = await axios(`https://${url.match(new RegExp('(.*)/api-doc/'))?.[0]}`, { + method: 'GET', + maxRedirects: 0, + }).catch(e => { + const response = e as AxiosError; + + if (response.response && response.response.status === 302) { + const location = response.response.headers?.Location || ''; + + const newRegexp = new RegExp(`state=(.*)&nonce=(.*)[&$]`); + [state, nonce] = location.match(newRegexp)?.slice(1) || [null, null]; + } + }); + + return { state, nonce }; +}; diff --git a/src/utils/saddleback/getSwaggerJson.ts b/src/utils/saddleback/getSwaggerJson.ts index efef5b153..f9c27fba0 100644 --- a/src/utils/saddleback/getSwaggerJson.ts +++ b/src/utils/saddleback/getSwaggerJson.ts @@ -1,12 +1,19 @@ import axios, { AxiosResponse } from 'axios'; -export const getSwaggerJson = async ({ url, apiToken }: { url: string; apiToken: string }): Promise => { +export const getSwaggerJson = async ({ + url, + apiToken, +}: { + url: string; + apiToken: string; +}): Promise => { const response = await axios(url, { method: 'GET', headers: { Cookie: `apiKey=${apiToken}`, }, maxRedirects: 0, - }); - return response; + }).catch(e => console.log(e)); + + return response ?? null; }; diff --git a/src/utils/saddleback/getSwaggerJsonByEnv.ts b/src/utils/saddleback/getSwaggerJsonByEnv.ts new file mode 100644 index 000000000..6c64542ed --- /dev/null +++ b/src/utils/saddleback/getSwaggerJsonByEnv.ts @@ -0,0 +1,75 @@ +import { getApiToken } from './getApiToken'; +import { getRequestVerificationToken } from './getRequestVerificationToken'; +import { getSessionCookie } from './getSessionCookie'; +import { getStateNonce } from './getStateNonce'; +import { getSwaggerJson } from './getSwaggerJson'; +import { Environment, getUrlByServiceEnv, Service } from './getUrlByServiceEnv'; + +export const getSwaggerJsonByEnv = async ({ + env, + service, + username, + password, +}: { + env: Environment; + service: Service; + username: string; + password: string; +}): Promise => { + const swaggerUrl = getUrlByServiceEnv({ env, service }); + const loginUrl = `https://identity-dev.saddleback.com/account/login`; + const tokenUrl = `https://identity-dev.saddleback.com/connect/authorize/callback`; + + // params + const client_id = 'cm'; + const response_type = 'token'; + const scope = 'cm-api.default'; + const redirect_uri = (swaggerUrl.match(new RegExp(`.*\.net`)) || [])[0] + '/api-doc-auth-callback'; + const response_mode = 'form_post'; + + const { state, nonce } = await getStateNonce({ url: swaggerUrl }); + + if (!state || !nonce) return null; + + // const state = 'e57a56201103b8bda3981515294649254a764612d871ecbe7a31efb8e3e66c8b'; + // const nonce = '78fd83bf2d178a5c5de18f9f7da3269b34f7daa07d4accc28cd0bdb87f9deee8'; + const returnUrl = `/connect/authorize/callback?client_id=${client_id}&response_type=${response_type}&scope=${scope}&redirect_uri=${redirect_uri}&state=${state}&nonce=${nonce}&response_mode=${response_mode}`; + + const { requestVerificationToken, cookie } = await getRequestVerificationToken({ + url: loginUrl, + params: { returnUrl }, + }); + + if (!requestVerificationToken || !cookie) return null; + + const { cookie: sessionCookie } = await getSessionCookie({ + url: loginUrl, + username, + password, + cookie, + requestVerificationToken, + params: { returnUrl }, + }); + + const { apiToken } = await getApiToken({ + url: tokenUrl, + cookie: sessionCookie, + params: { + client_id, + response_type, + scope, + redirect_uri, + state, + nonce, + response_mode, + }, + }); + + if (!apiToken) return null; + + const response = await getSwaggerJson({ url: swaggerUrl, apiToken: apiToken }); + + if (!response) return null; + + return response.data; +}; diff --git a/src/utils/saddleback/getUrlByServiceEnv.ts b/src/utils/saddleback/getUrlByServiceEnv.ts new file mode 100644 index 000000000..f3b9f13e1 --- /dev/null +++ b/src/utils/saddleback/getUrlByServiceEnv.ts @@ -0,0 +1,25 @@ +export enum Service { + Workflows = 'workflows', + Event = 'event', + Notifications = 'notifications', + Core = 'core', +} + +export enum Environment { + Dev = 'dev', + Stage = 'stage', + Stage2 = 'stage2', +} + +export const getUrlByServiceEnv = ({ env, service }: { service: Service; env: Environment }): string => { + switch (service) { + case Service.Core: + return `hc-${env}.saddleback.com/api-doc/all/swagger.json`; + case Service.Notifications: + return `hc-notificationservice-${env}.azurewebsites.net/api-doc/v1/swagger.json`; + case Service.Workflows: + return `https://hc-workflowsservice-${env}.azurewebsites.net/api-doc/v1/swagger.json`; + case Service.Event: + return `hc-eventservice-${env}.azurewebsites.net/api-doc/all/swagger.json`; + } +}; diff --git a/test/index.js b/test/index.js index 2c3cb8814..254c537ba 100644 --- a/test/index.js +++ b/test/index.js @@ -73,27 +73,38 @@ const main = async () => { additionalModelFileExtension: true, additionalServiceFileExtension: true, removeLodashPrefixes: true, + username: 'roman.tech48@gmail.com', + password: `&cY8at<'S5PfJa#k`, + useEnvironment: 'dev', + useAutoCoreService: true, + useAutoEventService: true, + useAutoNotificationService: true, + useAutoWorkflowsService: true, }; await OpenAPI.generateSaddlebackSpec({ - input: './test/spec/saddlebackCoreApi.json', - output: './test/new/saddleback/core', - ...config, - }); - await OpenAPI.generateSaddlebackSpec({ - input: './test/spec/saddlebackEventApi.json', - output: './test/new/saddleback/event', - ...config, - }); - await OpenAPI.generateSaddlebackSpec({ - input: './test/spec/saddlebackWebAppApi.json', - output: './test/new/saddleback/web', - ...config, - }); - await OpenAPI.generateSaddlebackSpec({ - input: './test/spec/saddlebackWorkflowApi.json', - output: './test/new/saddleback/workflow', + output: './test/auto', ...config, }); + // await OpenAPI.generateSaddlebackSpec({ + // input: './test/spec/saddlebackCoreApi.json', + // output: './test/new/saddleback/core', + // ...config, + // }); + // await OpenAPI.generateSaddlebackSpec({ + // input: './test/spec/saddlebackEventApi.json', + // output: './test/new/saddleback/event', + // ...config, + // }); + // await OpenAPI.generateSaddlebackSpec({ + // input: './test/spec/saddlebackWebAppApi.json', + // output: './test/new/saddleback/web', + // ...config, + // }); + // await OpenAPI.generateSaddlebackSpec({ + // input: './test/spec/saddlebackWorkflowApi.json', + // output: './test/new/saddleback/workflow', + // ...config, + // }); // await generateRealWorldSpecs(); }; diff --git a/types/index.d.ts b/types/index.d.ts index 91ae230f7..1036a3ebf 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -1,3 +1,5 @@ +import {Environment} from "../src/utils/saddleback/getUrlByServiceEnv"; + export declare enum HttpClient { FETCH = 'fetch', XHR = 'xhr', @@ -34,6 +36,13 @@ export type CustomConfig = Options & { additionalModelFileExtension?: boolean; additionalServiceFileExtension?: boolean; removeLodashPrefixes?: boolean; + username: string; + password: string; + useAutoCoreService?: boolean; + useAutoEventService?: boolean; + useAutoNotificationService?: boolean; + useAutoWorkflowsService?: boolean; + useEnvironment?: Environment; }; export declare function generate(options: Options): Promise; From a5e1dfd382b7df0d87e2569d1a7b38365b10aaf9 Mon Sep 17 00:00:00 2001 From: Roman P Date: Thu, 23 Jun 2022 19:41:05 +0500 Subject: [PATCH 19/52] wip --- bin/saddleback.cli.js | 17 + package-lock.json | 17332 +--------------- src/generateSaddlebackSpec.ts | 131 +- src/utils/saddleback/getApiToken.ts | 6 +- .../saddleback/getRequestVerificationToken.ts | 16 +- src/utils/saddleback/getStateNonce.ts | 25 + src/utils/saddleback/getSwaggerJson.ts | 13 +- src/utils/saddleback/getSwaggerJsonByEnv.ts | 75 + src/utils/saddleback/getUrlByServiceEnv.ts | 25 + test/index.js | 45 +- types/index.d.ts | 9 + 11 files changed, 327 insertions(+), 17367 deletions(-) create mode 100644 src/utils/saddleback/getStateNonce.ts create mode 100644 src/utils/saddleback/getSwaggerJsonByEnv.ts create mode 100644 src/utils/saddleback/getUrlByServiceEnv.ts diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index e0bc7afba..a29183241 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -13,6 +13,16 @@ const params = program .option('-i, --input ', 'OpenAPI specification, can be a path, url or string content (required)') .option('-o, --output ', 'Output directory (required)') .option('-c, --config ', 'Path to the config file') + .option('-l, --login ', 'Login') + .option('-p, --password ', 'Password') + .option('-e, --environment ', 'Environment') + .option('-uc, --useAutoCore ', 'Use fetching Core service swagger.json via login and password') + .option('-ue, --useAutoEvent ', 'Use fetching Event service swagger.json via login and password') + .option( + '-un, --useAutoNotification ', + 'Use fetching Notification service swagger.json via login and password' + ) + .option('-uw, --useAutoWorkflows ', 'Use fetching Workflows service swagger.json via login and password') .parse(process.argv) .opts(); @@ -39,6 +49,13 @@ if (OpenAPI) { ...config, input: params.input, output: params.output, + username: params.login, + password: params.password, + useEnvironment: params.environment, + useAutoCoreService: params.useAutoCore, + useAutoEventService: params.useAutoEvent, + useAutoNotificationService: params.useAutoNotification, + useAutoWorkflowsService: params.useAutoWorkflows, }) .then(() => { process.exit(0); diff --git a/package-lock.json b/package-lock.json index 2fb29c3a1..ab5f8d06c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17210 +1,8 @@ { "name": "openapi-typescript-codegen", "version": "0.23.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "openapi-typescript-codegen", - "version": "0.23.0", - "license": "MIT", - "dependencies": { - "camelcase": "^6.3.0", - "commander": "^9.3.0", - "fs-extra": "^10.1.0", - "handlebars": "^4.7.7", - "json-schema-ref-parser": "^9.0.9" - }, - "bin": { - "openapi": "bin/index.js" - }, - "devDependencies": { - "@angular-devkit/build-angular": "13.3.7", - "@angular/animations": "13.3.10", - "@angular/cli": "13.3.7", - "@angular/common": "13.3.10", - "@angular/compiler": "13.3.10", - "@angular/compiler-cli": "13.3.10", - "@angular/core": "13.3.10", - "@angular/forms": "13.3.10", - "@angular/platform-browser": "13.3.10", - "@angular/platform-browser-dynamic": "13.3.10", - "@angular/router": "13.3.10", - "@babel/cli": "7.17.10", - "@babel/core": "7.18.2", - "@babel/preset-env": "7.18.2", - "@babel/preset-typescript": "7.17.12", - "@rollup/plugin-commonjs": "22.0.0", - "@rollup/plugin-node-resolve": "13.3.0", - "@rollup/plugin-typescript": "8.3.2", - "@types/cross-spawn": "6.0.2", - "@types/express": "4.17.13", - "@types/fs-extra": "^9.0.13", - "@types/glob": "7.2.0", - "@types/jest": "27.5.1", - "@types/node": "17.0.38", - "@types/node-fetch": "2.6.1", - "@types/qs": "6.9.7", - "@typescript-eslint/eslint-plugin": "5.27.0", - "@typescript-eslint/parser": "5.27.0", - "abort-controller": "3.0.0", - "axios": "0.27.2", - "codecov": "3.8.3", - "cross-spawn": "7.0.3", - "eslint": "8.16.0", - "eslint-config-prettier": "8.5.0", - "eslint-plugin-prettier": "4.0.0", - "eslint-plugin-simple-import-sort": "7.0.0", - "express": "4.18.1", - "form-data": "4.0.0", - "glob": "8.0.3", - "jest": "28.1.0", - "jest-cli": "28.1.0", - "node-fetch": "2.6.7", - "prettier": "2.6.2", - "puppeteer": "14.1.2", - "qs": "6.10.3", - "rimraf": "3.0.2", - "rollup": "2.75.4", - "rollup-plugin-terser": "7.0.2", - "rxjs": "7.5.5", - "ts-node": "10.8.0", - "tslib": "2.4.0", - "typescript": "4.6.4", - "zone.js": "0.11.5" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@angular-devkit/architect": { - "version": "0.1303.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.7.tgz", - "integrity": "sha512-xr35v7AuJygRdiaFhgoBSLN2ZMUri8x8Qx9jkmCkD3WLKz33TSFyAyqwdNNmOO9riK8ePXMH/QcSv0wY12pFBw==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "13.3.7", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/build-angular": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.7.tgz", - "integrity": "sha512-XUmiq/3zpuna+r0UOqNSvA9kEcPwsLblEmNLUYyZXL9v/aGWUHOSH0nhGVrNRrSud4ryklEnxfkxkxlZlT4mjQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1303.7", - "@angular-devkit/build-webpack": "0.1303.7", - "@angular-devkit/core": "13.3.7", - "@babel/core": "7.16.12", - "@babel/generator": "7.16.8", - "@babel/helper-annotate-as-pure": "7.16.7", - "@babel/plugin-proposal-async-generator-functions": "7.16.8", - "@babel/plugin-transform-async-to-generator": "7.16.8", - "@babel/plugin-transform-runtime": "7.16.10", - "@babel/preset-env": "7.16.11", - "@babel/runtime": "7.16.7", - "@babel/template": "7.16.7", - "@discoveryjs/json-ext": "0.5.6", - "@ngtools/webpack": "13.3.7", - "ansi-colors": "4.1.1", - "babel-loader": "8.2.5", - "babel-plugin-istanbul": "6.1.1", - "browserslist": "^4.9.1", - "cacache": "15.3.0", - "circular-dependency-plugin": "5.2.2", - "copy-webpack-plugin": "10.2.1", - "core-js": "3.20.3", - "critters": "0.0.16", - "css-loader": "6.5.1", - "esbuild-wasm": "0.14.22", - "glob": "7.2.0", - "https-proxy-agent": "5.0.0", - "inquirer": "8.2.0", - "jsonc-parser": "3.0.0", - "karma-source-map-support": "1.4.0", - "less": "4.1.2", - "less-loader": "10.2.0", - "license-webpack-plugin": "4.0.2", - "loader-utils": "3.2.0", - "mini-css-extract-plugin": "2.5.3", - "minimatch": "3.0.5", - "open": "8.4.0", - "ora": "5.4.1", - "parse5-html-rewriting-stream": "6.0.1", - "piscina": "3.2.0", - "postcss": "8.4.5", - "postcss-import": "14.0.2", - "postcss-loader": "6.2.1", - "postcss-preset-env": "7.2.3", - "regenerator-runtime": "0.13.9", - "resolve-url-loader": "5.0.0", - "rxjs": "6.6.7", - "sass": "1.49.9", - "sass-loader": "12.4.0", - "semver": "7.3.5", - "source-map-loader": "3.0.1", - "source-map-support": "0.5.21", - "stylus": "0.56.0", - "stylus-loader": "6.2.0", - "terser": "5.11.0", - "text-table": "0.2.0", - "tree-kill": "1.2.2", - "tslib": "2.3.1", - "webpack": "5.70.0", - "webpack-dev-middleware": "5.3.0", - "webpack-dev-server": "4.7.3", - "webpack-merge": "5.8.0", - "webpack-subresource-integrity": "5.1.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "optionalDependencies": { - "esbuild": "0.14.22" - }, - "peerDependencies": { - "@angular/compiler-cli": "^13.0.0 || ^13.3.0-rc.0", - "@angular/localize": "^13.0.0 || ^13.3.0-rc.0", - "@angular/service-worker": "^13.0.0 || ^13.3.0-rc.0", - "karma": "^6.3.0", - "ng-packagr": "^13.0.0", - "protractor": "^7.0.0", - "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=4.4.3 <4.7" - }, - "peerDependenciesMeta": { - "@angular/localize": { - "optional": true - }, - "@angular/service-worker": { - "optional": true - }, - "karma": { - "optional": true - }, - "ng-packagr": { - "optional": true - }, - "protractor": { - "optional": true - }, - "tailwindcss": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/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/@angular-devkit/build-angular/node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/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/@angular-devkit/build-angular/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/build-angular/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1303.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.7.tgz", - "integrity": "sha512-5vF399cPdwuCbzbxS4yNGgChdAzEM0/By21P0uiqBcIe/Zxuz3IUPapjvcyhkAo5OTu+d7smY9eusLHqoq1WFQ==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1303.7", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "webpack": "^5.30.0", - "webpack-dev-server": "^4.0.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/core": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.7.tgz", - "integrity": "sha512-Ucy4bJmlgCoBenuVeGMdtW9dE8+cD+guWCgqexsFIG21KJ/l0ShZEZ/dGC1XibzaIs1HbKiTr/T1MOjInCV1rA==", - "dev": true, - "dependencies": { - "ajv": "8.9.0", - "ajv-formats": "2.1.1", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.6.7", - "source-map": "0.7.3" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/schematics": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.7.tgz", - "integrity": "sha512-6TKpFMwiiXmPhiVdbkSJrkBXj8n7SVVhsHl2GodDLVTb8OT3fxYIB9EU8Il07AMfDcjpydOcJduCFPOsQYd7BA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "13.3.7", - "jsonc-parser": "3.0.0", - "magic-string": "0.25.7", - "ora": "5.4.1", - "rxjs": "6.6.7" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular/animations": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.3.10.tgz", - "integrity": "sha512-V/0h3xepWPBRjWroFXYrNIE3iZPREjv0hiB3gskF/2KLlx5jvpUWlaBx0rEYRa8XXIPJyAaKBGwWSBnT/Z88TQ==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/core": "13.3.10" - } - }, - "node_modules/@angular/cli": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.7.tgz", - "integrity": "sha512-XIp0w0YOwhHp4Je3npHAs0W4rjHvFnG2w/lDO2M/UNp5634S4PRMFmVVMt6DQBj1cbffYVKFqffqesyCqNuvAQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@angular-devkit/architect": "0.1303.7", - "@angular-devkit/core": "13.3.7", - "@angular-devkit/schematics": "13.3.7", - "@schematics/angular": "13.3.7", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "4.3.3", - "ini": "2.0.0", - "inquirer": "8.2.0", - "jsonc-parser": "3.0.0", - "npm-package-arg": "8.1.5", - "npm-pick-manifest": "6.1.1", - "open": "8.4.0", - "ora": "5.4.1", - "pacote": "12.0.3", - "resolve": "1.22.0", - "semver": "7.3.5", - "symbol-observable": "4.0.0", - "uuid": "8.3.2" - }, - "bin": { - "ng": "bin/ng.js" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/common": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.10.tgz", - "integrity": "sha512-KWw91QzmCDZ6uq1Z58v7vQQ57Ux7A2UkPdIBOyvpOgtQPTvlvKsePkUVCC+dum+W9mOy4kq2falO5T7Gi7SJgw==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/core": "13.3.10", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/compiler": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.3.10.tgz", - "integrity": "sha512-DEtdso89Q9lAGkSVpSf2GrMtGVTnCnenCwLhubYaeSaj4iA/CAnUfNlaYBf9E92ltuPd85Mg9bIJKaxYCRH8RQ==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - } - }, - "node_modules/@angular/compiler-cli": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.3.10.tgz", - "integrity": "sha512-cGFQyUOxOLVnehczdP4L7KXbKQTe/aQgbXmacQYgqcP/AnpJs7QfZbw1/k1wJtXrhzbGBh3JSWnpme74bnF3dQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.17.2", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.11.0", - "magic-string": "^0.26.0", - "reflect-metadata": "^0.1.2", - "semver": "^7.0.0", - "sourcemap-codec": "^1.4.8", - "tslib": "^2.3.0", - "yargs": "^17.2.1" - }, - "bin": { - "ng-xi18n": "bundles/src/bin/ng_xi18n.js", - "ngc": "bundles/src/bin/ngc.js", - "ngcc": "bundles/ngcc/main-ngcc.js" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/compiler": "13.3.10", - "typescript": ">=4.4.2 <4.7" - } - }, - "node_modules/@angular/compiler-cli/node_modules/magic-string": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", - "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@angular/core": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.10.tgz", - "integrity": "sha512-7jH1a5wZdE6Ki2Dow7s6v1/5SfUcXsjAu3n523QSDlM078QG0p95npcqPseO9mNftG9MfRqBE7sl1Nb+ZK7eBg==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4" - } - }, - "node_modules/@angular/forms": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.3.10.tgz", - "integrity": "sha512-2cREi8nvCdspYHk6KJ5xjIgq8Dgh/kfwPIVjpLQBZFNC03Q6GvOLVoVm8ye6ToOpQFjvjpjndqU93JXSLMANgA==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/common": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@angular/platform-browser": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.10.tgz", - "integrity": "sha512-zi0FrA8zZRiHLBfKlfIxikG06wMF2KcSp6oqrIblrc1VrHgPRVRABz8vryH84lasDssjYdIS9AvbQnCCdgCzJA==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/animations": "13.3.10", - "@angular/common": "13.3.10", - "@angular/core": "13.3.10" - }, - "peerDependenciesMeta": { - "@angular/animations": { - "optional": true - } - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.10.tgz", - "integrity": "sha512-hygsEjTaS+VDUrBZZiRJFo5J7AHCS/EcAc1IWvb69EnVqA9RwqM4hWbuy3y/cmLEeHLLmRldIlS6xRPt8fTNQg==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/common": "13.3.10", - "@angular/compiler": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10" - } - }, - "node_modules/@angular/router": { - "version": "13.3.10", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.10.tgz", - "integrity": "sha512-neGaeiHravXlCbNbyGJecwQyu/91Pj/E9/ohVFzBBE4V9BrNx9v7Ntc4ugqgpnrV2wtonPP7TQDqXxrPk4QVfg==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0" - }, - "peerDependencies": { - "@angular/common": "13.3.10", - "@angular/core": "13.3.10", - "@angular/platform-browser": "13.3.10", - "rxjs": "^6.5.3 || ^7.4.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser/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/@apidevtools/json-schema-ref-parser/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/@assemblyscript/loader": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", - "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", - "dev": true - }, - "node_modules/@babel/cli": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.17.10.tgz", - "integrity": "sha512-OygVO1M2J4yPMNOW9pb+I6kFGpQK77HmG44Oz3hg8xQIl5L/2zq+ZohwAdSaqYgVwM0SfmPHZHphH4wR8qzVYw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.8", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, - "engines": { - "node": ">=6.9.0" - }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/cli/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@babel/cli/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/@babel/cli/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/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", - "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/core/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/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", - "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/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/@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", - "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/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/@babel/helper-environment-visitor": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", - "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", - "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", - "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", - "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", - "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", - "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", - "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", - "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", - "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", - "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", - "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", - "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", - "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", - "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", - "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", - "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", - "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "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-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", - "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "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-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-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "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.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", - "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", - "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", - "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", - "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-replace-supers": "^7.18.2", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", - "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", - "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", - "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", - "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", - "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", - "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", - "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.18.2", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz", - "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", - "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", - "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", - "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", - "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", - "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "regenerator-transform": "^0.15.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", - "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", - "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/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/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", - "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", - "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", - "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", - "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-typescript": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", - "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-async-generator-functions": "^7.17.12", - "@babel/plugin-proposal-class-properties": "^7.17.12", - "@babel/plugin-proposal-class-static-block": "^7.18.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.17.12", - "@babel/plugin-proposal-json-strings": "^7.17.12", - "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.18.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-private-methods": "^7.17.12", - "@babel/plugin-proposal-private-property-in-object": "^7.17.12", - "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.17.12", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.17.12", - "@babel/plugin-transform-async-to-generator": "^7.17.12", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.17.12", - "@babel/plugin-transform-classes": "^7.17.12", - "@babel/plugin-transform-computed-properties": "^7.17.12", - "@babel/plugin-transform-destructuring": "^7.18.0", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.17.12", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.18.1", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.17.12", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.18.0", - "@babel/plugin-transform-modules-commonjs": "^7.18.2", - "@babel/plugin-transform-modules-systemjs": "^7.18.0", - "@babel/plugin-transform-modules-umd": "^7.18.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", - "@babel/plugin-transform-new-target": "^7.17.12", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.17.12", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.18.0", - "@babel/plugin-transform-reserved-words": "^7.17.12", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.17.12", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.18.2", - "@babel/plugin-transform-typeof-symbol": "^7.17.12", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.2", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", - "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", - "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/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/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", - "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", - "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.18.0", - "@babel/types": "^7.18.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "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/@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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz", - "integrity": "sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.3", - "postcss-selector-parser": "^6.0.10" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "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" - } - }, - "node_modules/@eslint/eslintrc/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/@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.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "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/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/@eslint/eslintrc/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/@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/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "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", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/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/@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": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.0.tgz", - "integrity": "sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.0", - "jest-util": "^28.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/core": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.0.tgz", - "integrity": "sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.0", - "@jest/reporters": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.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": "^28.0.2", - "jest-config": "^28.1.0", - "jest-haste-map": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.0", - "jest-resolve-dependencies": "^28.1.0", - "jest-runner": "^28.1.0", - "jest-runtime": "^28.1.0", - "jest-snapshot": "^28.1.0", - "jest-util": "^28.1.0", - "jest-validate": "^28.1.0", - "jest-watcher": "^28.1.0", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core/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/@jest/core/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/@jest/core/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/@jest/core/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/@jest/environment": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.0.tgz", - "integrity": "sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "jest-mock": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.0.tgz", - "integrity": "sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA==", - "dev": true, - "dependencies": { - "expect": "^28.1.0", - "jest-snapshot": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.0.tgz", - "integrity": "sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.0.tgz", - "integrity": "sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "@sinonjs/fake-timers": "^9.1.1", - "@types/node": "*", - "jest-message-util": "^28.1.0", - "jest-mock": "^28.1.0", - "jest-util": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.0.tgz", - "integrity": "sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.0", - "@jest/expect": "^28.1.0", - "@jest/types": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.0.tgz", - "integrity": "sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.0", - "@jridgewell/trace-mapping": "^0.3.7", - "@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-util": "^28.1.0", - "jest-worker": "^28.1.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/schemas": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", - "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.23.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.0.2.tgz", - "integrity": "sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.7", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.0.tgz", - "integrity": "sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz", - "integrity": "sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-sequencer/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/@jest/transform": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.0.tgz", - "integrity": "sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.0", - "@jridgewell/trace-mapping": "^0.3.7", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.0", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/types": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", - "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "@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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" - }, - "node_modules/@ngtools/webpack": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", - "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^13.0.0", - "typescript": ">=4.4.3 <4.7", - "webpack": "^5.30.0" - } - }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": 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/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/git": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", - "dev": true, - "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "installed-package-contents": "index.js" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", - "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", - "dev": true - }, - "node_modules/@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", - "dev": true, - "dependencies": { - "infer-owner": "^1.0.4" - } - }, - "node_modules/@npmcli/run-script": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", - "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", - "dev": true, - "dependencies": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "node-gyp": "^8.2.0", - "read-package-json-fast": "^2.0.1" - } - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", - "integrity": "sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "commondir": "^1.0.1", - "estree-walker": "^2.0.1", - "glob": "^7.1.6", - "is-reference": "^1.2.1", - "magic-string": "^0.25.7", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "rollup": "^2.68.0" - } - }, - "node_modules/@rollup/plugin-commonjs/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/@rollup/plugin-commonjs/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^2.42.0" - } - }, - "node_modules/@rollup/plugin-typescript": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz", - "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==", - "dev": true, - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "resolve": "^1.17.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0", - "tslib": "*", - "typescript": ">=3.7.0" - } - }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/pluginutils/node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "node_modules/@schematics/angular": { - "version": "13.3.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.7.tgz", - "integrity": "sha512-OAny1e/yliku52xG7vfWs1hNYSgCNTPpMv9fS8zz9eF5/GrKv28WFSy20mUXqLZ91VsbGSs6X0mI6pdNnpVtJA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "13.3.7", - "@angular-devkit/schematics": "13.3.7", - "jsonc-parser": "3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.23.5", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", - "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@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.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cross-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.2.tgz", - "integrity": "sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.2.tgz", - "integrity": "sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "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": "27.5.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-fUy7YRpT+rHXto1YlL+J9rs0uLGyiqVt3ZOTQR+4ROc47yNl8WLdVLgUloBRhOxP1PZvguHl44T3H0wAWxahYQ==", - "dev": true, - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "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==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "17.0.38", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.38.tgz", - "integrity": "sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g==", - "dev": true - }, - "node_modules/@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dev": true, - "dependencies": { - "@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/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", - "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", - "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/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz", - "integrity": "sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.27.0", - "@typescript-eslint/type-utils": "5.27.0", - "@typescript-eslint/utils": "5.27.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.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/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/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.0.tgz", - "integrity": "sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.27.0", - "@typescript-eslint/types": "5.27.0", - "@typescript-eslint/typescript-estree": "5.27.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/parser/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/@typescript-eslint/scope-manager": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz", - "integrity": "sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.27.0", - "@typescript-eslint/visitor-keys": "5.27.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.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz", - "integrity": "sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "5.27.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/type-utils/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/@typescript-eslint/types": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.0.tgz", - "integrity": "sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==", - "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.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz", - "integrity": "sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.27.0", - "@typescript-eslint/visitor-keys": "5.27.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/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/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.0.tgz", - "integrity": "sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.27.0", - "@typescript-eslint/types": "5.27.0", - "@typescript-eslint/typescript-estree": "5.27.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "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/visitor-keys": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz", - "integrity": "sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.27.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/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "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/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "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==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/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==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/agentkeepalive/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "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": "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/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==", - "dev": true, - "engines": { - "node": ">=0.6.10" - } - }, - "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==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "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/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/babel-jest": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.0.tgz", - "integrity": "sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w==", - "dev": true, - "dependencies": { - "@jest/transform": "^28.1.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.0.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/babel-loader/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/babel-loader/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/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.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": "28.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz", - "integrity": "sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ==", - "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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/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/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.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": "28.0.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz", - "integrity": "sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^28.0.2", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "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/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dev": true, - "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.10.3", - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/bonjour/node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "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/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.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "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/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", - "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/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/cacache/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/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" - }, - "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": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001344", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", - "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "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/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/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "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/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", - "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", - "dev": true - }, - "node_modules/circular-dependency-plugin": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", - "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "webpack": ">=4.0.1" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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/codecov": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", - "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", - "deprecated": "https://about.codecov.io/blog/codecov-uploader-deprecation-plan/", - "dev": true, - "dependencies": { - "argv": "0.0.2", - "ignore-walk": "3.0.4", - "js-yaml": "3.14.1", - "teeny-request": "7.1.1", - "urlgrey": "1.0.0" - }, - "bin": { - "codecov": "bin/codecov" - }, - "engines": { - "node": ">=4.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": "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/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/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "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": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/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/compression/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/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/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "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==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/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==", - "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/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "dependencies": { - "is-what": "^3.14.1" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", - "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.7", - "glob-parent": "^6.0.1", - "globby": "^12.0.2", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 12.20.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/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/copy-webpack-plugin/node_modules/globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", - "dev": true, - "dependencies": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", - "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.22.7", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.7.tgz", - "integrity": "sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA==", - "dev": true, - "dependencies": { - "browserslist": "^4.20.3", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/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/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true - }, - "node_modules/critters": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", - "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "css-select": "^4.2.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "postcss": "^8.3.7", - "pretty-bytes": "^5.3.0" - } - }, - "node_modules/critters/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/critters/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/critters/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/critters/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/critters/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/critters/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/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "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/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", - "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.2.15", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true, - "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssdb": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", - "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==", - "dev": true - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "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/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/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/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/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "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/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/devtools-protocol": { - "version": "0.0.982423", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.982423.tgz", - "integrity": "sha512-FnVW2nDbjGNw1uD/JRC+9U5768W7e1TfUwqbDTcSsAu1jXFjITSX8w3rkW5FEpHRMPPGpvNSmO1pOpqByiWscA==", - "dev": true - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dev": true, - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", - "dev": true, - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "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/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=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==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.142", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.142.tgz", - "integrity": "sha512-ea8Q1YX0JRp4GylOmX4gFHIizi0j9GfRW4EkaHnkZp0agRCBB4ZGeCv17IEzIvBkiYVwfoKVhKZJbTfqCRdQdg==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "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/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "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==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", - "integrity": "sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "esbuild-android-arm64": "0.14.22", - "esbuild-darwin-64": "0.14.22", - "esbuild-darwin-arm64": "0.14.22", - "esbuild-freebsd-64": "0.14.22", - "esbuild-freebsd-arm64": "0.14.22", - "esbuild-linux-32": "0.14.22", - "esbuild-linux-64": "0.14.22", - "esbuild-linux-arm": "0.14.22", - "esbuild-linux-arm64": "0.14.22", - "esbuild-linux-mips64le": "0.14.22", - "esbuild-linux-ppc64le": "0.14.22", - "esbuild-linux-riscv64": "0.14.22", - "esbuild-linux-s390x": "0.14.22", - "esbuild-netbsd-64": "0.14.22", - "esbuild-openbsd-64": "0.14.22", - "esbuild-sunos-64": "0.14.22", - "esbuild-windows-32": "0.14.22", - "esbuild-windows-64": "0.14.22", - "esbuild-windows-arm64": "0.14.22" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.22.tgz", - "integrity": "sha512-k1Uu4uC4UOFgrnTj2zuj75EswFSEBK+H6lT70/DdS4mTAOfs2ECv2I9ZYvr3w0WL0T4YItzJdK7fPNxcPw6YmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.22.tgz", - "integrity": "sha512-d8Ceuo6Vw6HM3fW218FB6jTY6O3r2WNcTAU0SGsBkXZ3k8SDoRLd3Nrc//EqzdgYnzDNMNtrWegK2Qsss4THhw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.22.tgz", - "integrity": "sha512-YAt9Tj3SkIUkswuzHxkaNlT9+sg0xvzDvE75LlBo4DI++ogSgSmKNR6B4eUhU5EUUepVXcXdRIdqMq9ppeRqfw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.22.tgz", - "integrity": "sha512-ek1HUv7fkXMy87Qm2G4IRohN+Qux4IcnrDBPZGXNN33KAL0pEJJzdTv0hB/42+DCYWylSrSKxk3KUXfqXOoH4A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.22.tgz", - "integrity": "sha512-zPh9SzjRvr9FwsouNYTqgqFlsMIW07O8mNXulGeQx6O5ApgGUBZBgtzSlBQXkHi18WjrosYfsvp5nzOKiWzkjQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.22.tgz", - "integrity": "sha512-SnpveoE4nzjb9t2hqCIzzTWBM0RzcCINDMBB67H6OXIuDa4KqFqaIgmTchNA9pJKOVLVIKd5FYxNiJStli21qg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz", - "integrity": "sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.22.tgz", - "integrity": "sha512-soPDdbpt/C0XvOOK45p4EFt8HbH5g+0uHs5nUKjHVExfgR7du734kEkXR/mE5zmjrlymk5AA79I0VIvj90WZ4g==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.22.tgz", - "integrity": "sha512-8q/FRBJtV5IHnQChO3LHh/Jf7KLrxJ/RCTGdBvlVZhBde+dk3/qS9fFsUy+rs3dEi49aAsyVitTwlKw1SUFm+A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.22.tgz", - "integrity": "sha512-SiNDfuRXhGh1JQLLA9JPprBgPVFOsGuQ0yDfSPTNxztmVJd8W2mX++c4FfLpAwxuJe183mLuKf7qKCHQs5ZnBQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.22.tgz", - "integrity": "sha512-6t/GI9I+3o1EFm2AyN9+TsjdgWCpg2nwniEhjm2qJWtJyJ5VzTXGUU3alCO3evopu8G0hN2Bu1Jhz2YmZD0kng==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.22.tgz", - "integrity": "sha512-AyJHipZKe88sc+tp5layovquw5cvz45QXw5SaDgAq2M911wLHiCvDtf/07oDx8eweCyzYzG5Y39Ih568amMTCQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-s390x": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.22.tgz", - "integrity": "sha512-Sz1NjZewTIXSblQDZWEFZYjOK6p8tV6hrshYdXZ0NHTjWE+lwxpOpWeElUGtEmiPcMT71FiuA9ODplqzzSxkzw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-netbsd-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.22.tgz", - "integrity": "sha512-TBbCtx+k32xydImsHxvFgsOCuFqCTGIxhzRNbgSL1Z2CKhzxwT92kQMhxort9N/fZM2CkRCPPs5wzQSamtzEHA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-openbsd-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.22.tgz", - "integrity": "sha512-vK912As725haT313ANZZZN+0EysEEQXWC/+YE4rQvOQzLuxAQc2tjbzlAFREx3C8+uMuZj/q7E5gyVB7TzpcTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-sunos-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.22.tgz", - "integrity": "sha512-/mbJdXTW7MTcsPhtfDsDyPEOju9EOABvCjeUU2OJ7fWpX/Em/H3WYDa86tzLUbcVg++BScQDzqV/7RYw5XNY0g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-wasm": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.22.tgz", - "integrity": "sha512-FOSAM29GN1fWusw0oLMv6JYhoheDIh5+atC72TkJKfIUMID6yISlicoQSd9gsNSFsNBvABvtE2jR4JB1j4FkFw==", - "dev": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-32": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.22.tgz", - "integrity": "sha512-1vRIkuvPTjeSVK3diVrnMLSbkuE36jxA+8zGLUOrT4bb7E/JZvDRhvtbWXWaveUc/7LbhaNFhHNvfPuSw2QOQg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.22.tgz", - "integrity": "sha512-AxjIDcOmx17vr31C5hp20HIwz1MymtMjKqX4qL6whPj0dT9lwxPexmLj6G1CpR3vFhui6m75EnBEe4QL82SYqw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-windows-arm64": { - "version": "0.14.22", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.22.tgz", - "integrity": "sha512-5wvQ+39tHmRhNpu2Fx04l7QfeK3mQ9tKzDqqGR8n/4WUxsFxnVLfDRBGirIfk4AfWlxk60kqirlODPoT5LqMUg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "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==", - "dev": true - }, - "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/eslint": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", - "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "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.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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", - "v8-compile-cache": "^2.0.3" - }, - "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-config-prettier": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", - "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-simple-import-sort": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", - "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", - "dev": true, - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.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/eslint/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/eslint/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/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/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/eslint/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/eslint/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/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/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/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/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.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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/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/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/eslint/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/eslint/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/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.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "dependencies": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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/esquery/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/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/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "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", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter-asyncresource": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", - "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", - "dev": true - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "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": "28.1.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.0.tgz", - "integrity": "sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^28.1.0", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-util": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/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/expect/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/expect/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/expect/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/expect/node_modules/diff-sequences": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", - "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/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/expect/node_modules/jest-diff": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", - "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.0.2", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/jest-matcher-utils": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", - "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.0", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/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/expect/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/expect/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/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "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.10.3", - "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/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/express/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/express/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==", - "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/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "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-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==", - "dev": true, - "dependencies": { - "punycode": "^1.3.2" - } - }, - "node_modules/fast-url-parser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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", - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-cache-dir/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/find-cache-dir/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/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/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.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "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/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", - "dev": true - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "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/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==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "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.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "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": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "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/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/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "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/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/globby/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/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "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/handlebars/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/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/hdr-histogram-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", - "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", - "dev": true, - "dependencies": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "node_modules/hdr-histogram-percentiles-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", - "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", - "dev": true - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", - "dev": true - }, - "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-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "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==", - "dev": true, - "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/http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "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/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.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==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "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", - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.2.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true - }, - "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-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", - "dev": true, - "dependencies": { - "builtin-modules": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "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-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-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "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/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "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-instrument/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/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-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "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/istanbul-lib-report/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/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.0.tgz", - "integrity": "sha512-TZR+tHxopPhzw3c3560IJXZWLNHgpcz1Zh0w5A65vynLGNcg/5pZ+VildAd7+XGOu6jd58XMY/HNn0IkZIXVXg==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.0", - "import-local": "^3.0.2", - "jest-cli": "^28.1.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz", - "integrity": "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.0.tgz", - "integrity": "sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.0", - "@jest/expect": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.0", - "jest-matcher-utils": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-runtime": "^28.1.0", - "jest-snapshot": "^28.1.0", - "jest-util": "^28.1.0", - "pretty-format": "^28.1.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/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/jest-circus/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/jest-circus/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/jest-circus/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/jest-circus/node_modules/diff-sequences": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", - "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/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/jest-circus/node_modules/jest-diff": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", - "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.0.2", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-matcher-utils": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", - "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.0", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/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/jest-circus/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-circus/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/jest-circus/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/jest-cli": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.0.tgz", - "integrity": "sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/types": "^28.1.0", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.0", - "jest-util": "^28.1.0", - "jest-validate": "^28.1.0", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-config": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.0.tgz", - "integrity": "sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.0", - "@jest/types": "^28.1.0", - "babel-jest": "^28.1.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": "^28.1.0", - "jest-environment-node": "^28.1.0", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.0", - "jest-runner": "^28.1.0", - "jest-util": "^28.1.0", - "jest-validate": "^28.1.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-config/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/jest-config/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-config/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/jest-config/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/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/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/jest-docblock": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.0.2.tgz", - "integrity": "sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.0.tgz", - "integrity": "sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.0", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/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/jest-each/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/jest-each/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/jest-each/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/jest-each/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/jest-each/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/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/jest-each/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-each/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/jest-environment-node": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.0.tgz", - "integrity": "sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.0", - "@jest/fake-timers": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "jest-mock": "^28.1.0", - "jest-util": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.0.tgz", - "integrity": "sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.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": "^28.0.2", - "jest-util": "^28.1.0", - "jest-worker": "^28.1.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz", - "integrity": "sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/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/jest-leak-detector/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/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/jest-message-util": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.0.tgz", - "integrity": "sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.0", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util/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/jest-message-util/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-message-util/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/jest-message-util/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/jest-mock": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.0.tgz", - "integrity": "sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "@types/node": "*" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.0.tgz", - "integrity": "sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.0", - "jest-validate": "^28.1.0", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz", - "integrity": "sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g==", - "dev": true, - "dependencies": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-runner": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.0.tgz", - "integrity": "sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.0", - "@jest/environment": "^28.1.0", - "@jest/test-result": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.0.2", - "jest-environment-node": "^28.1.0", - "jest-haste-map": "^28.1.0", - "jest-leak-detector": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-resolve": "^28.1.0", - "jest-runtime": "^28.1.0", - "jest-util": "^28.1.0", - "jest-watcher": "^28.1.0", - "jest-worker": "^28.1.0", - "source-map-support": "0.5.13", - "throat": "^6.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-runner/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/jest-runner/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/jest-runtime": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.0.tgz", - "integrity": "sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.0", - "@jest/fake-timers": "^28.1.0", - "@jest/globals": "^28.1.0", - "@jest/source-map": "^28.0.2", - "@jest/test-result": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-mock": "^28.1.0", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.0", - "jest-snapshot": "^28.1.0", - "jest-util": "^28.1.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-snapshot": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.0.tgz", - "integrity": "sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.0", - "@jest/transform": "^28.1.0", - "@jest/types": "^28.1.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": "^28.1.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.0", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.0", - "jest-matcher-utils": "^28.1.0", - "jest-message-util": "^28.1.0", - "jest-util": "^28.1.0", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/node_modules/diff-sequences": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", - "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/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/jest-snapshot/node_modules/jest-diff": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", - "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.0.2", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", - "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.0", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/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/jest-snapshot/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-snapshot/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/jest-util": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.0.tgz", - "integrity": "sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-validate": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.0.tgz", - "integrity": "sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.0", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/node_modules/pretty-format": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", - "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.0.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/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/jest-validate/node_modules/react-is": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", - "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", - "dev": true - }, - "node_modules/jest-validate/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/jest-watcher": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.0.tgz", - "integrity": "sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.0", - "@jest/types": "^28.1.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-worker": { - "version": "28.1.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.0.tgz", - "integrity": "sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "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-schema-ref-parser": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", - "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.9" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "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/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "dependencies": { - "source-map-support": "^0.5.5" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/less": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", - "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", - "dev": true, - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^2.5.2", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", - "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", - "dev": true, - "dependencies": { - "klona": "^2.0.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/less/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==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/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/license-webpack-plugin": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", - "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", - "dev": true, - "dependencies": { - "webpack-sources": "^3.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-sources": { - "optional": true - } - } - }, - "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/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - } - }, - "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==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "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/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/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/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/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", - "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", - "dev": true, - "dependencies": { - "fs-monkey": "1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "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==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "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", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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/mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", - "dev": true, - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "dev": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "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/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", - "dev": true - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "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/needle": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "dev": true, - "optional": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "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==", - "dev": true, - "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/nice-napi": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", - "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "!win32" - ], - "dependencies": { - "node-addon-api": "^3.0.0", - "node-gyp-build": "^4.2.2" - } - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, - "optional": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "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-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", - "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", - "dev": true, - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-gyp/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/node-gyp/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/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", - "dev": true - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", - "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", - "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", - "dev": true, - "dependencies": { - "glob": "^7.1.6", - "ignore-walk": "^4.0.1", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist/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/npm-packlist/node_modules/ignore-walk": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", - "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist/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/npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", - "dev": true, - "dependencies": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" - } - }, - "node_modules/npm-registry-fetch": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", - "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^10.0.1", - "minipass": "^3.1.6", - "minipass-fetch": "^1.4.1", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^8.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", - "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm-registry-fetch/node_modules/cacache": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.0.tgz", - "integrity": "sha512-Pk4aQkwCW82A4jGKFvcGkQFqZcMspfP9YWq9Pr87/ldDvlWf718zeI6KWCdKt/jeihu6BytHRUicJPB1K2k8EQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz", - "integrity": "sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "10.1.6", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.6.tgz", - "integrity": "sha512-/iKDlRQF0fkxyB/w/duW2yRYrGwBcbJjC37ijgi0CmOZ32bzMc86BCSSAHWvuyRFCB408iBPziTSzazBSrKo3w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.1.1", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen/node_modules/minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/npm-registry-fetch/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.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/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "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==", - "dev": true, - "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": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "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/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/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/ora/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/ora/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/ora/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/ora/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/ora/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/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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-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-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dev": true, - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry/node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pacote": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz", - "integrity": "sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==", - "dev": true, - "dependencies": { - "@npmcli/git": "^2.1.0", - "@npmcli/installed-package-contents": "^1.0.6", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^2.0.0", - "cacache": "^15.0.5", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^3.0.0", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^12.0.0", - "promise-retry": "^2.0.1", - "read-package-json-fast": "^2.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.0" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "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": "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/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parse5-html-rewriting-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", - "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", - "dev": true, - "dependencies": { - "parse5": "^6.0.1", - "parse5-sax-parser": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dev": true, - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-sax-parser": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", - "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", - "dev": true, - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "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==", - "dev": true - }, - "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": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/piscina": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", - "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", - "dev": true, - "dependencies": { - "eventemitter-asyncresource": "^1.0.0", - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0" - }, - "optionalDependencies": { - "nice-napi": "^1.0.2" - } - }, - "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/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/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/portfinder/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dev": true, - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.2" - }, - "peerDependencies": { - "postcss": "^8.0.2" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz", - "integrity": "sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-custom-properties": { - "version": "12.1.7", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz", - "integrity": "sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.2" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", - "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", - "dev": true, - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-env-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", - "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-import": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", - "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-lab-function": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", - "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", - "dev": true, - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "dev": true, - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nesting": { - "version": "10.1.7", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.7.tgz", - "integrity": "sha512-Btho5XzDTpl117SmB3tvUHP8txg5n7Ayv7vQ5m4b1zXkfs1Y52C67uZjZ746h7QvOJ+rLRg50OlhhjFW+IQY6A==", - "dev": true, - "dependencies": { - "@csstools/selector-specificity": "1.0.0", - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "dev": true, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true, - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-preset-env": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", - "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", - "dev": true, - "dependencies": { - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001299", - "css-blank-pseudo": "^3.0.2", - "css-has-pseudo": "^3.0.3", - "css-prefers-color-scheme": "^6.0.2", - "cssdb": "^5.0.0", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-color-functional-notation": "^4.2.1", - "postcss-color-hex-alpha": "^8.0.2", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.2", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.3", - "postcss-double-position-gradients": "^3.0.4", - "postcss-env-function": "^4.0.4", - "postcss-focus-visible": "^6.0.3", - "postcss-focus-within": "^5.0.3", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.2", - "postcss-image-set-function": "^4.0.4", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.0.3", - "postcss-logical": "^5.0.3", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-overflow-shorthand": "^3.0.2", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.3", - "postcss-pseudo-class-any-link": "^7.0.2", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz", - "integrity": "sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.10" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true, - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/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/prettier": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", - "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "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/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==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "optional": true - }, - "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==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "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/puppeteer": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-14.1.2.tgz", - "integrity": "sha512-Nsyy1f7pT2KyBb15u8DHi4q3FfrIqOptAV0r4Bd1lAp2pHz8T0o4DO+On1yWZ7jFbcx1w3AqZ/e7nKqnc3Vwyg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.982423", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "pkg-dir": "4.2.0", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.6.0" - }, - "engines": { - "node": ">=14.1.0" - } - }, - "node_modules/puppeteer/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/puppeteer/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==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "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/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "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/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", - "dev": true - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "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-url-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", - "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", - "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/resolve-url-loader/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "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/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/rollup": { - "version": "2.75.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.4.tgz", - "integrity": "sha512-JgZiJMJkKImMZJ8ZY1zU80Z2bA/TvrL/7D9qcBCrfl2bP+HUaIw0QHUroB4E3gBpFl6CRFM1YxGbuYGtdAswbQ==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/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/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/rollup-plugin-terser/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/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass": { - "version": "1.49.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", - "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", - "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/sass-loader": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", - "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", - "dev": true, - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/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/schema-utils/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/schema-utils/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/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", - "dev": true, - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/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/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/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/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dev": true, - "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/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "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": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dev": true, - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/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/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "dev": true, - "dependencies": { - "stubs": "^3.0.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/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==", - "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/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==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", - "dev": true - }, - "node_modules/stylus": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", - "integrity": "sha512-Ev3fOb4bUElwWu4F9P9WjnnaSpc8XB9OFHSFZSKMFL1CE1oM+oFXWEgAqPmmZIyhBihuqIQlFsVTypiiS9RxeA==", - "dev": true, - "dependencies": { - "css": "^3.0.0", - "debug": "^4.3.2", - "glob": "^7.1.6", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", - "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.7", - "klona": "^2.0.4", - "normalize-path": "^3.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "stylus": ">=0.52.4", - "webpack": "^5.0.0" - } - }, - "node_modules/stylus/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/stylus/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/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/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/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/supports-hyperlinks/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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/teeny-request": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", - "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", - "dev": true, - "dependencies": { - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", - "dev": true, - "dependencies": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dev": true, - "dependencies": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/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/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "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==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-node": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.0.tgz", - "integrity": "sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==", - "dev": true, - "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": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - }, - "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/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "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", - "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==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-assert": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", - "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true - }, - "node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", - "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "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/urlgrey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", - "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", - "dev": true, - "dependencies": { - "fast-url-parser": "^1.1.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "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==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz", - "integrity": "sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.7", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "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/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "node_modules/webpack": { - "version": "5.70.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", - "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", - "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.2.2", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", - "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/serve-index": "^1.9.1", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", - "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^3.5.2", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "portfinder": "^1.0.28", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", - "webpack-dev-middleware": "^5.3.0", - "ws": "^8.1.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-subresource-integrity": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", - "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", - "dev": true, - "dependencies": { - "typed-assert": "^1.0.8" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", - "webpack": "^5.12.0" - }, - "peerDependenciesMeta": { - "html-webpack-plugin": { - "optional": true - } - } - }, - "node_modules/webpack/node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "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/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "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/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "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/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/ws": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", - "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "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": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "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.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/zone.js": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.5.tgz", - "integrity": "sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g==", - "dev": true, - "dependencies": { - "tslib": "^2.3.0" - } - } - }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", @@ -19077,8 +1875,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz", "integrity": "sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw==", - "dev": true, - "requires": {} + "dev": true }, "@discoveryjs/json-ext": { "version": "0.5.6", @@ -19815,8 +2612,7 @@ "version": "13.3.7", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", - "dev": true, - "requires": {} + "dev": true }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", @@ -20795,15 +3591,13 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} + "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": {} + "dev": true }, "acorn-walk": { "version": "8.2.0", @@ -21593,8 +4387,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true, - "requires": {} + "dev": true }, "cjs-module-lexer": { "version": "1.2.2", @@ -22101,8 +4894,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true, - "requires": {} + "dev": true }, "css-select": { "version": "4.3.0", @@ -22871,8 +5663,7 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true, - "requires": {} + "dev": true }, "eslint-plugin-prettier": { "version": "4.0.0", @@ -22887,8 +5678,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", - "dev": true, - "requires": {} + "dev": true }, "eslint-scope": { "version": "5.1.1", @@ -23310,7 +6100,7 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true } } @@ -23949,8 +6739,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} + "dev": true }, "ieee754": { "version": "1.2.1", @@ -25233,8 +8022,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "28.0.2", @@ -26640,7 +9428,7 @@ "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, "node-releases": { @@ -26667,7 +9455,7 @@ "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true }, "npm-bundled": { @@ -26983,7 +9771,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" @@ -27094,7 +9882,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true }, "p-limit": { @@ -27257,7 +10045,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-key": { @@ -27275,7 +10063,7 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, "path-type": { @@ -27287,7 +10075,7 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, "picocolors": { @@ -27417,8 +10205,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "dev": true, - "requires": {} + "dev": true }, "postcss-custom-properties": { "version": "12.1.7", @@ -27488,15 +10275,13 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true, - "requires": {} + "dev": true }, "postcss-gap-properties": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-image-set-function": { "version": "4.0.6", @@ -27522,8 +10307,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-lab-function": { "version": "4.2.0", @@ -27550,22 +10334,19 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true, - "requires": {} + "dev": true }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -27610,15 +10391,13 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "dev": true, - "requires": {} + "dev": true }, "postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-place": { "version": "7.0.4", @@ -27683,8 +10462,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-selector-not": { "version": "5.0.0", @@ -27772,7 +10550,7 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, "promise-retry": { @@ -27814,7 +10592,7 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, "optional": true }, @@ -27935,7 +10713,7 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true } } @@ -28352,8 +11130,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -28767,23 +11544,6 @@ "stubs": "^3.0.0" } }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -28805,6 +11565,23 @@ "strip-ansi": "^6.0.1" } }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -29061,8 +11838,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "has-flag": { "version": "4.0.0", @@ -29554,8 +12330,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "json-schema-traverse": { "version": "0.4.1", @@ -29819,8 +12594,7 @@ "version": "8.6.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "dev": true, - "requires": {} + "dev": true }, "y18n": { "version": "5.0.8", diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index 3eb581816..cb738bf7b 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -6,10 +6,8 @@ import { isString } from './utils/isString'; import { mapSwaggerRef } from './utils/mapSwaggerRef'; import { removeLodashPrefix } from './utils/removeLodashPrefix'; import { removeLodashPrefixFromRef } from './utils/removeLodashPrefixFromRef'; -import { getApiToken } from './utils/saddleback/getApiToken'; -import { getRequestVerificationToken } from './utils/saddleback/getRequestVerificationToken'; -import { getSessionCookie } from './utils/saddleback/getSessionCookie'; -import { getSwaggerJson } from './utils/saddleback/getSwaggerJson'; +import { getSwaggerJsonByEnv } from './utils/saddleback/getSwaggerJsonByEnv'; +import { Environment, Service } from './utils/saddleback/getUrlByServiceEnv'; import { Dictionary } from './utils/types'; type Config = Options & { @@ -17,73 +15,84 @@ type Config = Options & { additionalModelFileExtension?: boolean; additionalServiceFileExtension?: boolean; removeLodashPrefixes?: boolean; + username: string; + password: string; + useAutoCoreService?: boolean; + useAutoEventService?: boolean; + useAutoNotificationService?: boolean; + useAutoWorkflowsService?: boolean; + useEnvironment?: Environment; }; export const generateSaddlebackSpec = async (config: Config) => { - const username = 'roman.tech48@gmail.com'; - const password = "&cY8at<'S5PfJa#k"; - const swaggerUrl = `https://hc-workflowsservice-dev.azurewebsites.net/api-doc/v1/swagger.json`; + const saddlebackGenerator = async (input: string | Record, output: string) => { + const openApi: OpenApi = isString(input) ? await getOpenApiSpec(input) : input; - const loginUrl = `https://identity-dev.saddleback.com/account/login`; - const tokenUrl = `https://identity-dev.saddleback.com/connect/authorize/callback`; + if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { + const newSchemas: Dictionary = {}; - // params - const client_id = 'cm'; - const response_type = 'token'; - const scope = 'cm-api.default'; - const redirect_uri = (swaggerUrl.match(new RegExp(`.*\.net`)) || [])[0] + '/api-doc-auth-callback'; - const response_mode = 'form_post'; - const state = 'e57a56201103b8bda3981515294649254a764612d871ecbe7a31efb8e3e66c8b'; - const nonce = '78fd83bf2d178a5c5de18f9f7da3269b34f7daa07d4accc28cd0bdb87f9deee8'; - const returnUrl = `/connect/authorize/callback?client_id=${client_id}&response_type=${response_type}&scope=${scope}&redirect_uri=${redirect_uri}&state=${state}&nonce=${nonce}&response_mode=${response_mode}`; - - const { requestVerificationToken, cookie } = await getRequestVerificationToken({ - url: loginUrl, - params: { returnUrl }, - }); - - const { cookie: sessionCookie } = await getSessionCookie({ - url: loginUrl, - username, - password, - cookie, - requestVerificationToken, - params: { returnUrl }, - }); - - const { apiToken } = await getApiToken({ - url: tokenUrl, - cookie: sessionCookie, - params: { - client_id, - response_type, - scope, - redirect_uri, - state, - nonce, - response_mode, - }, - }); - - const { data: json } = await getSwaggerJson({ url: swaggerUrl, apiToken: apiToken }); - - const openApi: OpenApi = isString(config.input) ? await getOpenApiSpec(config.input) : config.input; - - if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { - const newSchemas: Dictionary = {}; - - for (const schemaKey in openApi.components.schemas) { - if (openApi.components.schemas.hasOwnProperty(schemaKey)) { - newSchemas[removeLodashPrefix(schemaKey)] = openApi.components.schemas[schemaKey]; + for (const schemaKey in openApi.components.schemas) { + if (openApi.components.schemas.hasOwnProperty(schemaKey)) { + newSchemas[removeLodashPrefix(schemaKey)] = openApi.components.schemas[schemaKey]; + } } + + openApi.components.schemas = newSchemas; } - openApi.components.schemas = newSchemas; - } + mapSwaggerRef(openApi, removeLodashPrefixFromRef); - mapSwaggerRef(openApi, removeLodashPrefixFromRef); + await generate({ ...config, input: openApi }); + }; - await generate({ ...config, input: openApi }); + if (!config.useEnvironment) { + await saddlebackGenerator(config.input, config.output); + return; + } + if (config.useAutoCoreService) { + await saddlebackGenerator( + await getSwaggerJsonByEnv({ + env: config.useEnvironment, + service: Service.Core, + username: config.username, + password: config.password, + }), + config.output + '/core' + ); + } + if (config.useAutoEventService) { + await saddlebackGenerator( + await getSwaggerJsonByEnv({ + env: config.useEnvironment, + service: Service.Event, + username: config.username, + password: config.password, + }), + config.output + '/event' + ); + } + if (config.useAutoNotificationService) { + await saddlebackGenerator( + await getSwaggerJsonByEnv({ + env: config.useEnvironment, + service: Service.Notifications, + username: config.username, + password: config.password, + }), + config.output + '/notifications' + ); + } + if (config.useAutoWorkflowsService) { + await saddlebackGenerator( + await getSwaggerJsonByEnv({ + env: config.useEnvironment, + service: Service.Workflows, + username: config.username, + password: config.password, + }), + config.output + '/workflows' + ); + } }; export default generateSaddlebackSpec; diff --git a/src/utils/saddleback/getApiToken.ts b/src/utils/saddleback/getApiToken.ts index 079596fd7..53f039dd0 100644 --- a/src/utils/saddleback/getApiToken.ts +++ b/src/utils/saddleback/getApiToken.ts @@ -8,7 +8,7 @@ export const getApiToken = async ({ url: string; cookie: string; params: Record; -}): Promise<{ apiToken: string }> => { +}): Promise<{ apiToken: string | null }> => { const response = await axios(url, { method: 'GET', headers: { @@ -16,7 +16,9 @@ export const getApiToken = async ({ }, params, maxRedirects: 0, - }); + }).catch(e => console.log(e)); + + if (!response) return { apiToken: null }; const regexp = new RegExp(`type='hidden' name='access_token' value='(.*)'`); const apiToken = response.data.match(regexp)?.[1] || null; diff --git a/src/utils/saddleback/getRequestVerificationToken.ts b/src/utils/saddleback/getRequestVerificationToken.ts index 575972132..2c9f79b42 100644 --- a/src/utils/saddleback/getRequestVerificationToken.ts +++ b/src/utils/saddleback/getRequestVerificationToken.ts @@ -6,16 +6,22 @@ export const getRequestVerificationToken = async ({ }: { url: string; params: Record; -}): Promise<{ requestVerificationToken: string; cookie: string }> => { - const response0 = await axios(url, { +}): Promise<{ + requestVerificationToken: string | null; + cookie: string | null; +}> => { + const response = await axios(url, { method: 'GET', params, maxRedirects: 0, - }); + }).catch(e => console.log(e)); + + if (!response) return { requestVerificationToken: null, cookie: null }; + const regexp = new RegExp(` `${acc}${it};`, '') || null; if (!requestVerificationToken || !cookieString) throw new Error('getRequestVerificationToken failed'); diff --git a/src/utils/saddleback/getStateNonce.ts b/src/utils/saddleback/getStateNonce.ts new file mode 100644 index 000000000..912f28d94 --- /dev/null +++ b/src/utils/saddleback/getStateNonce.ts @@ -0,0 +1,25 @@ +import axios, { AxiosError } from 'axios'; + +export const getStateNonce = async ({ + url, +}: { + url: string; +}): Promise<{ state: string | null; nonce: string | null }> => { + let [state, nonce]: [string | null, string | null] = [null, null]; + + const response = await axios(`${url.match(new RegExp('(.*)/api-doc/'))?.[0]}`, { + method: 'GET', + maxRedirects: 0, + }).catch(e => { + const response = e as AxiosError; + + if (response.response && response.response.status === 302) { + const location = response.response.headers?.location || ''; + + const newRegexp = new RegExp(`state=(.*)&nonce=(.*)[&$]`); + [state, nonce] = location.match(newRegexp)?.slice(1) || [null, null]; + } + }); + + return { state, nonce }; +}; diff --git a/src/utils/saddleback/getSwaggerJson.ts b/src/utils/saddleback/getSwaggerJson.ts index efef5b153..f9c27fba0 100644 --- a/src/utils/saddleback/getSwaggerJson.ts +++ b/src/utils/saddleback/getSwaggerJson.ts @@ -1,12 +1,19 @@ import axios, { AxiosResponse } from 'axios'; -export const getSwaggerJson = async ({ url, apiToken }: { url: string; apiToken: string }): Promise => { +export const getSwaggerJson = async ({ + url, + apiToken, +}: { + url: string; + apiToken: string; +}): Promise => { const response = await axios(url, { method: 'GET', headers: { Cookie: `apiKey=${apiToken}`, }, maxRedirects: 0, - }); - return response; + }).catch(e => console.log(e)); + + return response ?? null; }; diff --git a/src/utils/saddleback/getSwaggerJsonByEnv.ts b/src/utils/saddleback/getSwaggerJsonByEnv.ts new file mode 100644 index 000000000..34011412c --- /dev/null +++ b/src/utils/saddleback/getSwaggerJsonByEnv.ts @@ -0,0 +1,75 @@ +import { getApiToken } from './getApiToken'; +import { getRequestVerificationToken } from './getRequestVerificationToken'; +import { getSessionCookie } from './getSessionCookie'; +import { getStateNonce } from './getStateNonce'; +import { getSwaggerJson } from './getSwaggerJson'; +import { Environment, getUrlByServiceEnv, Service } from './getUrlByServiceEnv'; + +export const getSwaggerJsonByEnv = async ({ + env, + service, + username, + password, +}: { + env: Environment; + service: Service; + username: string; + password: string; +}): Promise => { + const swaggerUrl = getUrlByServiceEnv({ env, service }); + const loginUrl = `https://identity-dev.saddleback.com/account/login`; + const tokenUrl = `https://identity-dev.saddleback.com/connect/authorize/callback`; + + // params + const client_id = 'cm'; + const response_type = 'token'; + const scope = 'cm-api.default'; + const redirect_uri = (swaggerUrl.match(new RegExp(`https://.*?/`)) || [])[0] + '/api-doc-auth-callback'; + const response_mode = 'form_post'; + + const { state, nonce } = await getStateNonce({ url: swaggerUrl }); + + if (!state || !nonce) return null; + + // const state = 'e57a56201103b8bda3981515294649254a764612d871ecbe7a31efb8e3e66c8b'; + // const nonce = '78fd83bf2d178a5c5de18f9f7da3269b34f7daa07d4accc28cd0bdb87f9deee8'; + const returnUrl = `/connect/authorize/callback?client_id=${client_id}&response_type=${response_type}&scope=${scope}&redirect_uri=${redirect_uri}&state=${state}&nonce=${nonce}&response_mode=${response_mode}`; + + const { requestVerificationToken, cookie } = await getRequestVerificationToken({ + url: loginUrl, + params: { returnUrl }, + }); + + if (!requestVerificationToken || !cookie) return null; + + const { cookie: sessionCookie } = await getSessionCookie({ + url: loginUrl, + username, + password, + cookie, + requestVerificationToken, + params: { returnUrl }, + }); + + const { apiToken } = await getApiToken({ + url: tokenUrl, + cookie: sessionCookie, + params: { + client_id, + response_type, + scope, + redirect_uri, + state, + nonce, + response_mode, + }, + }); + + if (!apiToken) return null; + + const response = await getSwaggerJson({ url: swaggerUrl, apiToken: apiToken }); + + if (!response) return null; + + return response.data; +}; diff --git a/src/utils/saddleback/getUrlByServiceEnv.ts b/src/utils/saddleback/getUrlByServiceEnv.ts new file mode 100644 index 000000000..4717e2f31 --- /dev/null +++ b/src/utils/saddleback/getUrlByServiceEnv.ts @@ -0,0 +1,25 @@ +export enum Service { + Workflows = 'workflows', + Event = 'event', + Notifications = 'notifications', + Core = 'core', +} + +export enum Environment { + Dev = 'dev', + Stage = 'stage', + Stage2 = 'stage2', +} + +export const getUrlByServiceEnv = ({ env, service }: { service: Service; env: Environment }): string => { + switch (service) { + case Service.Core: + return `https://hc-${env}.saddleback.com/api-doc/all/swagger.json`; + case Service.Notifications: + return `https://hc-notificationservice-${env}.azurewebsites.net/api-doc/v1/swagger.json`; + case Service.Workflows: + return `https://hc-workflowsservice-${env}.azurewebsites.net/api-doc/v1/swagger.json`; + case Service.Event: + return `https://hc-eventservice-${env}.azurewebsites.net/api-doc/all/swagger.json`; + } +}; diff --git a/test/index.js b/test/index.js index 2c3cb8814..6628655c6 100644 --- a/test/index.js +++ b/test/index.js @@ -73,27 +73,38 @@ const main = async () => { additionalModelFileExtension: true, additionalServiceFileExtension: true, removeLodashPrefixes: true, + username: 'roman.tech48@gmail.com', + password: `&cY8at<'S5PfJa#k`, + useEnvironment: 'dev', + useAutoCoreService: true, + useAutoEventService: false, + useAutoNotificationService: false, + useAutoWorkflowsService: false, }; await OpenAPI.generateSaddlebackSpec({ - input: './test/spec/saddlebackCoreApi.json', - output: './test/new/saddleback/core', - ...config, - }); - await OpenAPI.generateSaddlebackSpec({ - input: './test/spec/saddlebackEventApi.json', - output: './test/new/saddleback/event', - ...config, - }); - await OpenAPI.generateSaddlebackSpec({ - input: './test/spec/saddlebackWebAppApi.json', - output: './test/new/saddleback/web', - ...config, - }); - await OpenAPI.generateSaddlebackSpec({ - input: './test/spec/saddlebackWorkflowApi.json', - output: './test/new/saddleback/workflow', + output: './test/auto', ...config, }); + // await OpenAPI.generateSaddlebackSpec({ + // input: './test/spec/saddlebackCoreApi.json', + // output: './test/new/saddleback/core', + // ...config, + // }); + // await OpenAPI.generateSaddlebackSpec({ + // input: './test/spec/saddlebackEventApi.json', + // output: './test/new/saddleback/event', + // ...config, + // }); + // await OpenAPI.generateSaddlebackSpec({ + // input: './test/spec/saddlebackWebAppApi.json', + // output: './test/new/saddleback/web', + // ...config, + // }); + // await OpenAPI.generateSaddlebackSpec({ + // input: './test/spec/saddlebackWorkflowApi.json', + // output: './test/new/saddleback/workflow', + // ...config, + // }); // await generateRealWorldSpecs(); }; diff --git a/types/index.d.ts b/types/index.d.ts index 91ae230f7..1036a3ebf 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -1,3 +1,5 @@ +import {Environment} from "../src/utils/saddleback/getUrlByServiceEnv"; + export declare enum HttpClient { FETCH = 'fetch', XHR = 'xhr', @@ -34,6 +36,13 @@ export type CustomConfig = Options & { additionalModelFileExtension?: boolean; additionalServiceFileExtension?: boolean; removeLodashPrefixes?: boolean; + username: string; + password: string; + useAutoCoreService?: boolean; + useAutoEventService?: boolean; + useAutoNotificationService?: boolean; + useAutoWorkflowsService?: boolean; + useEnvironment?: Environment; }; export declare function generate(options: Options): Promise; From d0c1f379119b837c8f371d5280724d4e5207af15 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 11 Jul 2022 15:20:25 +0500 Subject: [PATCH 20/52] fix: add functions to fetch swagger.json from saddleback server --- bin/saddleback.cli.js | 15 +--- src/generateSaddlebackSpec.ts | 90 ++++++----------------- src/templates/exportSaddlebackService.hbs | 2 + test/index.js | 48 ++++++------ types/index.d.ts | 6 +- 5 files changed, 54 insertions(+), 107 deletions(-) diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index a29183241..a14a0e9c5 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -15,14 +15,8 @@ const params = program .option('-c, --config ', 'Path to the config file') .option('-l, --login ', 'Login') .option('-p, --password ', 'Password') - .option('-e, --environment ', 'Environment') - .option('-uc, --useAutoCore ', 'Use fetching Core service swagger.json via login and password') - .option('-ue, --useAutoEvent ', 'Use fetching Event service swagger.json via login and password') - .option( - '-un, --useAutoNotification ', - 'Use fetching Notification service swagger.json via login and password' - ) - .option('-uw, --useAutoWorkflows ', 'Use fetching Workflows service swagger.json via login and password') + .option('-e, --environment ', 'Environment dev | stage | stage2') + .option('-s, --service ', 'Service ') .parse(process.argv) .opts(); @@ -52,10 +46,7 @@ if (OpenAPI) { username: params.login, password: params.password, useEnvironment: params.environment, - useAutoCoreService: params.useAutoCore, - useAutoEventService: params.useAutoEvent, - useAutoNotificationService: params.useAutoNotification, - useAutoWorkflowsService: params.useAutoWorkflows, + useService: params.service, }) .then(() => { process.exit(0); diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index cb738bf7b..b8813ec54 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -17,82 +17,38 @@ type Config = Options & { removeLodashPrefixes?: boolean; username: string; password: string; - useAutoCoreService?: boolean; - useAutoEventService?: boolean; - useAutoNotificationService?: boolean; - useAutoWorkflowsService?: boolean; useEnvironment?: Environment; + useService?: Service; }; export const generateSaddlebackSpec = async (config: Config) => { - const saddlebackGenerator = async (input: string | Record, output: string) => { - const openApi: OpenApi = isString(input) ? await getOpenApiSpec(input) : input; - - if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { - const newSchemas: Dictionary = {}; - - for (const schemaKey in openApi.components.schemas) { - if (openApi.components.schemas.hasOwnProperty(schemaKey)) { - newSchemas[removeLodashPrefix(schemaKey)] = openApi.components.schemas[schemaKey]; - } + const openApi: OpenApi = + config.useEnvironment && config.useService + ? await getSwaggerJsonByEnv({ + env: config.useEnvironment, + service: config.useService, + username: config.username, + password: config.password, + }) + : isString(config.input) + ? await getOpenApiSpec(config.input) + : config.input; + + if (config.removeLodashPrefixes && openApi.components && openApi.components.schemas) { + const newSchemas: Dictionary = {}; + + for (const schemaKey in openApi.components.schemas) { + if (openApi.components.schemas.hasOwnProperty(schemaKey)) { + newSchemas[removeLodashPrefix(schemaKey)] = openApi.components.schemas[schemaKey]; } - - openApi.components.schemas = newSchemas; } - mapSwaggerRef(openApi, removeLodashPrefixFromRef); + openApi.components.schemas = newSchemas; + } - await generate({ ...config, input: openApi }); - }; + mapSwaggerRef(openApi, removeLodashPrefixFromRef); - if (!config.useEnvironment) { - await saddlebackGenerator(config.input, config.output); - return; - } - if (config.useAutoCoreService) { - await saddlebackGenerator( - await getSwaggerJsonByEnv({ - env: config.useEnvironment, - service: Service.Core, - username: config.username, - password: config.password, - }), - config.output + '/core' - ); - } - if (config.useAutoEventService) { - await saddlebackGenerator( - await getSwaggerJsonByEnv({ - env: config.useEnvironment, - service: Service.Event, - username: config.username, - password: config.password, - }), - config.output + '/event' - ); - } - if (config.useAutoNotificationService) { - await saddlebackGenerator( - await getSwaggerJsonByEnv({ - env: config.useEnvironment, - service: Service.Notifications, - username: config.username, - password: config.password, - }), - config.output + '/notifications' - ); - } - if (config.useAutoWorkflowsService) { - await saddlebackGenerator( - await getSwaggerJsonByEnv({ - env: config.useEnvironment, - service: Service.Workflows, - username: config.username, - password: config.password, - }), - config.output + '/workflows' - ); - } + await generate({ ...config, input: openApi }); }; export default generateSaddlebackSpec; diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index caf33d4ed..a5b822e1b 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -1,3 +1,5 @@ +{{>header}} + {{#if imports}} {{#each imports}} import type { {{{this}}} } from '../models/{{{this}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; diff --git a/test/index.js b/test/index.js index 6628655c6..e044475b8 100644 --- a/test/index.js +++ b/test/index.js @@ -75,36 +75,32 @@ const main = async () => { removeLodashPrefixes: true, username: 'roman.tech48@gmail.com', password: `&cY8at<'S5PfJa#k`, - useEnvironment: 'dev', - useAutoCoreService: true, - useAutoEventService: false, - useAutoNotificationService: false, - useAutoWorkflowsService: false, + useEnvironment: 'stage2', }; - await OpenAPI.generateSaddlebackSpec({ - output: './test/auto', - ...config, - }); - // await OpenAPI.generateSaddlebackSpec({ - // input: './test/spec/saddlebackCoreApi.json', - // output: './test/new/saddleback/core', - // ...config, - // }); - // await OpenAPI.generateSaddlebackSpec({ - // input: './test/spec/saddlebackEventApi.json', - // output: './test/new/saddleback/event', - // ...config, - // }); - // await OpenAPI.generateSaddlebackSpec({ - // input: './test/spec/saddlebackWebAppApi.json', - // output: './test/new/saddleback/web', - // ...config, - // }); // await OpenAPI.generateSaddlebackSpec({ - // input: './test/spec/saddlebackWorkflowApi.json', - // output: './test/new/saddleback/workflow', + // output: './test/auto', // ...config, // }); + await OpenAPI.generateSaddlebackSpec({ + useService: 'core', + output: './auto/core', + ...config, + }); + await OpenAPI.generateSaddlebackSpec({ + useService: 'event', + output: './auto/event', + ...config, + }); + await OpenAPI.generateSaddlebackSpec({ + useService: 'workflows', + output: './auto/workflows', + ...config, + }); + await OpenAPI.generateSaddlebackSpec({ + useService: 'notifications', + output: './auto/notifications', + ...config, + }); // await generateRealWorldSpecs(); }; diff --git a/types/index.d.ts b/types/index.d.ts index 1036a3ebf..57f5f6a04 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -1,4 +1,5 @@ -import {Environment} from "../src/utils/saddleback/getUrlByServiceEnv"; +import { Service } from '../src/client/interfaces/Service'; +import { Environment } from '../src/utils/saddleback/getUrlByServiceEnv'; export declare enum HttpClient { FETCH = 'fetch', @@ -42,7 +43,8 @@ export type CustomConfig = Options & { useAutoEventService?: boolean; useAutoNotificationService?: boolean; useAutoWorkflowsService?: boolean; - useEnvironment?: Environment; + useEnvironment?: Environment | 'dev' | 'stage' | 'stage2'; + useService?: Service | 'workflows' | 'event' | 'notifications' | 'core'; }; export declare function generate(options: Options): Promise; From 7752008c2b74f5223be30de03e9f6e842e2faa6e Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 11 Jul 2022 20:10:55 +0400 Subject: [PATCH 21/52] update README --- README.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5167e86c8..1ed008283 100644 --- a/README.md +++ b/README.md @@ -20,11 +20,16 @@ $ saddlebackOpenapi --help -i, --input OpenAPI specification, can be a path, url or string content -o, --output Output directory -c, --config Path to the config file + -l, --login Login + -p, --password Password + -e, --environment Environment dev | stage | stage2 + -s, --service Service 'workflows' | 'event' | 'notifications' | 'core' -h, --help display help for command Examples - $ saddlebackOpenapi --input ./spec.json --output ./generated - $ saddlebackOpenapi --config ./openapi.config.json + $ saddlebackOpenApi --input ./spec.json --output ./generated + $ saddlebackOpenApi --config ./openapi.config.json + $ saddlebackOpenApi -o "./folderPath" -l "Login" -p "Password" -e "dev" -s "core" ``` ## Config file @@ -50,6 +55,30 @@ OpenAPI specification, can be a path, url or string content (required in the con Output directory (required in the config or cmd arguments) +### `login` (autofetch) +- Default: `undefined` +- Type: `string` + +Login to saddleback identity server + +### `password` (autofetch) +- Default: `undefined` +- Type: `string` + +Password to saddleback identity server + +### `environment` (autofetch) +- Default: `undefined` +- Type: `'dev' | 'stage' | 'stage2'` + +Which Environment should be used for swagger.json + +### `service` (autofetch) +- Default: `undefined` +- Type: `'workflows' | 'event' | 'notifications' | 'core'` + +Which service should be fetched + ### `additionalModelFileExtension` - Default: `true` - Type: `boolean` From 578371ac9ce3f771e8e56fedbbb190818f9c4d9b Mon Sep 17 00:00:00 2001 From: Roman P Date: Tue, 12 Jul 2022 16:39:37 +0500 Subject: [PATCH 22/52] feat: change file names from PascalCase to camelCase --- src/templates/exportModel.hbs | 2 +- src/templates/exportSaddlebackService.hbs | 2 +- src/utils/writeClientModels.ts | 3 ++- src/utils/writeSaddlebackClientServices.ts | 3 ++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/templates/exportModel.hbs b/src/templates/exportModel.hbs index a23da9060..4207aaf8a 100644 --- a/src/templates/exportModel.hbs +++ b/src/templates/exportModel.hbs @@ -3,7 +3,7 @@ {{#if imports}} {{#each imports}} -import type { {{{this}}} } from './{{{this}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +import type { {{{this}}} } from './{{camelCase this}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{/each}} {{/if}} diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index a5b822e1b..3bc2bfd83 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -2,7 +2,7 @@ {{#if imports}} {{#each imports}} -import type { {{{this}}} } from '../models/{{{this}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +import type { {{{this}}} } from '../models/{{camelCase this}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{/each}} {{/if}} import axios, { diff --git a/src/utils/writeClientModels.ts b/src/utils/writeClientModels.ts index 0c55d19c1..a9f7a68a4 100644 --- a/src/utils/writeClientModels.ts +++ b/src/utils/writeClientModels.ts @@ -1,3 +1,4 @@ +import camelCase from 'camelcase'; import { resolve } from 'path'; import type { Model } from '../client/interfaces/Model'; @@ -30,7 +31,7 @@ export const writeClientModels = async ( additionalServiceFileExtension: boolean ): Promise => { for (const model of models) { - const file = resolve(outputPath, `${model.name}${additionalModelFileExtension ? '.models' : ''}.ts`); + const file = resolve(outputPath, `${camelCase(model.name)}${additionalModelFileExtension ? '.models' : ''}.ts`); const templateResult = templates.exports.model({ ...model, httpClient, diff --git a/src/utils/writeSaddlebackClientServices.ts b/src/utils/writeSaddlebackClientServices.ts index 4792621f1..a1e804f98 100644 --- a/src/utils/writeSaddlebackClientServices.ts +++ b/src/utils/writeSaddlebackClientServices.ts @@ -1,3 +1,4 @@ +import camelCase from 'camelcase'; import { resolve } from 'path'; import type { Service } from '../client/interfaces/Service'; @@ -39,7 +40,7 @@ export const writeSaddlebackClientServices = async ( for (const service of services) { const file = resolve( outputPath, - `${service.name}${postfix}${additionalServiceFileExtension ? '.service' : ''}.ts` + `${camelCase(service.name)}${postfix}${additionalServiceFileExtension ? '.service' : ''}.ts` ); const templateResult = templates.exports.saddlebackService({ ...service, From 49d522337ba5e8756a86c650f4319c700a55c472 Mon Sep 17 00:00:00 2001 From: Roman P Date: Tue, 12 Jul 2022 17:48:17 +0500 Subject: [PATCH 23/52] feat: add index.ts to models and service directory --- src/templates/modelsIndex.hbs | 18 ++++++++ src/templates/servicesIndex.hbs | 13 ++++++ src/utils/registerHandlebarTemplates.ts | 6 +++ src/utils/writeClient.spec.ts | 2 + src/utils/writeClient.ts | 34 +++++++++++++++ src/utils/writeClientClass.spec.ts | 2 + src/utils/writeClientCore.spec.ts | 2 + src/utils/writeClientIndex.spec.ts | 19 ++++++++- src/utils/writeClientModels.spec.ts | 2 + src/utils/writeClientSchemas.spec.ts | 2 + src/utils/writeClientServices.spec.ts | 2 + src/utils/writeSaddlebackModelsIndex.ts | 54 ++++++++++++++++++++++++ src/utils/writeSaddlebackServiceIndex.ts | 54 ++++++++++++++++++++++++ 13 files changed, 208 insertions(+), 2 deletions(-) create mode 100644 src/templates/modelsIndex.hbs create mode 100644 src/templates/servicesIndex.hbs create mode 100644 src/utils/writeSaddlebackModelsIndex.ts create mode 100644 src/utils/writeSaddlebackServiceIndex.ts diff --git a/src/templates/modelsIndex.hbs b/src/templates/modelsIndex.hbs new file mode 100644 index 000000000..324db39a4 --- /dev/null +++ b/src/templates/modelsIndex.hbs @@ -0,0 +1,18 @@ +{{>header}} + +{{#if @root.exportModels}} +{{#if models}} +{{#each models}} +{{#if @root.useUnionTypes}} +export type { {{{name}}} } from './{{camelCase name}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +{{else if enum}} +export { {{{name}}} } from './{{camelCase name}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +{{else if enums}} +export { {{{name}}} } from './{{camelCase name}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +{{else}} +export type { {{{name}}} } from './{{camelCase name}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +{{/if}} +{{/each}} +{{/if}} +{{/if}} + diff --git a/src/templates/servicesIndex.hbs b/src/templates/servicesIndex.hbs new file mode 100644 index 000000000..3f993246c --- /dev/null +++ b/src/templates/servicesIndex.hbs @@ -0,0 +1,13 @@ +{{>header}} + +{{#if @root.exportServices}} +{{#if services}} +{{#each services}} +{{#equals @root.httpClient 'saddleback'}} +export * as fetch{{{name}}}{{{@root.postfix}}} from './{{camelCase name}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; +{{else}} +export { {{{name}}}{{{@root.postfix}}} } from './{{camelCase name}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; +{{/equals}} +{{/each}} +{{/if}} +{{/if}} diff --git a/src/utils/registerHandlebarTemplates.ts b/src/utils/registerHandlebarTemplates.ts index c27fc13ca..701c90f57 100644 --- a/src/utils/registerHandlebarTemplates.ts +++ b/src/utils/registerHandlebarTemplates.ts @@ -57,6 +57,7 @@ import templateExportSaddlebackService from '../templates/exportSaddlebackServic import templateExportSchema from '../templates/exportSchema.hbs'; import templateExportService from '../templates/exportService.hbs'; import templateIndex from '../templates/index.hbs'; +import templateModelsIndex from '../templates/modelsIndex.hbs'; import partialBase from '../templates/partials/base.hbs'; import partialExportComposition from '../templates/partials/exportComposition.hbs'; import partialExportEnum from '../templates/partials/exportEnum.hbs'; @@ -85,10 +86,13 @@ import partialTypeInterface from '../templates/partials/typeInterface.hbs'; import partialTypeIntersection from '../templates/partials/typeIntersection.hbs'; import partialTypeReference from '../templates/partials/typeReference.hbs'; import partialTypeUnion from '../templates/partials/typeUnion.hbs'; +import templateServiceIndex from '../templates/servicesIndex.hbs'; import { registerHandlebarHelpers } from './registerHandlebarHelpers'; export interface Templates { index: Handlebars.TemplateDelegate; + serviceIndex: Handlebars.TemplateDelegate; + modelsIndex: Handlebars.TemplateDelegate; client: Handlebars.TemplateDelegate; exports: { model: Handlebars.TemplateDelegate; @@ -122,6 +126,8 @@ export const registerHandlebarTemplates = (root: { // Main templates (entry points for the files we write to disk) const templates: Templates = { index: Handlebars.template(templateIndex), + serviceIndex: Handlebars.template(templateServiceIndex), + modelsIndex: Handlebars.template(templateModelsIndex), client: Handlebars.template(templateClient), exports: { model: Handlebars.template(templateExportModel), diff --git a/src/utils/writeClient.spec.ts b/src/utils/writeClient.spec.ts index 22adfc330..e62f7339f 100644 --- a/src/utils/writeClient.spec.ts +++ b/src/utils/writeClient.spec.ts @@ -18,6 +18,8 @@ describe('writeClient', () => { const templates: Templates = { index: () => 'index', + modelsIndex: () => 'modelsIndex', + serviceIndex: () => 'serviceIndex', client: () => 'client', exports: { model: () => 'model', diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index 99ef43f52..38a8cbd11 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -14,6 +14,8 @@ import { writeClientModels } from './writeClientModels'; import { writeClientSchemas } from './writeClientSchemas'; import { writeClientServices } from './writeClientServices'; import { writeSaddlebackClientServices } from './writeSaddlebackClientServices'; +import { writeSaddlebackModelsIndex } from './writeSaddlebackModelsIndex'; +import { writeSaddlebackServiceIndex } from './writeSaddlebackServiceIndex'; /** * Write our OpenAPI client, using the given templates at the given output @@ -128,6 +130,38 @@ export const writeClient = async ( await mkdir(outputPath); await writeClientClass(client, templates, outputPath, httpClient, clientName, indent, postfix); } + // write service index + if (exportCore || exportServices || exportSchemas || exportModels) { + await mkdir(outputPath); + await writeSaddlebackServiceIndex( + client, + templates, + outputPathServices, + useUnionTypes, + exportServices, + postfix, + httpClient, + additionalModelFileExtension, + additionalServiceFileExtension, + clientName + ); + } + // write models index + if (exportCore || exportServices || exportSchemas || exportModels) { + await mkdir(outputPath); + await writeSaddlebackModelsIndex( + client, + templates, + outputPathModels, + useUnionTypes, + exportModels, + postfix, + httpClient, + additionalModelFileExtension, + additionalServiceFileExtension, + clientName + ); + } if (exportCore || exportServices || exportSchemas || exportModels) { await mkdir(outputPath); diff --git a/src/utils/writeClientClass.spec.ts b/src/utils/writeClientClass.spec.ts index 10d23d5f0..7c9d01550 100644 --- a/src/utils/writeClientClass.spec.ts +++ b/src/utils/writeClientClass.spec.ts @@ -18,6 +18,8 @@ describe('writeClientClass', () => { const templates: Templates = { index: () => 'index', + modelsIndex: () => 'modelsIndex', + serviceIndex: () => 'serviceIndex', client: () => 'client', exports: { model: () => 'model', diff --git a/src/utils/writeClientCore.spec.ts b/src/utils/writeClientCore.spec.ts index 303334b58..f247a7160 100644 --- a/src/utils/writeClientCore.spec.ts +++ b/src/utils/writeClientCore.spec.ts @@ -20,6 +20,8 @@ describe('writeClientCore', () => { const templates: Templates = { index: () => 'index', + modelsIndex: () => 'modelsIndex', + serviceIndex: () => 'serviceIndex', client: () => 'client', exports: { model: () => 'model', diff --git a/src/utils/writeClientIndex.spec.ts b/src/utils/writeClientIndex.spec.ts index 110494c59..2b4b6c2fa 100644 --- a/src/utils/writeClientIndex.spec.ts +++ b/src/utils/writeClientIndex.spec.ts @@ -1,8 +1,8 @@ import type { Client } from '../client/interfaces/Client'; +import { HttpClient } from '../HttpClient'; import { writeFile } from './fileSystem'; import type { Templates } from './registerHandlebarTemplates'; import { writeClientIndex } from './writeClientIndex'; -import { HttpClient } from '../HttpClient'; jest.mock('./fileSystem'); @@ -17,6 +17,8 @@ describe('writeClientIndex', () => { const templates: Templates = { index: () => 'index', + modelsIndex: () => 'modelsIndex', + serviceIndex: () => 'serviceIndex', client: () => 'client', exports: { model: () => 'model', @@ -36,7 +38,20 @@ describe('writeClientIndex', () => { }, }; - await writeClientIndex(client, templates, '/', true, true, true, true, true, 'Service', HttpClient.AXIOS, false, false); + await writeClientIndex( + client, + templates, + '/', + true, + true, + true, + true, + true, + 'Service', + HttpClient.AXIOS, + false, + false + ); expect(writeFile).toBeCalledWith('/index.ts', 'index'); }); diff --git a/src/utils/writeClientModels.spec.ts b/src/utils/writeClientModels.spec.ts index 424202590..888798cff 100644 --- a/src/utils/writeClientModels.spec.ts +++ b/src/utils/writeClientModels.spec.ts @@ -33,6 +33,8 @@ describe('writeClientModels', () => { const templates: Templates = { index: () => 'index', + modelsIndex: () => 'modelsIndex', + serviceIndex: () => 'serviceIndex', client: () => 'client', exports: { model: () => 'model', diff --git a/src/utils/writeClientSchemas.spec.ts b/src/utils/writeClientSchemas.spec.ts index 5fe8475e1..62adec085 100644 --- a/src/utils/writeClientSchemas.spec.ts +++ b/src/utils/writeClientSchemas.spec.ts @@ -33,6 +33,8 @@ describe('writeClientSchemas', () => { const templates: Templates = { index: () => 'index', + modelsIndex: () => 'modelsIndex', + serviceIndex: () => 'serviceIndex', client: () => 'client', exports: { model: () => 'model', diff --git a/src/utils/writeClientServices.spec.ts b/src/utils/writeClientServices.spec.ts index 576a1f223..f61e10f4d 100644 --- a/src/utils/writeClientServices.spec.ts +++ b/src/utils/writeClientServices.spec.ts @@ -21,6 +21,8 @@ describe('writeClientServices', () => { const templates: Templates = { index: () => 'index', + modelsIndex: () => 'modelsIndex', + serviceIndex: () => 'serviceIndex', client: () => 'client', exports: { model: () => 'model', diff --git a/src/utils/writeSaddlebackModelsIndex.ts b/src/utils/writeSaddlebackModelsIndex.ts new file mode 100644 index 000000000..5f776b95b --- /dev/null +++ b/src/utils/writeSaddlebackModelsIndex.ts @@ -0,0 +1,54 @@ +import { resolve } from 'path'; + +import type { Client } from '../client/interfaces/Client'; +import { HttpClient } from '../HttpClient'; +import { writeFile } from './fileSystem'; +import { isDefined } from './isDefined'; +import { Templates } from './registerHandlebarTemplates'; +import { sortModelsByName } from './sortModelsByName'; +import { sortServicesByName } from './sortServicesByName'; + +/** + * Generate the OpenAPI client index file using the Handlebar template and write it to disk. + * The index file just contains all the exports you need to use the client as a standalone + * library. But yuo can also import individual models and services directly. + * @param client Client object, containing, models, schemas and services + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param useUnionTypes Use union types instead of enums + * @param exportModels Generate models + * @param postfix Service name postfix + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param additionalModelFileExtension Add file extension for models *.models.* + * @param additionalServiceFileExtension Add file extension for service *.service.* + * @param clientName Custom client class name + */ +export const writeSaddlebackModelsIndex = async ( + client: Client, + templates: Templates, + outputPath: string, + useUnionTypes: boolean, + exportModels: boolean, + postfix: string, + httpClient: HttpClient, + additionalModelFileExtension: boolean, + additionalServiceFileExtension: boolean, + clientName?: string +): Promise => { + const templateResult = templates.modelsIndex({ + exportModels, + useUnionTypes, + postfix, + clientName, + server: client.server, + version: client.version, + models: sortModelsByName(client.models), + services: sortServicesByName(client.services), + exportClient: isDefined(clientName), + httpClient, + additionalModelFileExtension, + additionalServiceFileExtension, + }); + + await writeFile(resolve(outputPath, 'index.ts'), templateResult); +}; diff --git a/src/utils/writeSaddlebackServiceIndex.ts b/src/utils/writeSaddlebackServiceIndex.ts new file mode 100644 index 000000000..c7c209c58 --- /dev/null +++ b/src/utils/writeSaddlebackServiceIndex.ts @@ -0,0 +1,54 @@ +import { resolve } from 'path'; + +import type { Client } from '../client/interfaces/Client'; +import { HttpClient } from '../HttpClient'; +import { writeFile } from './fileSystem'; +import { isDefined } from './isDefined'; +import { Templates } from './registerHandlebarTemplates'; +import { sortModelsByName } from './sortModelsByName'; +import { sortServicesByName } from './sortServicesByName'; + +/** + * Generate the OpenAPI client index file using the Handlebar template and write it to disk. + * The index file just contains all the exports you need to use the client as a standalone + * library. But yuo can also import individual models and services directly. + * @param client Client object, containing, models, schemas and services + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param useUnionTypes Use union types instead of enums + * @param exportServices Generate services + * @param postfix Service name postfix + * @param httpClient The selected httpClient (fetch, xhr, node or axios) + * @param additionalModelFileExtension Add file extension for models *.models.* + * @param additionalServiceFileExtension Add file extension for service *.service.* + * @param clientName Custom client class name + */ +export const writeSaddlebackServiceIndex = async ( + client: Client, + templates: Templates, + outputPath: string, + useUnionTypes: boolean, + exportServices: boolean, + postfix: string, + httpClient: HttpClient, + additionalModelFileExtension: boolean, + additionalServiceFileExtension: boolean, + clientName?: string +): Promise => { + const templateResult = templates.serviceIndex({ + exportServices, + useUnionTypes, + postfix, + clientName, + server: client.server, + version: client.version, + models: sortModelsByName(client.models), + services: sortServicesByName(client.services), + exportClient: isDefined(clientName), + httpClient, + additionalModelFileExtension, + additionalServiceFileExtension, + }); + + await writeFile(resolve(outputPath, 'index.ts'), templateResult); +}; From c31661b9b7a9291b7e661fc67648bc8ea390e4b0 Mon Sep 17 00:00:00 2001 From: Roman P Date: Tue, 12 Jul 2022 18:16:22 +0500 Subject: [PATCH 24/52] feat: remove global generated index.ts --- src/utils/writeClient.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index 38a8cbd11..e97eba8da 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -163,7 +163,7 @@ export const writeClient = async ( ); } - if (exportCore || exportServices || exportSchemas || exportModels) { + if (exportCore || exportServices || exportSchemas || (exportModels && httpClient !== HttpClient.SADDLEBACK)) { await mkdir(outputPath); await writeClientIndex( client, From 2ecc049cc2642347e5cf5c9b8bd71eca03f491fe Mon Sep 17 00:00:00 2001 From: Roman P Date: Tue, 6 Sep 2022 18:32:44 +0500 Subject: [PATCH 25/52] feat: add include\exclude filters --- bin/saddleback.cli.js | 4 + src/generateSaddlebackSpec.ts | 97 ++++++++++++++++++- src/utils/saddleback/getNameFromRef.ts | 3 + .../saddleback/getSchemaRefFromContent.ts | 10 ++ src/utils/saddleback/getUrlByServiceEnv.ts | 1 + .../recursiveAddAllUnknownModels.ts | 21 ++++ test/index.js | 36 +++---- types/index.d.ts | 4 +- 8 files changed, 157 insertions(+), 19 deletions(-) create mode 100644 src/utils/saddleback/getNameFromRef.ts create mode 100644 src/utils/saddleback/getSchemaRefFromContent.ts create mode 100644 src/utils/saddleback/recursiveAddAllUnknownModels.ts diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index a14a0e9c5..4e1afd2cd 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -17,6 +17,8 @@ const params = program .option('-p, --password ', 'Password') .option('-e, --environment ', 'Environment dev | stage | stage2') .option('-s, --service ', 'Service ') + .option('-m, --filterMethod ', 'Filter method include(default) | exclude') + .option('-f, --filterArray ', 'Filter array') .parse(process.argv) .opts(); @@ -47,6 +49,8 @@ if (OpenAPI) { password: params.password, useEnvironment: params.environment, useService: params.service, + filterMethod: params.filterMethod, + filterArray: params.filterArray, }) .then(() => { process.exit(0); diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index b8813ec54..8557094f7 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -1,13 +1,18 @@ import { generate, Options } from './generate'; import { OpenApi } from './openApi/v3/interfaces/OpenApi'; +import { OpenApiOperation } from './openApi/v3/interfaces/OpenApiOperation'; +import { OpenApiParameter } from './openApi/v3/interfaces/OpenApiParameter'; import { OpenApiSchema } from './openApi/v3/interfaces/OpenApiSchema'; +import { OpenApiServer } from './openApi/v3/interfaces/OpenApiServer'; import { getOpenApiSpec } from './utils/getOpenApiSpec'; import { isString } from './utils/isString'; import { mapSwaggerRef } from './utils/mapSwaggerRef'; import { removeLodashPrefix } from './utils/removeLodashPrefix'; import { removeLodashPrefixFromRef } from './utils/removeLodashPrefixFromRef'; +import { getSchemaRefFromContent } from './utils/saddleback/getSchemaRefFromContent'; import { getSwaggerJsonByEnv } from './utils/saddleback/getSwaggerJsonByEnv'; import { Environment, Service } from './utils/saddleback/getUrlByServiceEnv'; +import { recursiveAddAllUnknownModels } from './utils/saddleback/recursiveAddAllUnknownModels'; import { Dictionary } from './utils/types'; type Config = Options & { @@ -19,6 +24,8 @@ type Config = Options & { password: string; useEnvironment?: Environment; useService?: Service; + filterMethod: 'include' | 'exclude'; + filterArray: string[]; }; export const generateSaddlebackSpec = async (config: Config) => { @@ -48,7 +55,95 @@ export const generateSaddlebackSpec = async (config: Config) => { mapSwaggerRef(openApi, removeLodashPrefixFromRef); - await generate({ ...config, input: openApi }); + const list: OpenApi = openApi; + + const requiredPaths: OpenApi['paths'] = {}; + + for (const path in list.paths) { + if (!list.paths.hasOwnProperty(path)) return; + + if (config.filterMethod === 'include') { + if (config.filterArray.some(it => it === path)) requiredPaths[path] = list.paths[path]; + } + if (config.filterMethod === 'exclude') { + if (!config.filterArray.some(it => it === path)) requiredPaths[path] = list.paths[path]; + } + } + + const requiredSchemasSet: Set = new Set(); + + for (const pathName in requiredPaths) { + const pathElement = requiredPaths[pathName]; + + const openApiPathValues = Object.values(pathElement) as ( + | OpenApiOperation + | OpenApiServer + | OpenApiParameter + | string + )[]; + + openApiPathValues.forEach(requestMethodData => { + if (typeof requestMethodData !== 'string') { + if (!('url' in requestMethodData)) { + if ('parameters' in requestMethodData) { + // add schemas from {apiPath}/{method}/parameters + requestMethodData.parameters?.forEach(parameter => { + const modelName = getSchemaRefFromContent(parameter); + + requiredSchemasSet.add(modelName); + recursiveAddAllUnknownModels(modelName, openApi, requiredSchemasSet); + }); + } + if ('responses' in requestMethodData) { + const responsesCodeData = Object.values(requestMethodData.responses); + + responsesCodeData.forEach(response => { + const contentTypeData = Object.values(response.content ?? {}); + + // add schemas from {apiPath}/{method}/responses/{responseType}/content + contentTypeData.forEach(content => { + const modelName = getSchemaRefFromContent(content); + + requiredSchemasSet.add(getSchemaRefFromContent(content)); + recursiveAddAllUnknownModels(modelName, openApi, requiredSchemasSet); + }); + }); + } + if ('requestBody' in requestMethodData) { + const requestBodyContent = Object.values(requestMethodData.requestBody?.content ?? {}); + + // add schemas from {apiPath}/{method}/responses/{responseType}/requestBody/content + requestBodyContent.forEach(content => { + const modelName = getSchemaRefFromContent(content); + + requiredSchemasSet.add(getSchemaRefFromContent(content)); + recursiveAddAllUnknownModels(modelName, openApi, requiredSchemasSet); + }); + } + } + } + }); + } + + const requiredSchemas: Dictionary = {}; + + if (list && list.components && list.components.schemas) { + for (const schema in list.components.schemas) { + if (requiredSchemasSet.has(schema)) { + requiredSchemas[schema] = list.components.schemas[schema]; + } + } + } + + const listWithRequiredPaths: OpenApi = { + ...list, + paths: requiredPaths, + components: { + schemas: requiredSchemas, + }, + }; + + await generate({ ...config, input: listWithRequiredPaths }); }; export default generateSaddlebackSpec; diff --git a/src/utils/saddleback/getNameFromRef.ts b/src/utils/saddleback/getNameFromRef.ts new file mode 100644 index 000000000..2c6262f62 --- /dev/null +++ b/src/utils/saddleback/getNameFromRef.ts @@ -0,0 +1,3 @@ +export const getNameFromRef = (ref: string): string => { + return ref.split('/').slice(-1)[0]; +}; diff --git a/src/utils/saddleback/getSchemaRefFromContent.ts b/src/utils/saddleback/getSchemaRefFromContent.ts new file mode 100644 index 000000000..2d2f43b12 --- /dev/null +++ b/src/utils/saddleback/getSchemaRefFromContent.ts @@ -0,0 +1,10 @@ +import { OpenApiMediaType } from '../../openApi/v3/interfaces/OpenApiMediaType'; +import { getNameFromRef } from './getNameFromRef'; + +export const getSchemaRefFromContent = (content: OpenApiMediaType): string => { + let ref: string = ''; + + ref = content.$ref || content.schema?.$ref || content.schema?.items?.$ref || ''; + + return getNameFromRef(ref); +}; diff --git a/src/utils/saddleback/getUrlByServiceEnv.ts b/src/utils/saddleback/getUrlByServiceEnv.ts index 4717e2f31..b45200041 100644 --- a/src/utils/saddleback/getUrlByServiceEnv.ts +++ b/src/utils/saddleback/getUrlByServiceEnv.ts @@ -9,6 +9,7 @@ export enum Environment { Dev = 'dev', Stage = 'stage', Stage2 = 'stage2', + Feature = 'feature', } export const getUrlByServiceEnv = ({ env, service }: { service: Service; env: Environment }): string => { diff --git a/src/utils/saddleback/recursiveAddAllUnknownModels.ts b/src/utils/saddleback/recursiveAddAllUnknownModels.ts new file mode 100644 index 000000000..f6bbdebee --- /dev/null +++ b/src/utils/saddleback/recursiveAddAllUnknownModels.ts @@ -0,0 +1,21 @@ +import { OpenApi } from '../../openApi/v3/interfaces/OpenApi'; +import { getNameFromRef } from './getNameFromRef'; + +export const recursiveAddAllUnknownModels = ( + modelName: string, + openApi: OpenApi, + requiredSchemasSet: Set +): void => { + const model = openApi.components?.schemas ? openApi.components.schemas[modelName] : undefined; + if (model === undefined) return; + + for (const property in model.properties) { + const ref = model.properties[property].$ref || model.properties[property].items?.$ref || ''; + const modelName = getNameFromRef(ref); + + if (!requiredSchemasSet.has(modelName)) { + requiredSchemasSet.add(modelName); + recursiveAddAllUnknownModels(modelName, openApi, requiredSchemasSet); + } + } +}; diff --git a/test/index.js b/test/index.js index e044475b8..8c25a288c 100644 --- a/test/index.js +++ b/test/index.js @@ -75,32 +75,34 @@ const main = async () => { removeLodashPrefixes: true, username: 'roman.tech48@gmail.com', password: `&cY8at<'S5PfJa#k`, - useEnvironment: 'stage2', + useEnvironment: 'feature', + filterMethod: 'include', }; // await OpenAPI.generateSaddlebackSpec({ // output: './test/auto', // ...config, // }); - await OpenAPI.generateSaddlebackSpec({ - useService: 'core', - output: './auto/core', - ...config, - }); + // await OpenAPI.generateSaddlebackSpec({ + // useService: 'core', + // output: './auto/core', + // ...config, + // }); await OpenAPI.generateSaddlebackSpec({ useService: 'event', - output: './auto/event', - ...config, - }); - await OpenAPI.generateSaddlebackSpec({ - useService: 'workflows', - output: './auto/workflows', - ...config, - }); - await OpenAPI.generateSaddlebackSpec({ - useService: 'notifications', - output: './auto/notifications', + output: './auto2/event', + filterArray: ['/api/event/{id}'], ...config, }); + // await OpenAPI.generateSaddlebackSpec({ + // useService: 'workflows', + // output: './auto/workflows', + // ...config, + // }); + // await OpenAPI.generateSaddlebackSpec({ + // useService: 'notifications', + // output: './auto/notifications', + // ...config, + // }); // await generateRealWorldSpecs(); }; diff --git a/types/index.d.ts b/types/index.d.ts index 57f5f6a04..a5146a2b9 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -43,8 +43,10 @@ export type CustomConfig = Options & { useAutoEventService?: boolean; useAutoNotificationService?: boolean; useAutoWorkflowsService?: boolean; - useEnvironment?: Environment | 'dev' | 'stage' | 'stage2'; + useEnvironment?: Environment | 'dev' | 'stage' | 'stage2' | 'feature'; useService?: Service | 'workflows' | 'event' | 'notifications' | 'core'; + filterMethod: 'include' | 'exclude'; + filterArray: string[]; }; export declare function generate(options: Options): Promise; From 8e9830e514031a5be04a7d4e44e798905fab7df6 Mon Sep 17 00:00:00 2001 From: Roman P Date: Tue, 6 Sep 2022 18:36:14 +0500 Subject: [PATCH 26/52] feat: handle empty filter array --- src/generateSaddlebackSpec.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index 8557094f7..517cfd395 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -57,6 +57,11 @@ export const generateSaddlebackSpec = async (config: Config) => { const list: OpenApi = openApi; + if (!config.filterArray || config.filterArray.length === 0) { + await generate({ ...config, input: list }); + return; + } + const requiredPaths: OpenApi['paths'] = {}; for (const path in list.paths) { From 8478c91284b32ab175a78780930ea9e6b48a90c2 Mon Sep 17 00:00:00 2001 From: Roman P Date: Tue, 6 Sep 2022 18:41:41 +0500 Subject: [PATCH 27/52] fix: cli argument order --- bin/saddleback.cli.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index 4e1afd2cd..e64fb09bb 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -43,14 +43,14 @@ if (OpenAPI) { additionalServiceFileExtension: true, removeLodashPrefixes: true, ...config, - input: params.input, - output: params.output, - username: params.login, - password: params.password, - useEnvironment: params.environment, - useService: params.service, - filterMethod: params.filterMethod, - filterArray: params.filterArray, + input: params.input || config.input, + output: params.output || config.output, + username: params.login || config.login, + password: params.password || config.password, + useEnvironment: params.environment || config.environment, + useService: params.service || config.service, + filterMethod: params.filterMethod || config.filterMethod || 'include', + filterArray: params.filterArray || config.filterArray || [], }) .then(() => { process.exit(0); From 70c097aef4746b0fb5b7666c8e6e05b3ebcb4927 Mon Sep 17 00:00:00 2001 From: Roman P Date: Wed, 7 Sep 2022 17:46:16 +0500 Subject: [PATCH 28/52] update README --- README.md | 2 ++ package.json | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1ed008283..cbdc5d465 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,8 @@ $ saddlebackOpenapi --help -e, --environment Environment dev | stage | stage2 -s, --service Service 'workflows' | 'event' | 'notifications' | 'core' -h, --help display help for command + -m, --filterMethod Filter method include(default) | exclude') + -f, --filterArray Filter array Examples $ saddlebackOpenApi --input ./spec.json --output ./generated diff --git a/package.json b/package.json index 808f43c39..448f49ee7 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,10 @@ "commander": "^9.3.0", "fs-extra": "^10.1.0", "handlebars": "^4.7.7", - "json-schema-ref-parser": "^9.0.9" + "json-schema-ref-parser": "^9.0.9", + "@rollup/plugin-commonjs": "22.0.0", + "@rollup/plugin-node-resolve": "13.3.0", + "@rollup/plugin-typescript": "8.3.2" }, "devDependencies": { "@angular-devkit/build-angular": "13.3.7", @@ -85,9 +88,6 @@ "@babel/core": "7.18.2", "@babel/preset-env": "7.18.2", "@babel/preset-typescript": "7.17.12", - "@rollup/plugin-commonjs": "22.0.0", - "@rollup/plugin-node-resolve": "13.3.0", - "@rollup/plugin-typescript": "8.3.2", "@types/cross-spawn": "6.0.2", "@types/express": "4.17.13", "@types/fs-extra": "^9.0.13", From accba3fb70f3edc884ecc012851d596099711290 Mon Sep 17 00:00:00 2001 From: Roman P Date: Wed, 7 Sep 2022 18:31:55 +0500 Subject: [PATCH 29/52] update package name --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 448f49ee7..fe58a9f9d 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "openapi-typescript-codegen", + "name": "saddleback-openapi-typescript-codegen", "version": "0.23.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", From 1eba12a5c2abd3c3ba5e602d868b00a7b2011ae2 Mon Sep 17 00:00:00 2001 From: Roman P Date: Wed, 7 Sep 2022 18:40:02 +0500 Subject: [PATCH 30/52] update package name --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index fe58a9f9d..6f55002c2 100644 --- a/package.json +++ b/package.json @@ -67,10 +67,7 @@ "commander": "^9.3.0", "fs-extra": "^10.1.0", "handlebars": "^4.7.7", - "json-schema-ref-parser": "^9.0.9", - "@rollup/plugin-commonjs": "22.0.0", - "@rollup/plugin-node-resolve": "13.3.0", - "@rollup/plugin-typescript": "8.3.2" + "json-schema-ref-parser": "^9.0.9" }, "devDependencies": { "@angular-devkit/build-angular": "13.3.7", @@ -88,6 +85,9 @@ "@babel/core": "7.18.2", "@babel/preset-env": "7.18.2", "@babel/preset-typescript": "7.17.12", + "@rollup/plugin-commonjs": "22.0.0", + "@rollup/plugin-node-resolve": "13.3.0", + "@rollup/plugin-typescript": "8.3.2", "@types/cross-spawn": "6.0.2", "@types/express": "4.17.13", "@types/fs-extra": "^9.0.13", From f00a2936398dc2744d55cc105cd58d89d4fae2e6 Mon Sep 17 00:00:00 2001 From: Roman P Date: Wed, 7 Sep 2022 18:45:16 +0500 Subject: [PATCH 31/52] remove pass and config --- openapi.config.json | 14 - package-lock.json | 17314 +++++++++++++++++++++++++++++++++++++++++- test/index.js | 2 - 3 files changed, 17271 insertions(+), 59 deletions(-) delete mode 100644 openapi.config.json diff --git a/openapi.config.json b/openapi.config.json deleted file mode 100644 index 061ed0aba..000000000 --- a/openapi.config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "input": "./test/spec/saddlebackApi.json", - "output": "./test/test/saddleback/", - "httpClient": "saddleback", - "clientName": "", - "useOptions": true, - "useUnionTypes": false, - "exportCore": false, - "exportServices": true, - "exportModels": true, - "exportSchemas": false, - "indent": "4", - "postfix": "" -} diff --git a/package-lock.json b/package-lock.json index ab5f8d06c..29d98d469 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,17212 @@ { - "name": "openapi-typescript-codegen", + "name": "saddleback-openapi-typescript-codegen", "version": "0.23.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "saddleback-openapi-typescript-codegen", + "version": "0.23.0", + "license": "MIT", + "dependencies": { + "camelcase": "^6.3.0", + "commander": "^9.3.0", + "fs-extra": "^10.1.0", + "handlebars": "^4.7.7", + "json-schema-ref-parser": "^9.0.9" + }, + "bin": { + "openapi": "bin/index.js", + "saddlebackOpenapi": "bin/saddleback.cli.js" + }, + "devDependencies": { + "@angular-devkit/build-angular": "13.3.7", + "@angular/animations": "13.3.10", + "@angular/cli": "13.3.7", + "@angular/common": "13.3.10", + "@angular/compiler": "13.3.10", + "@angular/compiler-cli": "13.3.10", + "@angular/core": "13.3.10", + "@angular/forms": "13.3.10", + "@angular/platform-browser": "13.3.10", + "@angular/platform-browser-dynamic": "13.3.10", + "@angular/router": "13.3.10", + "@babel/cli": "7.17.10", + "@babel/core": "7.18.2", + "@babel/preset-env": "7.18.2", + "@babel/preset-typescript": "7.17.12", + "@rollup/plugin-commonjs": "22.0.0", + "@rollup/plugin-node-resolve": "13.3.0", + "@rollup/plugin-typescript": "8.3.2", + "@types/cross-spawn": "6.0.2", + "@types/express": "4.17.13", + "@types/fs-extra": "^9.0.13", + "@types/glob": "7.2.0", + "@types/jest": "27.5.1", + "@types/node": "17.0.38", + "@types/node-fetch": "2.6.1", + "@types/qs": "6.9.7", + "@typescript-eslint/eslint-plugin": "5.27.0", + "@typescript-eslint/parser": "5.27.0", + "abort-controller": "3.0.0", + "axios": "0.27.2", + "codecov": "3.8.3", + "cross-spawn": "7.0.3", + "eslint": "8.16.0", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-prettier": "4.0.0", + "eslint-plugin-simple-import-sort": "7.0.0", + "express": "4.18.1", + "form-data": "4.0.0", + "glob": "8.0.3", + "jest": "28.1.0", + "jest-cli": "28.1.0", + "node-fetch": "2.6.7", + "prettier": "2.6.2", + "puppeteer": "14.1.2", + "qs": "6.10.3", + "rimraf": "3.0.2", + "rollup": "2.75.4", + "rollup-plugin-terser": "7.0.2", + "rxjs": "7.5.5", + "ts-node": "10.8.0", + "tslib": "2.4.0", + "typescript": "4.6.4", + "zone.js": "0.11.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1303.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.7.tgz", + "integrity": "sha512-xr35v7AuJygRdiaFhgoBSLN2ZMUri8x8Qx9jkmCkD3WLKz33TSFyAyqwdNNmOO9riK8ePXMH/QcSv0wY12pFBw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.7", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.7.tgz", + "integrity": "sha512-XUmiq/3zpuna+r0UOqNSvA9kEcPwsLblEmNLUYyZXL9v/aGWUHOSH0nhGVrNRrSud4ryklEnxfkxkxlZlT4mjQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.0", + "@angular-devkit/architect": "0.1303.7", + "@angular-devkit/build-webpack": "0.1303.7", + "@angular-devkit/core": "13.3.7", + "@babel/core": "7.16.12", + "@babel/generator": "7.16.8", + "@babel/helper-annotate-as-pure": "7.16.7", + "@babel/plugin-proposal-async-generator-functions": "7.16.8", + "@babel/plugin-transform-async-to-generator": "7.16.8", + "@babel/plugin-transform-runtime": "7.16.10", + "@babel/preset-env": "7.16.11", + "@babel/runtime": "7.16.7", + "@babel/template": "7.16.7", + "@discoveryjs/json-ext": "0.5.6", + "@ngtools/webpack": "13.3.7", + "ansi-colors": "4.1.1", + "babel-loader": "8.2.5", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.9.1", + "cacache": "15.3.0", + "circular-dependency-plugin": "5.2.2", + "copy-webpack-plugin": "10.2.1", + "core-js": "3.20.3", + "critters": "0.0.16", + "css-loader": "6.5.1", + "esbuild-wasm": "0.14.22", + "glob": "7.2.0", + "https-proxy-agent": "5.0.0", + "inquirer": "8.2.0", + "jsonc-parser": "3.0.0", + "karma-source-map-support": "1.4.0", + "less": "4.1.2", + "less-loader": "10.2.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.0", + "mini-css-extract-plugin": "2.5.3", + "minimatch": "3.0.5", + "open": "8.4.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "6.0.1", + "piscina": "3.2.0", + "postcss": "8.4.5", + "postcss-import": "14.0.2", + "postcss-loader": "6.2.1", + "postcss-preset-env": "7.2.3", + "regenerator-runtime": "0.13.9", + "resolve-url-loader": "5.0.0", + "rxjs": "6.6.7", + "sass": "1.49.9", + "sass-loader": "12.4.0", + "semver": "7.3.5", + "source-map-loader": "3.0.1", + "source-map-support": "0.5.21", + "stylus": "0.56.0", + "stylus-loader": "6.2.0", + "terser": "5.11.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.3.1", + "webpack": "5.70.0", + "webpack-dev-middleware": "5.3.0", + "webpack-dev-server": "4.7.3", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.14.22" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0 || ^13.3.0-rc.0", + "@angular/localize": "^13.0.0 || ^13.3.0-rc.0", + "@angular/service-worker": "^13.0.0 || ^13.3.0-rc.0", + "karma": "^6.3.0", + "ng-packagr": "^13.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=4.4.3 <4.7" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", + "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.12", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/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/@angular-devkit/build-angular/node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/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/@angular-devkit/build-angular/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1303.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.7.tgz", + "integrity": "sha512-5vF399cPdwuCbzbxS4yNGgChdAzEM0/By21P0uiqBcIe/Zxuz3IUPapjvcyhkAo5OTu+d7smY9eusLHqoq1WFQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1303.7", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/core": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.7.tgz", + "integrity": "sha512-Ucy4bJmlgCoBenuVeGMdtW9dE8+cD+guWCgqexsFIG21KJ/l0ShZEZ/dGC1XibzaIs1HbKiTr/T1MOjInCV1rA==", + "dev": true, + "dependencies": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/schematics": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.7.tgz", + "integrity": "sha512-6TKpFMwiiXmPhiVdbkSJrkBXj8n7SVVhsHl2GodDLVTb8OT3fxYIB9EU8Il07AMfDcjpydOcJduCFPOsQYd7BA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.7", + "jsonc-parser": "3.0.0", + "magic-string": "0.25.7", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular/animations": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.3.10.tgz", + "integrity": "sha512-V/0h3xepWPBRjWroFXYrNIE3iZPREjv0hiB3gskF/2KLlx5jvpUWlaBx0rEYRa8XXIPJyAaKBGwWSBnT/Z88TQ==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.3.10" + } + }, + "node_modules/@angular/cli": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.7.tgz", + "integrity": "sha512-XIp0w0YOwhHp4Je3npHAs0W4rjHvFnG2w/lDO2M/UNp5634S4PRMFmVVMt6DQBj1cbffYVKFqffqesyCqNuvAQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@angular-devkit/architect": "0.1303.7", + "@angular-devkit/core": "13.3.7", + "@angular-devkit/schematics": "13.3.7", + "@schematics/angular": "13.3.7", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.3", + "ini": "2.0.0", + "inquirer": "8.2.0", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.5", + "npm-pick-manifest": "6.1.1", + "open": "8.4.0", + "ora": "5.4.1", + "pacote": "12.0.3", + "resolve": "1.22.0", + "semver": "7.3.5", + "symbol-observable": "4.0.0", + "uuid": "8.3.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.10.tgz", + "integrity": "sha512-KWw91QzmCDZ6uq1Z58v7vQQ57Ux7A2UkPdIBOyvpOgtQPTvlvKsePkUVCC+dum+W9mOy4kq2falO5T7Gi7SJgw==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.3.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.3.10.tgz", + "integrity": "sha512-DEtdso89Q9lAGkSVpSf2GrMtGVTnCnenCwLhubYaeSaj4iA/CAnUfNlaYBf9E92ltuPd85Mg9bIJKaxYCRH8RQ==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.3.10.tgz", + "integrity": "sha512-cGFQyUOxOLVnehczdP4L7KXbKQTe/aQgbXmacQYgqcP/AnpJs7QfZbw1/k1wJtXrhzbGBh3JSWnpme74bnF3dQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.17.2", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.26.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/main-ngcc.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/compiler": "13.3.10", + "typescript": ">=4.4.2 <4.7" + } + }, + "node_modules/@angular/compiler-cli/node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/core": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.10.tgz", + "integrity": "sha512-7jH1a5wZdE6Ki2Dow7s6v1/5SfUcXsjAu3n523QSDlM078QG0p95npcqPseO9mNftG9MfRqBE7sl1Nb+ZK7eBg==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.11.4" + } + }, + "node_modules/@angular/forms": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.3.10.tgz", + "integrity": "sha512-2cREi8nvCdspYHk6KJ5xjIgq8Dgh/kfwPIVjpLQBZFNC03Q6GvOLVoVm8ye6ToOpQFjvjpjndqU93JXSLMANgA==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.10", + "@angular/core": "13.3.10", + "@angular/platform-browser": "13.3.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.10.tgz", + "integrity": "sha512-zi0FrA8zZRiHLBfKlfIxikG06wMF2KcSp6oqrIblrc1VrHgPRVRABz8vryH84lasDssjYdIS9AvbQnCCdgCzJA==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/animations": "13.3.10", + "@angular/common": "13.3.10", + "@angular/core": "13.3.10" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.10.tgz", + "integrity": "sha512-hygsEjTaS+VDUrBZZiRJFo5J7AHCS/EcAc1IWvb69EnVqA9RwqM4hWbuy3y/cmLEeHLLmRldIlS6xRPt8fTNQg==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.10", + "@angular/compiler": "13.3.10", + "@angular/core": "13.3.10", + "@angular/platform-browser": "13.3.10" + } + }, + "node_modules/@angular/router": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.10.tgz", + "integrity": "sha512-neGaeiHravXlCbNbyGJecwQyu/91Pj/E9/ohVFzBBE4V9BrNx9v7Ntc4ugqgpnrV2wtonPP7TQDqXxrPk4QVfg==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.10", + "@angular/core": "13.3.10", + "@angular/platform-browser": "13.3.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser/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/@apidevtools/json-schema-ref-parser/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/@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "node_modules/@babel/cli": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.17.10.tgz", + "integrity": "sha512-OygVO1M2J4yPMNOW9pb+I6kFGpQK77HmG44Oz3hg8xQIl5L/2zq+ZohwAdSaqYgVwM0SfmPHZHphH4wR8qzVYw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/cli/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@babel/cli/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/@babel/cli/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/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", + "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", + "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/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/@babel/generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/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/@babel/helper-create-class-features-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/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/@babel/helper-environment-visitor": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "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-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "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-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-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "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.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", + "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz", + "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", + "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", + "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/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/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", + "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-typescript": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.18.1", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.18.2", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.2", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/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/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", + "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", + "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", + "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.0", + "@babel/types": "^7.18.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "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/@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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz", + "integrity": "sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "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" + } + }, + "node_modules/@eslint/eslintrc/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/@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.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "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/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/@eslint/eslintrc/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/@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/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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/@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": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.0.tgz", + "integrity": "sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.0", + "jest-util": "^28.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/core": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.0.tgz", + "integrity": "sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.0", + "@jest/reporters": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.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": "^28.0.2", + "jest-config": "^28.1.0", + "jest-haste-map": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.0", + "jest-resolve-dependencies": "^28.1.0", + "jest-runner": "^28.1.0", + "jest-runtime": "^28.1.0", + "jest-snapshot": "^28.1.0", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "jest-watcher": "^28.1.0", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/core/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/@jest/core/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/@jest/core/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/@jest/core/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/@jest/environment": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.0.tgz", + "integrity": "sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "jest-mock": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.0.tgz", + "integrity": "sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA==", + "dev": true, + "dependencies": { + "expect": "^28.1.0", + "jest-snapshot": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.0.tgz", + "integrity": "sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.0.tgz", + "integrity": "sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "@sinonjs/fake-timers": "^9.1.1", + "@types/node": "*", + "jest-message-util": "^28.1.0", + "jest-mock": "^28.1.0", + "jest-util": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.0.tgz", + "integrity": "sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.0", + "@jest/expect": "^28.1.0", + "@jest/types": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.0.tgz", + "integrity": "sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "@jridgewell/trace-mapping": "^0.3.7", + "@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-util": "^28.1.0", + "jest-worker": "^28.1.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/schemas": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.0.2.tgz", + "integrity": "sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.23.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.0.2.tgz", + "integrity": "sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.7", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.0.tgz", + "integrity": "sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz", + "integrity": "sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/test-sequencer/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/@jest/transform": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.0.tgz", + "integrity": "sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.0", + "@jridgewell/trace-mapping": "^0.3.7", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/transform/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/@jest/types": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.0.tgz", + "integrity": "sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "@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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, + "node_modules/@ngtools/webpack": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", + "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0", + "typescript": ">=4.4.3 <4.7", + "webpack": "^5.30.0" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": 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/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", + "dev": true + }, + "node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "dependencies": { + "infer-owner": "^1.0.4" + } + }, + "node_modules/@npmcli/run-script": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", + "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^8.2.0", + "read-package-json-fast": "^2.0.1" + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", + "integrity": "sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0" + } + }, + "node_modules/@rollup/plugin-commonjs/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/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz", + "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0", + "tslib": "*", + "typescript": ">=3.7.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@schematics/angular": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.7.tgz", + "integrity": "sha512-OAny1e/yliku52xG7vfWs1hNYSgCNTPpMv9fS8zz9eF5/GrKv28WFSy20mUXqLZ91VsbGSs6X0mI6pdNnpVtJA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.7", + "@angular-devkit/schematics": "13.3.7", + "jsonc-parser": "3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.23.5.tgz", + "integrity": "sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@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.17.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", + "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cross-spawn": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.2.tgz", + "integrity": "sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.2.tgz", + "integrity": "sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "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": "27.5.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-fUy7YRpT+rHXto1YlL+J9rs0uLGyiqVt3ZOTQR+4ROc47yNl8WLdVLgUloBRhOxP1PZvguHl44T3H0wAWxahYQ==", + "dev": true, + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "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==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "17.0.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.38.tgz", + "integrity": "sha512-5jY9RhV7c0Z4Jy09G+NIDTsCZ5G0L5n+Z+p+Y7t5VJHM30bgwzSjVtlcBxqAj+6L/swIlvtOSzr8rBk/aNyV2g==", + "dev": true + }, + "node_modules/@types/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/prettier": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", + "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@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/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", + "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "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/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz", + "integrity": "sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.0", + "@typescript-eslint/type-utils": "5.27.0", + "@typescript-eslint/utils": "5.27.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.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/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/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.0.tgz", + "integrity": "sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.27.0", + "@typescript-eslint/types": "5.27.0", + "@typescript-eslint/typescript-estree": "5.27.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/parser/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/@typescript-eslint/scope-manager": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz", + "integrity": "sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.27.0", + "@typescript-eslint/visitor-keys": "5.27.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.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz", + "integrity": "sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.27.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/type-utils/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/@typescript-eslint/types": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.0.tgz", + "integrity": "sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A==", + "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.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz", + "integrity": "sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.27.0", + "@typescript-eslint/visitor-keys": "5.27.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/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/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.0.tgz", + "integrity": "sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.27.0", + "@typescript-eslint/types": "5.27.0", + "@typescript-eslint/typescript-estree": "5.27.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "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/visitor-keys": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz", + "integrity": "sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.27.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/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "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/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "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==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/agentkeepalive/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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": "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/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", + "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==", + "dev": true, + "engines": { + "node": ">=0.6.10" + } + }, + "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==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "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/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", + "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/babel-jest": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.0.tgz", + "integrity": "sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w==", + "dev": true, + "dependencies": { + "@jest/transform": "^28.1.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.0.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/babel-loader/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/babel-loader/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/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.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": "28.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz", + "integrity": "sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ==", + "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": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/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/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.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": "28.0.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz", + "integrity": "sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^28.0.2", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, + "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.10.3", + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/bonjour/node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "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/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.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", + "escalade": "^3.1.1", + "node-releases": "^2.0.3", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/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/cacache/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/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" + }, + "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": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001344", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", + "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "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/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/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "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/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "dev": true + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.1" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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/codecov": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", + "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", + "deprecated": "https://about.codecov.io/blog/codecov-uploader-deprecation-plan/", + "dev": true, + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.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": "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/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/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "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": "9.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", + "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/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/compression/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/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/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "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==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/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==", + "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/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", + "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/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/copy-webpack-plugin/node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", + "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.22.7", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.7.tgz", + "integrity": "sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/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/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true + }, + "node_modules/critters": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", + "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^4.2.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "postcss": "^8.3.7", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/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/critters/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/critters/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/critters/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/critters/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/critters/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/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "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/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", + "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "dev": true, + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssdb": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", + "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "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/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/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/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/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "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/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/devtools-protocol": { + "version": "0.0.982423", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.982423.tgz", + "integrity": "sha512-FnVW2nDbjGNw1uD/JRC+9U5768W7e1TfUwqbDTcSsAu1jXFjITSX8w3rkW5FEpHRMPPGpvNSmO1pOpqByiWscA==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "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/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=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==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.142", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.142.tgz", + "integrity": "sha512-ea8Q1YX0JRp4GylOmX4gFHIizi0j9GfRW4EkaHnkZp0agRCBB4ZGeCv17IEzIvBkiYVwfoKVhKZJbTfqCRdQdg==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "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/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", + "integrity": "sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.14.22", + "esbuild-darwin-64": "0.14.22", + "esbuild-darwin-arm64": "0.14.22", + "esbuild-freebsd-64": "0.14.22", + "esbuild-freebsd-arm64": "0.14.22", + "esbuild-linux-32": "0.14.22", + "esbuild-linux-64": "0.14.22", + "esbuild-linux-arm": "0.14.22", + "esbuild-linux-arm64": "0.14.22", + "esbuild-linux-mips64le": "0.14.22", + "esbuild-linux-ppc64le": "0.14.22", + "esbuild-linux-riscv64": "0.14.22", + "esbuild-linux-s390x": "0.14.22", + "esbuild-netbsd-64": "0.14.22", + "esbuild-openbsd-64": "0.14.22", + "esbuild-sunos-64": "0.14.22", + "esbuild-windows-32": "0.14.22", + "esbuild-windows-64": "0.14.22", + "esbuild-windows-arm64": "0.14.22" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.22.tgz", + "integrity": "sha512-k1Uu4uC4UOFgrnTj2zuj75EswFSEBK+H6lT70/DdS4mTAOfs2ECv2I9ZYvr3w0WL0T4YItzJdK7fPNxcPw6YmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.22.tgz", + "integrity": "sha512-d8Ceuo6Vw6HM3fW218FB6jTY6O3r2WNcTAU0SGsBkXZ3k8SDoRLd3Nrc//EqzdgYnzDNMNtrWegK2Qsss4THhw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.22.tgz", + "integrity": "sha512-YAt9Tj3SkIUkswuzHxkaNlT9+sg0xvzDvE75LlBo4DI++ogSgSmKNR6B4eUhU5EUUepVXcXdRIdqMq9ppeRqfw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.22.tgz", + "integrity": "sha512-ek1HUv7fkXMy87Qm2G4IRohN+Qux4IcnrDBPZGXNN33KAL0pEJJzdTv0hB/42+DCYWylSrSKxk3KUXfqXOoH4A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.22.tgz", + "integrity": "sha512-zPh9SzjRvr9FwsouNYTqgqFlsMIW07O8mNXulGeQx6O5ApgGUBZBgtzSlBQXkHi18WjrosYfsvp5nzOKiWzkjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.22.tgz", + "integrity": "sha512-SnpveoE4nzjb9t2hqCIzzTWBM0RzcCINDMBB67H6OXIuDa4KqFqaIgmTchNA9pJKOVLVIKd5FYxNiJStli21qg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz", + "integrity": "sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.22.tgz", + "integrity": "sha512-soPDdbpt/C0XvOOK45p4EFt8HbH5g+0uHs5nUKjHVExfgR7du734kEkXR/mE5zmjrlymk5AA79I0VIvj90WZ4g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.22.tgz", + "integrity": "sha512-8q/FRBJtV5IHnQChO3LHh/Jf7KLrxJ/RCTGdBvlVZhBde+dk3/qS9fFsUy+rs3dEi49aAsyVitTwlKw1SUFm+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.22.tgz", + "integrity": "sha512-SiNDfuRXhGh1JQLLA9JPprBgPVFOsGuQ0yDfSPTNxztmVJd8W2mX++c4FfLpAwxuJe183mLuKf7qKCHQs5ZnBQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.22.tgz", + "integrity": "sha512-6t/GI9I+3o1EFm2AyN9+TsjdgWCpg2nwniEhjm2qJWtJyJ5VzTXGUU3alCO3evopu8G0hN2Bu1Jhz2YmZD0kng==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.22.tgz", + "integrity": "sha512-AyJHipZKe88sc+tp5layovquw5cvz45QXw5SaDgAq2M911wLHiCvDtf/07oDx8eweCyzYzG5Y39Ih568amMTCQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.22.tgz", + "integrity": "sha512-Sz1NjZewTIXSblQDZWEFZYjOK6p8tV6hrshYdXZ0NHTjWE+lwxpOpWeElUGtEmiPcMT71FiuA9ODplqzzSxkzw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.22.tgz", + "integrity": "sha512-TBbCtx+k32xydImsHxvFgsOCuFqCTGIxhzRNbgSL1Z2CKhzxwT92kQMhxort9N/fZM2CkRCPPs5wzQSamtzEHA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.22.tgz", + "integrity": "sha512-vK912As725haT313ANZZZN+0EysEEQXWC/+YE4rQvOQzLuxAQc2tjbzlAFREx3C8+uMuZj/q7E5gyVB7TzpcTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.22.tgz", + "integrity": "sha512-/mbJdXTW7MTcsPhtfDsDyPEOju9EOABvCjeUU2OJ7fWpX/Em/H3WYDa86tzLUbcVg++BScQDzqV/7RYw5XNY0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.22.tgz", + "integrity": "sha512-FOSAM29GN1fWusw0oLMv6JYhoheDIh5+atC72TkJKfIUMID6yISlicoQSd9gsNSFsNBvABvtE2jR4JB1j4FkFw==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.22.tgz", + "integrity": "sha512-1vRIkuvPTjeSVK3diVrnMLSbkuE36jxA+8zGLUOrT4bb7E/JZvDRhvtbWXWaveUc/7LbhaNFhHNvfPuSw2QOQg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.22.tgz", + "integrity": "sha512-AxjIDcOmx17vr31C5hp20HIwz1MymtMjKqX4qL6whPj0dT9lwxPexmLj6G1CpR3vFhui6m75EnBEe4QL82SYqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.22.tgz", + "integrity": "sha512-5wvQ+39tHmRhNpu2Fx04l7QfeK3mQ9tKzDqqGR8n/4WUxsFxnVLfDRBGirIfk4AfWlxk60kqirlODPoT5LqMUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true + }, + "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/eslint": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "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.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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", + "v8-compile-cache": "^2.0.3" + }, + "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-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-simple-import-sort": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", + "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", + "dev": true, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.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/eslint/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/eslint/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/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/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/eslint/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/eslint/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/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/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/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/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.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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/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/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/eslint/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/eslint/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/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.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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/esquery/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/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/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "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", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "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": "28.1.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.0.tgz", + "integrity": "sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^28.1.0", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-util": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/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/expect/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/expect/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/expect/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/expect/node_modules/diff-sequences": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", + "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/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/expect/node_modules/jest-diff": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", + "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.0.2", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/jest-matcher-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", + "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/expect/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/expect/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/expect/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/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "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.10.3", + "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/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/express/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/express/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==", + "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/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "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-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==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/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==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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", + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/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/find-cache-dir/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/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/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.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "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/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "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/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==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "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": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "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/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/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "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/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/globby/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/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "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/handlebars/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/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, + "node_modules/hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "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-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "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==", + "dev": true, + "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/http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "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/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "dependencies": { + "ms": "^2.0.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==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "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", + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.2.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true + }, + "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-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "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-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-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "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/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "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-instrument/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/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-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "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/istanbul-lib-report/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/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.0.tgz", + "integrity": "sha512-TZR+tHxopPhzw3c3560IJXZWLNHgpcz1Zh0w5A65vynLGNcg/5pZ+VildAd7+XGOu6jd58XMY/HNn0IkZIXVXg==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.0", + "import-local": "^3.0.2", + "jest-cli": "^28.1.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.0.2.tgz", + "integrity": "sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.0.tgz", + "integrity": "sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.0", + "@jest/expect": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.0", + "jest-matcher-utils": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-runtime": "^28.1.0", + "jest-snapshot": "^28.1.0", + "jest-util": "^28.1.0", + "pretty-format": "^28.1.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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/jest-circus/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/jest-circus/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/jest-circus/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/jest-circus/node_modules/diff-sequences": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", + "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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/jest-circus/node_modules/jest-diff": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", + "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.0.2", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", + "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-circus/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/jest-circus/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-circus/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/jest-circus/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/jest-cli": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.0.tgz", + "integrity": "sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ==", + "dev": true, + "dependencies": { + "@jest/core": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/types": "^28.1.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.0", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.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/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-config": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.0.tgz", + "integrity": "sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.0", + "@jest/types": "^28.1.0", + "babel-jest": "^28.1.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": "^28.1.0", + "jest-environment-node": "^28.1.0", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.0", + "jest-runner": "^28.1.0", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-config/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-config/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/jest-config/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-config/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/jest-config/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/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/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/jest-docblock": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.0.2.tgz", + "integrity": "sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.0.tgz", + "integrity": "sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.0", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/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/jest-each/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/jest-each/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/jest-each/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/jest-each/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/jest-each/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-each/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/jest-each/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-each/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/jest-environment-node": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.0.tgz", + "integrity": "sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.0", + "@jest/fake-timers": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "jest-mock": "^28.1.0", + "jest-util": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.0.tgz", + "integrity": "sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.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": "^28.0.2", + "jest-util": "^28.1.0", + "jest-worker": "^28.1.0", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz", + "integrity": "sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA==", + "dev": true, + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-leak-detector/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/jest-leak-detector/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/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/jest-message-util": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.0.tgz", + "integrity": "sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-message-util/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/jest-message-util/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-message-util/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/jest-message-util/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/jest-mock": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.0.tgz", + "integrity": "sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "@types/node": "*" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.0.tgz", + "integrity": "sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.0", + "jest-validate": "^28.1.0", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz", + "integrity": "sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g==", + "dev": true, + "dependencies": { + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-runner": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.0.tgz", + "integrity": "sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w==", + "dev": true, + "dependencies": { + "@jest/console": "^28.1.0", + "@jest/environment": "^28.1.0", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.0.2", + "jest-environment-node": "^28.1.0", + "jest-haste-map": "^28.1.0", + "jest-leak-detector": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-resolve": "^28.1.0", + "jest-runtime": "^28.1.0", + "jest-util": "^28.1.0", + "jest-watcher": "^28.1.0", + "jest-worker": "^28.1.0", + "source-map-support": "0.5.13", + "throat": "^6.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/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/jest-runner/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/jest-runtime": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.0.tgz", + "integrity": "sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg==", + "dev": true, + "dependencies": { + "@jest/environment": "^28.1.0", + "@jest/fake-timers": "^28.1.0", + "@jest/globals": "^28.1.0", + "@jest/source-map": "^28.0.2", + "@jest/test-result": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-mock": "^28.1.0", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.0", + "jest-snapshot": "^28.1.0", + "jest-util": "^28.1.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-snapshot": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.0.tgz", + "integrity": "sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.0", + "@jest/transform": "^28.1.0", + "@jest/types": "^28.1.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": "^28.1.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.0", + "jest-matcher-utils": "^28.1.0", + "jest-message-util": "^28.1.0", + "jest-util": "^28.1.0", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/node_modules/diff-sequences": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.0.2.tgz", + "integrity": "sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/node_modules/jest-diff": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.0.tgz", + "integrity": "sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.0.2", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz", + "integrity": "sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.0", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-snapshot/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/jest-util": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.0.tgz", + "integrity": "sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-validate": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.0.tgz", + "integrity": "sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ==", + "dev": true, + "dependencies": { + "@jest/types": "^28.1.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/node_modules/pretty-format": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.0.tgz", + "integrity": "sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==", + "dev": true, + "dependencies": { + "@jest/schemas": "^28.0.2", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-validate/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/jest-validate/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/jest-validate/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/jest-watcher": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.0.tgz", + "integrity": "sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA==", + "dev": true, + "dependencies": { + "@jest/test-result": "^28.1.0", + "@jest/types": "^28.1.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-worker": { + "version": "28.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.0.tgz", + "integrity": "sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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-schema-ref-parser": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz", + "integrity": "sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "9.0.9" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "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/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/less": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", + "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/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==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/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/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "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/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "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==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "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/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/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/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/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", + "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", + "dev": true, + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "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==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "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", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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/mini-css-extract-plugin": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", + "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dev": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "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/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "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/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "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==", + "dev": true, + "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/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "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-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/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/node-gyp/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/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.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist/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/npm-packlist/node_modules/ignore-walk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist/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/npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/npm-registry-fetch": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", + "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^10.0.1", + "minipass": "^3.1.6", + "minipass-fetch": "^1.4.1", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^8.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/fs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", + "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm-registry-fetch/node_modules/cacache": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.0.tgz", + "integrity": "sha512-Pk4aQkwCW82A4jGKFvcGkQFqZcMspfP9YWq9Pr87/ldDvlWf718zeI6KWCdKt/jeihu6BytHRUicJPB1K2k8EQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz", + "integrity": "sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.6.tgz", + "integrity": "sha512-/iKDlRQF0fkxyB/w/duW2yRYrGwBcbJjC37ijgi0CmOZ32bzMc86BCSSAHWvuyRFCB408iBPziTSzazBSrKo3w==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.1.1", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen/node_modules/minipass-fetch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", + "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm-registry-fetch/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.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/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/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/ora/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/ora/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/ora/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/ora/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/ora/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/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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-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-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz", + "integrity": "sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==", + "dev": true, + "dependencies": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^2.0.0", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^3.0.0", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^12.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "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": "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/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/piscina": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", + "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", + "dev": true, + "dependencies": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "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/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/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/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", + "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.2" + }, + "peerDependencies": { + "postcss": "^8.0.2" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz", + "integrity": "sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", + "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", + "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", + "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz", + "integrity": "sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", + "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.2" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", + "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", + "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", + "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", + "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-import": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", + "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "10.1.7", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.7.tgz", + "integrity": "sha512-Btho5XzDTpl117SmB3tvUHP8txg5n7Ayv7vQ5m4b1zXkfs1Y52C67uZjZ746h7QvOJ+rLRg50OlhhjFW+IQY6A==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "1.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", + "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", + "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", + "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", + "dev": true, + "dependencies": { + "autoprefixer": "^10.4.2", + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001299", + "css-blank-pseudo": "^3.0.2", + "css-has-pseudo": "^3.0.3", + "css-prefers-color-scheme": "^6.0.2", + "cssdb": "^5.0.0", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-color-functional-notation": "^4.2.1", + "postcss-color-hex-alpha": "^8.0.2", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.2", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.3", + "postcss-double-position-gradients": "^3.0.4", + "postcss-env-function": "^4.0.4", + "postcss-focus-visible": "^6.0.3", + "postcss-focus-within": "^5.0.3", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.2", + "postcss-image-set-function": "^4.0.4", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.0.3", + "postcss-logical": "^5.0.3", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.2", + "postcss-overflow-shorthand": "^3.0.2", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.3", + "postcss-pseudo-class-any-link": "^7.0.2", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz", + "integrity": "sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/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/prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.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/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/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==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "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==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "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/puppeteer": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-14.1.2.tgz", + "integrity": "sha512-Nsyy1f7pT2KyBb15u8DHi4q3FfrIqOptAV0r4Bd1lAp2pHz8T0o4DO+On1yWZ7jFbcx1w3AqZ/e7nKqnc3Vwyg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.982423", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.6.0" + }, + "engines": { + "node": ">=14.1.0" + } + }, + "node_modules/puppeteer/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/puppeteer/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==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "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/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "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/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "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-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "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/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "2.75.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.4.tgz", + "integrity": "sha512-JgZiJMJkKImMZJ8ZY1zU80Z2bA/TvrL/7D9qcBCrfl2bP+HUaIw0QHUroB4E3gBpFl6CRFM1YxGbuYGtdAswbQ==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/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/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/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/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.49.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", + "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", + "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/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/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/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/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/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/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/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/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dev": true, + "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/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "dev": true, + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/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/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dev": true, + "dependencies": { + "stubs": "^3.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/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==", + "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/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==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "dev": true + }, + "node_modules/stylus": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", + "integrity": "sha512-Ev3fOb4bUElwWu4F9P9WjnnaSpc8XB9OFHSFZSKMFL1CE1oM+oFXWEgAqPmmZIyhBihuqIQlFsVTypiiS9RxeA==", + "dev": true, + "dependencies": { + "css": "^3.0.0", + "debug": "^4.3.2", + "glob": "^7.1.6", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", + "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "klona": "^2.0.4", + "normalize-path": "^3.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "stylus": ">=0.52.4", + "webpack": "^5.0.0" + } + }, + "node_modules/stylus/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/stylus/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/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/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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/supports-hyperlinks/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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/teeny-request": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", + "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", + "dev": true, + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", + "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", + "dev": true, + "dependencies": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-webpack-plugin/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/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "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==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-node": { + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.0.tgz", + "integrity": "sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==", + "dev": true, + "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": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "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/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "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", + "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==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.15.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", + "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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/urlgrey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", + "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "dev": true, + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "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==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz", + "integrity": "sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.7", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "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/watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "node_modules/webpack": { + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", + "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.2.2", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", + "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.2.2", + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.2", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "webpack-dev-middleware": "^5.3.0", + "ws": "^8.1.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "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/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "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/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "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/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", + "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/ws": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "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": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "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.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/zone.js": { + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.5.tgz", + "integrity": "sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g==", + "dev": true, + "dependencies": { + "tslib": "^2.3.0" + } + } + }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", @@ -1875,7 +19079,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz", "integrity": "sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw==", - "dev": true + "dev": true, + "requires": {} }, "@discoveryjs/json-ext": { "version": "0.5.6", @@ -2612,7 +19817,8 @@ "version": "13.3.7", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", - "dev": true + "dev": true, + "requires": {} }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", @@ -3591,13 +20797,15 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true + "dev": true, + "requires": {} }, "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 + "dev": true, + "requires": {} }, "acorn-walk": { "version": "8.2.0", @@ -4387,7 +21595,8 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true + "dev": true, + "requires": {} }, "cjs-module-lexer": { "version": "1.2.2", @@ -4894,7 +22103,8 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true + "dev": true, + "requires": {} }, "css-select": { "version": "4.3.0", @@ -5663,7 +22873,8 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-prettier": { "version": "4.0.0", @@ -5678,7 +22889,8 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", - "dev": true + "dev": true, + "requires": {} }, "eslint-scope": { "version": "5.1.1", @@ -6739,7 +23951,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "requires": {} }, "ieee754": { "version": "1.2.1", @@ -8022,7 +25235,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true + "dev": true, + "requires": {} }, "jest-regex-util": { "version": "28.0.2", @@ -10205,7 +27419,8 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "dev": true + "dev": true, + "requires": {} }, "postcss-custom-properties": { "version": "12.1.7", @@ -10275,13 +27490,15 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true + "dev": true, + "requires": {} }, "postcss-gap-properties": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-image-set-function": { "version": "4.0.6", @@ -10307,7 +27524,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-lab-function": { "version": "4.2.0", @@ -10334,19 +27552,22 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true + "dev": true, + "requires": {} }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -10391,13 +27612,15 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "dev": true + "dev": true, + "requires": {} }, "postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-place": { "version": "7.0.4", @@ -10462,7 +27685,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-selector-not": { "version": "5.0.0", @@ -11130,7 +28354,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "json-schema-traverse": { "version": "0.4.1", @@ -11544,6 +28769,23 @@ "stubs": "^3.0.0" } }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -11565,23 +28807,6 @@ "strip-ansi": "^6.0.1" } }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -11838,7 +29063,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "has-flag": { "version": "4.0.0", @@ -12330,7 +29556,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "json-schema-traverse": { "version": "0.4.1", @@ -12594,7 +29821,8 @@ "version": "8.6.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==", - "dev": true + "dev": true, + "requires": {} }, "y18n": { "version": "5.0.8", diff --git a/test/index.js b/test/index.js index 8c25a288c..eab77d5b1 100644 --- a/test/index.js +++ b/test/index.js @@ -73,8 +73,6 @@ const main = async () => { additionalModelFileExtension: true, additionalServiceFileExtension: true, removeLodashPrefixes: true, - username: 'roman.tech48@gmail.com', - password: `&cY8at<'S5PfJa#k`, useEnvironment: 'feature', filterMethod: 'include', }; From fdb887a6448c35e4c1fb6f5295a8e82fbb55dece Mon Sep 17 00:00:00 2001 From: Roman P Date: Wed, 7 Sep 2022 19:14:28 +0500 Subject: [PATCH 32/52] fix cli params --- bin/saddleback.cli.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index e64fb09bb..56b28e182 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -45,10 +45,10 @@ if (OpenAPI) { ...config, input: params.input || config.input, output: params.output || config.output, - username: params.login || config.login, + username: params.login || config.username, password: params.password || config.password, - useEnvironment: params.environment || config.environment, - useService: params.service || config.service, + useEnvironment: params.environment || config.useEnvironment, + useService: params.service || config.useService, filterMethod: params.filterMethod || config.filterMethod || 'include', filterArray: params.filterArray || config.filterArray || [], }) From 469a52d204a73074cc72fcdff6dde221f935de16 Mon Sep 17 00:00:00 2001 From: Roman P Date: Wed, 7 Sep 2022 19:16:37 +0500 Subject: [PATCH 33/52] update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6f55002c2..76eea0221 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.23.0", + "version": "0.24.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", From 1ca0649c8bd3447ff2cd84fce2c3fef3a2a29696 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 17:46:00 +0500 Subject: [PATCH 34/52] add service to getBaseConfigParams --- src/templates/exportSaddlebackService.hbs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index 3bc2bfd83..97e333ce7 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -48,6 +48,7 @@ export const fetch{{{../name}}}{{pascalCase name}} = async ({{> saddlebackParame {{/if}} method: '{{{method}}}', url: '{{{path}}}', + service: '{{{service}}}', {{#if parametersBody}} {{#if parametersBody.mediaType}} contentType: '{{{parametersBody.mediaType}}}', From a139593d340bbac9b7774499491bf1badf18ab74 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 17:52:40 +0500 Subject: [PATCH 35/52] change serviceError props to axiosError --- src/templates/exportSaddlebackService.hbs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index 97e333ce7..c6badd1a6 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -68,9 +68,7 @@ export const fetch{{{../name}}}{{pascalCase name}} = async ({{> saddlebackParame } catch (error) { const axiosError = error as AxiosError; - serviceError({ - response: axiosError.response, - }); + serviceError(error); throw new Error('{{{../name}}}Service > {{name}}'); } From 30a739ab3f5c31ce687f50b2a332afd284b422d8 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 17:53:39 +0500 Subject: [PATCH 36/52] update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 76eea0221..bbe0844d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.24.0", + "version": "0.25.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", From c2a0072429f3f4815463be9b9111987ee36cf806 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 18:43:41 +0500 Subject: [PATCH 37/52] change getBaseConfig & serviceError to relative location --- src/templates/exportSaddlebackService.hbs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index c6badd1a6..0856857db 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -9,8 +9,8 @@ import axios, { AxiosError, AxiosResponse, } from 'axios'; -import serviceError from 'global/api/serviceError'; -import getBaseConfig from 'global/api/getBaseConfig'; +import serviceError from '../../serviceError'; +import getBaseConfig from '../../getBaseConfig'; {{#each operations}} /** From 3cb1acb752bdba74cf768771a70d6ec16adff535 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 18:44:17 +0500 Subject: [PATCH 38/52] update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bbe0844d4..3cd496b9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.25.0", + "version": "0.26.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", From b0cee887240d395f208e66d8ce8458daa7cacd83 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 19:13:26 +0500 Subject: [PATCH 39/52] fix service name --- src/templates/exportSaddlebackService.hbs | 2 +- src/utils/writeClient.ts | 2 ++ src/utils/writeSaddlebackClientServices.ts | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index 0856857db..e777eb56e 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -48,7 +48,7 @@ export const fetch{{{../name}}}{{pascalCase name}} = async ({{> saddlebackParame {{/if}} method: '{{{method}}}', url: '{{{path}}}', - service: '{{{service}}}', + service: '{{{pascalCase ../serviceName}}}', {{#if parametersBody}} {{#if parametersBody.mediaType}} contentType: '{{{parametersBody.mediaType}}}', diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index e97eba8da..0633da2f9 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -56,6 +56,7 @@ export const writeClient = async ( request?: string ): Promise => { const outputPath = resolve(process.cwd(), output); + const serviceName = output.split('/').slice(-1)[0]; const outputPathCore = resolve(outputPath, 'core'); const outputPathModels = resolve(outputPath, 'models'); const outputPathSchemas = resolve(outputPath, 'schemas'); @@ -86,6 +87,7 @@ export const writeClient = async ( postfix, additionalModelFileExtension, additionalServiceFileExtension, + serviceName, clientName ); } else { diff --git a/src/utils/writeSaddlebackClientServices.ts b/src/utils/writeSaddlebackClientServices.ts index a1e804f98..658e15e0c 100644 --- a/src/utils/writeSaddlebackClientServices.ts +++ b/src/utils/writeSaddlebackClientServices.ts @@ -35,6 +35,7 @@ export const writeSaddlebackClientServices = async ( postfix: string, additionalModelFileExtension: boolean, additionalServiceFileExtension: boolean, + serviceName: string, clientName?: string ): Promise => { for (const service of services) { @@ -51,6 +52,7 @@ export const writeSaddlebackClientServices = async ( exportClient: isDefined(clientName), additionalModelFileExtension, additionalServiceFileExtension, + serviceName, }); await writeFile(file, i(f(templateResult), indent)); } From c455671b813060913467a2b5bcb4df292d819882 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 19:35:20 +0500 Subject: [PATCH 40/52] add new services --- README.md | 4 ++-- bin/saddleback.cli.js | 5 ++++- src/utils/saddleback/getUrlByServiceEnv.ts | 19 ++++++++++++++----- types/index.d.ts | 5 ++--- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cbdc5d465..0ff9ee4a0 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,12 @@ $ saddlebackOpenapi --help Options: -V, --version output the version number -i, --input OpenAPI specification, can be a path, url or string content - -o, --output Output directory + -o, --output Output directory should end with service name workflows | events | notifications | core | journey | giving | smallGroup -c, --config Path to the config file -l, --login Login -p, --password Password -e, --environment Environment dev | stage | stage2 - -s, --service Service 'workflows' | 'event' | 'notifications' | 'core' + -s, --service Service Service Workflows | Events | Notifications | Core | Journey | Giving | SmallGroup -h, --help display help for command -m, --filterMethod Filter method include(default) | exclude') -f, --filterArray Filter array diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index 56b28e182..a6df5a5f2 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -16,7 +16,10 @@ const params = program .option('-l, --login ', 'Login') .option('-p, --password ', 'Password') .option('-e, --environment ', 'Environment dev | stage | stage2') - .option('-s, --service ', 'Service ') + .option( + '-s, --service ', + 'Service Workflows | Events | Notifications | Core | Journey | Giving | SmallGroup' + ) .option('-m, --filterMethod ', 'Filter method include(default) | exclude') .option('-f, --filterArray ', 'Filter array') .parse(process.argv) diff --git a/src/utils/saddleback/getUrlByServiceEnv.ts b/src/utils/saddleback/getUrlByServiceEnv.ts index b45200041..00e58f062 100644 --- a/src/utils/saddleback/getUrlByServiceEnv.ts +++ b/src/utils/saddleback/getUrlByServiceEnv.ts @@ -1,8 +1,11 @@ export enum Service { - Workflows = 'workflows', - Event = 'event', - Notifications = 'notifications', - Core = 'core', + Workflows = 'Workflows', + Events = 'Events', + Notifications = 'Notifications', + Core = 'Core', + Journey = 'Journey', + Giving = 'Giving', + SmallGroup = 'SmallGroup', } export enum Environment { @@ -20,7 +23,13 @@ export const getUrlByServiceEnv = ({ env, service }: { service: Service; env: En return `https://hc-notificationservice-${env}.azurewebsites.net/api-doc/v1/swagger.json`; case Service.Workflows: return `https://hc-workflowsservice-${env}.azurewebsites.net/api-doc/v1/swagger.json`; - case Service.Event: + case Service.Events: return `https://hc-eventservice-${env}.azurewebsites.net/api-doc/all/swagger.json`; + case Service.Journey: + return `https://hc-journeyservice-${env}.azurewebsites.net/api-doc/v1/swagger.json`; + case Service.Giving: + return `https://hc-givingservice-${env}.azurewebsites.net/api-doc/v1/swagger.json`; + case Service.SmallGroup: + return `https://hc-smallgroupservice-${env}.azurewebsites.net/api-doc/v1/swagger.json`; } }; diff --git a/types/index.d.ts b/types/index.d.ts index a5146a2b9..bda954b1f 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -1,5 +1,4 @@ -import { Service } from '../src/client/interfaces/Service'; -import { Environment } from '../src/utils/saddleback/getUrlByServiceEnv'; +import { Environment, Service } from '../src/utils/saddleback/getUrlByServiceEnv'; export declare enum HttpClient { FETCH = 'fetch', @@ -44,7 +43,7 @@ export type CustomConfig = Options & { useAutoNotificationService?: boolean; useAutoWorkflowsService?: boolean; useEnvironment?: Environment | 'dev' | 'stage' | 'stage2' | 'feature'; - useService?: Service | 'workflows' | 'event' | 'notifications' | 'core'; + useService?: Service | 'Workflows' | 'Events' | 'Notifications' | 'Core' | 'Journey' | 'Giving' | 'SmallGroup'; filterMethod: 'include' | 'exclude'; filterArray: string[]; }; From 3e51acea647774bce7f4855af46cc82b42616668 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 19:36:27 +0500 Subject: [PATCH 41/52] update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3cd496b9f..fd00f56fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.26.0", + "version": "0.27.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", From 068c3cea5ead4b8c12a9df17ad4b21e821d555c8 Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 19:42:44 +0500 Subject: [PATCH 42/52] add await for getBaseConfig --- src/templates/exportSaddlebackService.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index e777eb56e..a8278895c 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -37,7 +37,7 @@ import getBaseConfig from '../../getBaseConfig'; */ export const fetch{{{../name}}}{{pascalCase name}} = async ({{> saddlebackParameters}}): Promiseresult}}>> => { - const setBaseConfig = getBaseConfig({ + const setBaseConfig = await getBaseConfig({ {{#if parametersBody}} data, {{/if}} From 72500325c3ac278afbf4287aeafc2813a8d0d97d Mon Sep 17 00:00:00 2001 From: Roman P Date: Fri, 9 Sep 2022 19:43:11 +0500 Subject: [PATCH 43/52] update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fd00f56fe..3e92bb8e5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.27.0", + "version": "0.28.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", From 319f8f11a9c8b9bff7a834369882e650305f1676 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 19 Sep 2022 19:42:36 +0500 Subject: [PATCH 44/52] fix: remove only first prefix --- package.json | 2 +- src/generateSaddlebackSpec.ts | 4 ++-- src/utils/removeLodashPrefix.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 3e92bb8e5..0ce85f8a3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.28.0", + "version": "0.29.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/generateSaddlebackSpec.ts b/src/generateSaddlebackSpec.ts index 517cfd395..87a3de26a 100644 --- a/src/generateSaddlebackSpec.ts +++ b/src/generateSaddlebackSpec.ts @@ -51,9 +51,9 @@ export const generateSaddlebackSpec = async (config: Config) => { } openApi.components.schemas = newSchemas; - } - mapSwaggerRef(openApi, removeLodashPrefixFromRef); + mapSwaggerRef(openApi, removeLodashPrefixFromRef); + } const list: OpenApi = openApi; diff --git a/src/utils/removeLodashPrefix.ts b/src/utils/removeLodashPrefix.ts index 1f8ee2eaa..cdf12b11f 100644 --- a/src/utils/removeLodashPrefix.ts +++ b/src/utils/removeLodashPrefix.ts @@ -1,3 +1,3 @@ export const removeLodashPrefix = (s: string): string => { - return s.split('_').slice(-1)[0]; + return s.split('_').slice(1).join('_'); }; From 34bcfa9021bcb4e2f8eaf0d306a4391a8cea4323 Mon Sep 17 00:00:00 2001 From: Roman P Date: Wed, 21 Sep 2022 18:24:59 +0500 Subject: [PATCH 45/52] fix: remove all lodash symbols --- package.json | 2 +- src/utils/removeLodashPrefix.ts | 2 +- test/index.js | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 0ce85f8a3..830938cfb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.29.0", + "version": "0.30.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/utils/removeLodashPrefix.ts b/src/utils/removeLodashPrefix.ts index cdf12b11f..31d46d685 100644 --- a/src/utils/removeLodashPrefix.ts +++ b/src/utils/removeLodashPrefix.ts @@ -1,3 +1,3 @@ export const removeLodashPrefix = (s: string): string => { - return s.split('_').slice(1).join('_'); + return s.split('_').slice(1).join(''); }; diff --git a/test/index.js b/test/index.js index eab77d5b1..608421849 100644 --- a/test/index.js +++ b/test/index.js @@ -86,9 +86,15 @@ const main = async () => { // ...config, // }); await OpenAPI.generateSaddlebackSpec({ - useService: 'event', + useService: 'Events', output: './auto2/event', - filterArray: ['/api/event/{id}'], + filterMethod: "include", + filterArray: [ + "/api/v2/event-public", + "/api/v2/event-public/cancel-reservation", + "/api/v2/event-public/signup", + "/api/v2/event-public/reserve-tickets" + ], ...config, }); // await OpenAPI.generateSaddlebackSpec({ From ba52be62a99a364af16589bf9630d140c33f8db1 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 26 Sep 2022 16:37:54 +0500 Subject: [PATCH 46/52] fix: add camelCase in import/export file paths --- package.json | 2 +- src/templates/index.hbs | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 830938cfb..1e8e5e82e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.30.0", + "version": "0.31.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/index.hbs b/src/templates/index.hbs index 3a7ace4e2..8916cc5ca 100644 --- a/src/templates/index.hbs +++ b/src/templates/index.hbs @@ -18,13 +18,13 @@ export type { OpenAPIConfig } from './core/OpenAPI'; {{#each models}} {{#if @root.useUnionTypes}} -export type { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +export type { {{{name}}} } from './models/{{{camelCase name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{else if enum}} -export { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +export { {{{name}}} } from './models/{{{camelCase name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{else if enums}} -export { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +export { {{{name}}} } from './models/{{{camelCase name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{else}} -export type { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; +export type { {{{name}}} } from './models/{{{camelCase name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{/if}} {{/each}} {{/if}} @@ -33,7 +33,7 @@ export type { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFile {{#if models}} {{#each models}} -export { ${{{name}}} } from './schemas/${{{name}}}'; +export { ${{{name}}} } from './schemas/${{{camelCase name}}}'; {{/each}} {{/if}} {{/if}} @@ -42,9 +42,9 @@ export { ${{{name}}} } from './schemas/${{{name}}}'; {{#each services}} {{#equals @root.httpClient 'saddleback'}} -export * as fetch{{{name}}}{{{@root.postfix}}} from './services/{{{name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; +export * as fetch{{{name}}}{{{@root.postfix}}} from './services/{{{camelCase name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; {{else}} -export { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; +export { {{{name}}}{{{@root.postfix}}} } from './services/{{{camelCase name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}'; {{/equals}} {{/each}} {{/if}} From 4ed7ec16750e16f83d8970860bbeae792eb2f0f1 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 10 Oct 2022 16:11:10 +0500 Subject: [PATCH 47/52] feat: add ability to pass custom axios instance throw services --- src/templates/exportSaddlebackService.hbs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/templates/exportSaddlebackService.hbs b/src/templates/exportSaddlebackService.hbs index a8278895c..d9606e617 100644 --- a/src/templates/exportSaddlebackService.hbs +++ b/src/templates/exportSaddlebackService.hbs @@ -5,10 +5,11 @@ import type { {{{this}}} } from '../models/{{camelCase this}}{{#if ../additionalModelFileExtension}}.models{{/if}}'; {{/each}} {{/if}} -import axios, { +import { AxiosError, AxiosResponse, } from 'axios'; +import axios from '../../baseAxios'; import serviceError from '../../serviceError'; import getBaseConfig from '../../getBaseConfig'; From 42f56ac8ba1d8a986b6eddfb518d69ecfb1866f9 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 10 Oct 2022 16:11:50 +0500 Subject: [PATCH 48/52] update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1e8e5e82e..faf706662 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.31.0", + "version": "0.32.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", From 62c5173b7d5b14f246939cc8827d38a6cf645f61 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 10 Oct 2022 18:08:28 +0500 Subject: [PATCH 49/52] change default config location --- bin/saddleback.cli.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index a6df5a5f2..5cf07e0ab 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -26,7 +26,7 @@ const params = program .opts(); const OpenAPI = require(path.resolve(__dirname, '../dist/index.js')); -const config = require(path.resolve(params.config || `./openapi.config.json`)); +const config = require(path.resolve(params.config || `openapi.config.json`)); if (OpenAPI) { OpenAPI.generateSaddlebackSpec({ diff --git a/package.json b/package.json index faf706662..029b17a47 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.32.0", + "version": "0.33.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", From c43473a1d24962a1efcff792a54f378c9a6977b1 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 10 Oct 2022 18:41:23 +0500 Subject: [PATCH 50/52] update README --- README.md | 32 +++++++++++++++++++++++++++++++- bin/saddleback.cli.js | 6 +++--- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0ff9ee4a0..4a09d2fb8 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,29 @@ ## Install ``` -npm install [gitUrl] --save-dev +npm install saddleback-openapi-typescript-codegen --save-dev ``` +## Step-by-step guide based on ME app +### auto fetch +1. install the package +2. create config files for every microservice that you need (put it in the root project folder for example openapiEvents.config.json) +3. inside the config file you need to specify + 1. output folder (for Events it would be ./src/shared/api/events) + 2. microservice that you're specifying ("Events") + 3. environment that using for fetch ("feature") + 4. if you don't want to generate whole microservices, you can specify filterMethod and filterArray +4. run the command where you should pass your login and pass from saddleback identity server `saddlebackApi --config openapiEvents.config.json --login login --password password` +### local swagger +1. same as above +2. same as above +3. addition specify the input path to the swagger.json file +4. run the command `saddlebackApi --config openapiEvents.config.json` + ## Usage +Generated folders should be untouchable. Because every generate action will delete and put generated files into the output folder. + ``` $ saddlebackOpenapi --help @@ -81,6 +99,18 @@ Which Environment should be used for swagger.json Which service should be fetched +### `filterMethod` (autofetch) +- Default: `include` +- Type: `'include' | 'exclude'` + +Which method of sort should be applied to the filter array + +### `filterArray` (autofetch) +- Default: `undefined` +- Type: `string[]` + +Which services should be *included* or *excluded* to/from generated list + ### `additionalModelFileExtension` - Default: `true` - Type: `boolean` diff --git a/bin/saddleback.cli.js b/bin/saddleback.cli.js index 5cf07e0ab..f6739f391 100644 --- a/bin/saddleback.cli.js +++ b/bin/saddleback.cli.js @@ -48,10 +48,10 @@ if (OpenAPI) { ...config, input: params.input || config.input, output: params.output || config.output, - username: params.login || config.username, + username: params.login || config.login, password: params.password || config.password, - useEnvironment: params.environment || config.useEnvironment, - useService: params.service || config.useService, + useEnvironment: params.environment || config.environment, + useService: params.service || config.service, filterMethod: params.filterMethod || config.filterMethod || 'include', filterArray: params.filterArray || config.filterArray || [], }) From 33025ad83e70bbe0ee05e008945fc9c0cfbf3b92 Mon Sep 17 00:00:00 2001 From: Roman P Date: Mon, 10 Oct 2022 20:18:57 +0500 Subject: [PATCH 51/52] update README --- README.md | 8 ++++++-- package.json | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4a09d2fb8..533bbb8b2 100644 --- a/README.md +++ b/README.md @@ -17,12 +17,16 @@ npm install saddleback-openapi-typescript-codegen --save-dev 2. microservice that you're specifying ("Events") 3. environment that using for fetch ("feature") 4. if you don't want to generate whole microservices, you can specify filterMethod and filterArray -4. run the command where you should pass your login and pass from saddleback identity server `saddlebackApi --config openapiEvents.config.json --login login --password password` +4. create utility files that used in services + 1. 'baseAxios' should export axios instance that be used for fetch + 2. 'getBaseConfig' and 'serviceError' described here https://github.com/saddlebackdev/church-management/wiki/Services +5. run the command where you should pass your login and pass from saddleback identity server `saddlebackApi --config openapiEvents.config.json --login login --password password` ### local swagger 1. same as above 2. same as above 3. addition specify the input path to the swagger.json file -4. run the command `saddlebackApi --config openapiEvents.config.json` +4. same as above +5. run the command `saddlebackApi --config openapiEvents.config.json` ## Usage diff --git a/package.json b/package.json index 029b17a47..a53c7a933 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.33.0", + "version": "0.34.0", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", From 061f3fc79d28db137a57dc63e742d30d3779fbff Mon Sep 17 00:00:00 2001 From: Roman P Date: Thu, 15 Dec 2022 16:21:32 +0500 Subject: [PATCH 52/52] remove model index file & update version --- package.json | 2 +- src/utils/writeClient.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a53c7a933..f709c0607 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "saddleback-openapi-typescript-codegen", - "version": "0.34.0", + "version": "0.34.1", "description": "Library that generates Typescript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index 0633da2f9..4130ffda8 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -149,7 +149,7 @@ export const writeClient = async ( ); } // write models index - if (exportCore || exportServices || exportSchemas || exportModels) { + if ((exportCore || exportServices || exportSchemas || exportModels) && httpClient !== HttpClient.SADDLEBACK) { await mkdir(outputPath); await writeSaddlebackModelsIndex( client,