diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e9aeeaf --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.git/ +.idea/ +node_modules/ +dist/ +.angular/ + + + diff --git a/angular.json b/angular.json new file mode 100644 index 0000000..62edc2b --- /dev/null +++ b/angular.json @@ -0,0 +1,141 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "oa-web": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "less" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/oa-web", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "less", + "assets": [ + "src/favicon.ico", + "src/assets", + { + "glob": "**/*", + "input": "./node_modules/@ant-design/icons-angular/src/inline-svg/", + "output": "/assets/" + } + ], + "styles": [ + "src/styles.less" + ], + "scripts": [], + "server": "src/main.server.ts", + "prerender": true, + "ssr": { + "entry": "server.ts" + } + }, + "configurations": { + "prod": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "2mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all", + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ] + }, + "dev": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "2mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all", + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.dev.ts" + } + ] + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "oa-web:build:production" + }, + "development": { + "buildTarget": "oa-web:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "oa-web:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "less", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.less" + ], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": "a81abb26-556d-44f1-a3d7-6e52625f6794" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e9dafba --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12938 @@ +{ + "name": "hai-oil-web", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hai-oil-web", + "version": "0.0.0", + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/router": "^17.0.0", + "@angular/ssr": "^17.0.7", + "express": "^4.18.2", + "ng-zorro-antd": "^17.1.0", + "qqmap": "^1.0.1", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.7", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.0", + "@types/express": "^4.17.17", + "@types/jasmine": "~5.1.0", + "@types/node": "^18.18.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1700.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1700.7.tgz", + "integrity": "sha512-32uitQKsYLGXAKoXBsmOnPsTt9pS+b9cnFI9ZvBFVhJ31I2EOM7vGcMFalhTxdB/DkVHk4TyO78efV0V26DwCA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.0.7", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.0.7.tgz", + "integrity": "sha512-AtEzLk6n6BXqQzk0Bsupe6GV0IgUe7RbpBfqROi+NZqMA7OUAHCX3xA6M68Qu+5KxBtW7T5lHeZZ7iP/y39wtQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1700.7", + "@angular-devkit/build-webpack": "0.1700.7", + "@angular-devkit/core": "17.0.7", + "@babel/core": "7.23.2", + "@babel/generator": "7.23.0", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-transform-async-generator-functions": "7.23.2", + "@babel/plugin-transform-async-to-generator": "7.22.5", + "@babel/plugin-transform-runtime": "7.23.2", + "@babel/preset-env": "7.23.2", + "@babel/runtime": "7.23.2", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "17.0.7", + "@vitejs/plugin-basic-ssl": "1.0.1", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.16", + "babel-loader": "9.1.3", + "babel-plugin-istanbul": "6.1.1", + "browser-sync": "2.29.3", + "browserslist": "^4.21.5", + "chokidar": "3.5.3", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.20", + "css-loader": "6.8.1", + "esbuild-wasm": "0.19.5", + "fast-glob": "3.3.1", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "7.0.2", + "inquirer": "9.2.11", + "jsonc-parser": "3.2.0", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.5", + "mini-css-extract-plugin": "2.7.6", + "mrmime": "1.0.1", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "3.0.1", + "piscina": "4.1.0", + "postcss": "8.4.31", + "postcss-loader": "7.3.3", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.69.5", + "sass-loader": "13.3.2", + "semver": "7.5.4", + "source-map-loader": "4.0.1", + "source-map-support": "0.5.21", + "terser": "5.24.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.6.2", + "undici": "5.27.2", + "vite": "4.5.1", + "webpack": "5.89.0", + "webpack-dev-middleware": "6.1.1", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.10.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.19.5" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "@angular/localize": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/service-worker": "^17.0.0", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^17.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.2 <5.3" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1700.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1700.7.tgz", + "integrity": "sha512-B9Mg/qYDpE5my8PJ3VPQyRSUV0Oq1bFUzU8s0ZpqEZl1URKc04pm0LtLmebrMIcUZgDiGk0RHaD+O1E9IV/bdQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1700.7", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.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/core": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.0.7.tgz", + "integrity": "sha512-vATobHo5O5tJba424hJfQWLb40GzvZPNsI74dcgSUTgrDph8ksmk5xB9OvEvf0INorQZ2IMphj/VIWj4/+JqSA==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "3.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.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/schematics": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.0.7.tgz", + "integrity": "sha512-BY11OkJkM3xyXcvyD7x5kGY/c8Ufd4AfPvI0D9imhVxbns45Q48b1DlvCQvSnCJ/s+OwnkrYb/Efa70ZiaGu8A==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.0.7", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.5", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/animations": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.0.7.tgz", + "integrity": "sha512-IjZjPGMxvi2a9o7fzjwNO44FvhTZlVSgcPtqM6Glq0+WVeQcnZxf1Onj68M/FGx2AunS8elRbrgPxTexVeSo7A==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.7" + } + }, + "node_modules/@angular/cdk": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.0.4.tgz", + "integrity": "sha512-mh/EuIR0NPfpNqAXBSZWuJeBMXUvUDYdKhiFWZet5NLO1bDgFe1MGLBjtW4us95k4BZsMLbCKNxJgc+4JqwUvg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.0.7.tgz", + "integrity": "sha512-oSa0GVAQNA7wFbLJYeaO3kV4iUcbKEqXDLxcIE8s1GfHddBOlXH2P1T4fXonCBl5qvV+joP0G0+fs7I0w2utZQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1700.7", + "@angular-devkit/core": "17.0.7", + "@angular-devkit/schematics": "17.0.7", + "@schematics/angular": "17.0.7", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.1", + "inquirer": "9.2.11", + "jsonc-parser": "3.2.0", + "npm-package-arg": "11.0.1", + "npm-pick-manifest": "9.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "17.0.4", + "resolve": "1.22.8", + "semver": "7.5.4", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.0.7.tgz", + "integrity": "sha512-bPPL6x0KOAOTxKSE2j4EWmEUOnqZYzOYiHzroa5b9UEyA9NvGkd9bm3zIxw8xcndRj1Ehcmvpi6KBLcYBBbWfg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.7", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.0.7.tgz", + "integrity": "sha512-QHPuLti2c2tGZmOGZ0cfCHo4LxiHUkC27I0aZFDyQSSQqEI5obQGVlEREHysw0nsS3sYIcLvqcwcKcRtXlXtxQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.0.7" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.0.7.tgz", + "integrity": "sha512-YnL38idjIYtl3BXYpv+sVJKWGbUjHT6eyQSQVAfO/1AwWqVa21K9hnE+Q37VmUKEcKFMnQembeuErA+KVsGI6A==", + "dev": true, + "dependencies": { + "@babel/core": "7.23.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "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/index.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/compiler": "17.0.7", + "typescript": ">=5.2 <5.3" + } + }, + "node_modules/@angular/core": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.0.7.tgz", + "integrity": "sha512-mEkelXkzEi6+A9GjdKOSGGzQAfo1iAjVTn6YsplNUeGE5JgDZYZ7sXGQqs0Lin7dzJxnPAgGjCOl7SpWLXIPSQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.0" + } + }, + "node_modules/@angular/forms": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.0.7.tgz", + "integrity": "sha512-28BxRxEmgZIofGwVp6s2v3ri/kuWW+/EY/ZXhavlWKJEh4ATJl72k0RkRWNcQi4wnvn0Qb8tFdnVJnvRZvvKEw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.0.7.tgz", + "integrity": "sha512-bm9/wt51nc/MPjft/FlRNIgFSeLjDtfJOT7M32Rt6kOHhNKSK7ZTPWdMe9ahuHSbAhLzd0G/4NsT5sKrWSeVZg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/animations": "17.0.7", + "@angular/common": "17.0.7", + "@angular/core": "17.0.7" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.7.tgz", + "integrity": "sha512-OquwUX9fLWA2JUZW5Jm6atk0CPt0sA7Tg24eGLsr6g1XfTS7jRZprlGaa72NgPLnQVV6m84o/ZiNYS6yPmq1Gg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.7", + "@angular/compiler": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7" + } + }, + "node_modules/@angular/platform-server": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-17.0.7.tgz", + "integrity": "sha512-ezEOqcPw/2Naqb+L0Qq1eVCnN5Wrd9ACBTlBny6eOvYh/SVcmZlU2vdPX4aUKKu/Mq5CHNAaHHqqfwKCoDYnBw==", + "dependencies": { + "tslib": "^2.3.0", + "xhr2": "^0.2.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/animations": "17.0.7", + "@angular/common": "17.0.7", + "@angular/compiler": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7" + } + }, + "node_modules/@angular/router": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.0.7.tgz", + "integrity": "sha512-rUFPe1uDlYYw6+3Gq68czW7WxBH7zT/D3UsT1otqwUV4RnQQsVze4fIit9FqJh7tuP4y3WpB4XBNf7p7Oi6TJw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.0.7", + "@angular/core": "17.0.7", + "@angular/platform-browser": "17.0.7", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/ssr": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@angular/ssr/-/ssr-17.0.7.tgz", + "integrity": "sha512-CV7xJEHAZ6PaA866E9+gHtLit8Lv7uqg2AYnh51ct5Jl9am0CIjbnf9bPUFq0iiCPnZ3uB0FMMjkFDup3Kl1Og==", + "dependencies": { + "critters": "0.0.20", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^17.0.0", + "@angular/core": "^17.0.0" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.0.0.tgz", + "integrity": "sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.0" + } + }, + "node_modules/@ant-design/icons-angular": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons-angular/-/icons-angular-17.0.0.tgz", + "integrity": "sha512-MNEh3UbkSl6gkdb5MQRNHEuWI1DnU1dME9zSymnWCipEXN7MB0mcYHSfyYTqKL1j45ftp6l1UnsLvhokRYyhXA==", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "^17.0.1", + "@angular/core": "^17.0.1", + "@angular/platform-browser": "^17.0.1", + "rxjs": "^6.4.0 || ^7.4.0" + } + }, + "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/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "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.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "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.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "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-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", + "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", + "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", + "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.23.0", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.10", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.10", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/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/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@ljharb/through": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.11.tgz", + "integrity": "sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@ngtools/webpack": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.0.7.tgz", + "integrity": "sha512-gwhUhpwXn0trwwKdSu9WlJbEcLt+s/2fPwoD9lZ0y3wXfrOogsfcNBJKeO5BZf1h+A3AWt7ePmgrZXSJM+865Q==", + "dev": true, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "typescript": ">=5.2 <5.3", + "webpack": "^5.54.0" + } + }, + "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/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", + "integrity": "sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "dev": true, + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz", + "integrity": "sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==", + "dev": true, + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz", + "integrity": "sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "read-package-json-fast": "^3.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@schematics/angular": { + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.0.7.tgz", + "integrity": "sha512-d7QKmcKrM4owb/2bR7Ipf23roiNbvbD/x7reNhQAtKAPLSHJ3Ulkf1+Yv+dj+9f+K7y9SBviEUSrD27BQ9WaxQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.0.7", + "@angular-devkit/schematics": "17.0.7", + "jsonc-parser": "3.2.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz", + "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.0.tgz", + "integrity": "sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz", + "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/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/@tufjs/models/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.3.tgz", + "integrity": "sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", + "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "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/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", + "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "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==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "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": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "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.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "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.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "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.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/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/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/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/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/async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "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.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-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-polyfill-corejs2": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.4", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/bonjour-service/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==" + }, + "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/browser-sync": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.3.tgz", + "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", + "dev": true, + "dependencies": { + "browser-sync-client": "^2.29.3", + "browser-sync-ui": "^2.29.3", + "bs-recipes": "1.3.4", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "bin": { + "browser-sync": "dist/bin.js" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/browser-sync-client": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", + "dev": true, + "dependencies": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/browser-sync-ui": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", + "dev": true, + "dependencies": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/browser-sync-ui/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/browser-sync-ui/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/browser-sync-ui/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/browser-sync-ui/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/browser-sync-ui/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/browser-sync-ui/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/browser-sync/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/browser-sync/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/browser-sync/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/browser-sync/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/browser-sync/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/browser-sync/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/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", + "dev": true + }, + "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-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/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.1.tgz", + "integrity": "sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/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/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "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/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/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.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/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/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/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/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "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/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "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/compression/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/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": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "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/connect/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/connect/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/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "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": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "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/core-js-compat": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-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/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/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/cosmiconfig/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/critters": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "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==", + "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==", + "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==", + "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==" + }, + "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==", + "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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/cross-spawn/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/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "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==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "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/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.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-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/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "dev": true, + "bin": { + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "dev": true, + "dependencies": { + "chalk": "4.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eazy-logger/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/eazy-logger/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/eazy-logger/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/eazy-logger/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/eazy-logger/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/eazy-logger/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/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.615", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz", + "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==", + "dev": true + }, + "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==", + "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/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/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": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.5.tgz", + "integrity": "sha512-7zmLLn2QCj93XfMmHtzrDJ1UBuOHB2CZz1ghoCEZiRajxjUvHsF40PnbzFIY/pmesqPRaEtEWii0uzsTbnAgrA==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "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==" + }, + "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-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/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "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/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==", + "engines": { + "node": ">= 0.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/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express/node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/express/node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "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/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "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/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "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/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.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/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "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.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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/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": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "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/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "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/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.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "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.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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/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/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.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "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/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "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==", + "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.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "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": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "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": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", + "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "dev": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/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/ignore-walk/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/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/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==" + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.11.tgz", + "integrity": "sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g==", + "dev": true, + "dependencies": { + "@ljharb/through": "^2.3.9", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "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==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "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-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "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-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-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-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "dependencies": { + "lodash.isfinite": "^3.3.2" + } + }, + "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-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": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "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/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/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.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", + "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "dev": true + }, + "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/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/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "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-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-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/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", + "dev": true, + "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": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "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/karma/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/karma/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/karma/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/karma/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/karma/node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/karma/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/karma/node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/karma/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/karma/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/karma/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/karma/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/karma/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/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "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.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "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": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 14.15.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/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, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/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, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "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/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/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": 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.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "dependencies": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "bin": { + "lt": "bin/lt.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/localtunnel/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/localtunnel/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/localtunnel/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/localtunnel/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/localtunnel/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/localtunnel/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/localtunnel/node_modules/yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "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.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/localtunnel/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "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/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/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/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dev": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "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==" + }, + "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==", + "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/micromatch/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/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "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/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.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "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-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/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/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-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-json-stream/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/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-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/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/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/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/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/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/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/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/mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "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/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/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/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/ng-zorro-antd": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/ng-zorro-antd/-/ng-zorro-antd-17.1.0.tgz", + "integrity": "sha512-1lpknv5QXTeXk9k01GLbmxuXLyfRCGF91hVl3NF6Fedef7OJIstOmLy2VxvXoAQxrRyuYsDkEke2GJRC33mxhw==", + "dependencies": { + "@angular/cdk": "^17.0.0", + "@ant-design/icons-angular": "^17.0.0", + "date-fns": "^2.16.1", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^17.0.0", + "@angular/common": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/platform-browser": "^17.0.0", + "@angular/router": "^17.0.0" + } + }, + "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-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": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz", + "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", + "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/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/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.1.tgz", + "integrity": "sha512-MQpL27ZrsJQ2kiAuQPpZb5LtJwydNRnI15QWXsf3WHERu4rzjRj6Zju/My2fov7tLuu3Gle/uoIX/DDZ3u4O4Q==", + "dev": true, + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.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/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==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "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.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "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/openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", + "dev": true + }, + "node_modules/opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/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/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": "17.0.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz", + "integrity": "sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "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": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "devOptional": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" + }, + "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, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.1.0.tgz", + "integrity": "sha512-sjbLMi3sokkie+qmtZpkfMCUJTpbxJm/wvaPzU28vmYSsTSW8xk9JcFUsbqGJdtPpIQ9tuj+iDcTtgZjwnOSig==", + "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": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, + "dependencies": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + }, + "engines": { + "node": ">=0.4", + "npm": ">=1.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", + "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.2.0", + "jiti": "^1.18.2", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.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.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "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-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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/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/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/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/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qqmap": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/qqmap/-/qqmap-1.0.1.tgz", + "integrity": "sha512-fg9WrQj+sB5+gHt4i0TTg9ySB4PxZX8MCX5CRpuNpWBwRuPS58gZP3WkvVrOql2vz2JpYjlxV+52T3H7WLRMOQ==" + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "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/read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "dev": true, + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/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/read-package-json/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "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/readdirp/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/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "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.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "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/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "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": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "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": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "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.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "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/resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/resp-modifier/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/resp-modifier/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/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": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "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/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "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/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "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/rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.69.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", + "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", + "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": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", + "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.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 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sass/node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/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/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "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/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/send/node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true + }, + "node_modules/send/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/send/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/send/node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true, + "bin": { + "mime": "cli.js" + } + }, + "node_modules/send/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/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/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/send/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "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": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "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": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", + "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.1.0", + "@sigstore/tuf": "^2.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "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/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/socket.io": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, + "dependencies": { + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-client": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", + "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.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.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", + "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "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-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/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "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": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "dependencies": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + }, + "bin": { + "throttleproxy": "bin/throttleproxy.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "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-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/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "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-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "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/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-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.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/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/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/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/tar/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/terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "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/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.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "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/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/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/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/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/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/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", + "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==", + "dev": true, + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "5.27.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", + "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "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.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", + "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "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": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", + "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "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-server/node_modules/ws": { + "version": "8.15.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz", + "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==", + "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/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "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/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.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "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/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/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": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "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/xhr2": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz", + "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.2.tgz", + "integrity": "sha512-X4U7J1isDhoOmHmFWiLhloWc2lzMkdnumtfQ1LXzf/IOZp5NQYuMUTaviVzG/q1ugMBIXzin2AqeVJUoSEkNyQ==", + "dependencies": { + "tslib": "^2.3.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..eaa4104 --- /dev/null +++ b/package.json @@ -0,0 +1,46 @@ +{ + "name": "oa-web", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test", + "serve:ssr:hai-oil-web": "node dist/hai-oil-web/server/server.mjs" + }, + "private": true, + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/router": "^17.0.0", + "@angular/ssr": "^17.0.7", + "express": "^4.18.2", + "ng-zorro-antd": "^17.1.0", + "qqmap": "^1.0.1", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.7", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.0", + "@types/express": "^4.17.17", + "@types/jasmine": "~5.1.0", + "@types/node": "^18.18.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } +} diff --git a/server.ts b/server.ts new file mode 100644 index 0000000..7083b14 --- /dev/null +++ b/server.ts @@ -0,0 +1,56 @@ +import { APP_BASE_HREF } from '@angular/common'; +import { CommonEngine } from '@angular/ssr'; +import express from 'express'; +import { fileURLToPath } from 'node:url'; +import { dirname, join, resolve } from 'node:path'; +import bootstrap from './src/main.server'; + +// The Express app is exported so that it can be used by serverless Functions. +export function app(): express.Express { + const server = express(); + const serverDistFolder = dirname(fileURLToPath(import.meta.url)); + const browserDistFolder = resolve(serverDistFolder, '../browser'); + const indexHtml = join(serverDistFolder, 'index.server.html'); + + const commonEngine = new CommonEngine(); + + server.set('view engine', 'html'); + server.set('views', browserDistFolder); + + // Example Express Rest API endpoints + // server.get('/api/**', (req, res) => { }); + // Serve static files from /browser + server.get('*.*', express.static(browserDistFolder, { + maxAge: '1y' + })); + + // All regular routes use the Angular engine + server.get('*', (req, res, next) => { + const { protocol, originalUrl, baseUrl, headers } = req; + + commonEngine + .render({ + bootstrap, + documentFilePath: indexHtml, + url: `${protocol}://${headers.host}${originalUrl}`, + publicPath: browserDistFolder, + providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }], + }) + .then((html) => res.send(html)) + .catch((err) => next(err)); + }); + + return server; +} + +function run(): void { + const port = process.env['PORT'] || 4000; + + // Start up the Node server + const server = app(); + server.listen(port, () => { + console.log(`Node Express server listening on http://localhost:${port}`); + }); +} + +run(); diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 0000000..0680b43 --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1 @@ + diff --git a/src/app/app.component.less b/src/app/app.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/app.component.ts b/src/app/app.component.ts new file mode 100644 index 0000000..bf3c0e0 --- /dev/null +++ b/src/app/app.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterOutlet } from '@angular/router'; + +@Component({ + selector: 'app-root', + standalone: true, + imports: [CommonModule, RouterOutlet], + templateUrl: './app.component.html', + styleUrl: './app.component.less' +}) +export class AppComponent { +} diff --git a/src/app/app.config.server.ts b/src/app/app.config.server.ts new file mode 100644 index 0000000..b4d57c9 --- /dev/null +++ b/src/app/app.config.server.ts @@ -0,0 +1,11 @@ +import { mergeApplicationConfig, ApplicationConfig } from '@angular/core'; +import { provideServerRendering } from '@angular/platform-server'; +import { appConfig } from './app.config'; + +const serverConfig: ApplicationConfig = { + providers: [ + provideServerRendering() + ] +}; + +export const config = mergeApplicationConfig(appConfig, serverConfig); diff --git a/src/app/app.config.ts b/src/app/app.config.ts new file mode 100644 index 0000000..6b9ccc8 --- /dev/null +++ b/src/app/app.config.ts @@ -0,0 +1,31 @@ +import { ApplicationConfig, importProvidersFrom } from '@angular/core'; +import {provideRouter, RouteReuseStrategy} from '@angular/router'; + +import { routes } from './app.routes'; +import { provideClientHydration } from '@angular/platform-browser'; +import { zh_CN, provideNzI18n } from 'ng-zorro-antd/i18n'; +import { registerLocaleData } from '@angular/common'; +import zh from '@angular/common/locales/zh'; +import { FormsModule } from '@angular/forms'; +import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http'; +import {BrowserAnimationsModule, provideAnimations} from '@angular/platform-browser/animations'; +import {InitGuardService} from "./utils/initGuard.service"; +import {InterceptorService} from "./utils/Interceptor.service"; +import {AiRouteReuseStrategy} from "./utils/routeReuseStrategy"; + +registerLocaleData(zh); + +export const appConfig: ApplicationConfig = { + providers: [ + provideRouter(routes), + provideClientHydration(), + provideNzI18n(zh_CN), + importProvidersFrom(FormsModule), + importProvidersFrom(HttpClientModule), + provideAnimations(), + BrowserAnimationsModule, + InitGuardService, // 校验登录 + { provide: HTTP_INTERCEPTORS, useClass: InterceptorService, multi: true}, +/* { provide: RouteReuseStrategy, useClass: AiRouteReuseStrategy }*/ + ] +}; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts new file mode 100644 index 0000000..3e85376 --- /dev/null +++ b/src/app/app.routes.ts @@ -0,0 +1,42 @@ +import { Routes } from '@angular/router'; +import {IndexComponent} from "./pages/body/index/index.component"; +import {InitGuardService} from "./utils/initGuard.service"; +import {Error404Component} from "./pages/error/error404/error404.component"; +export const routes: Routes = [ + {path: '', pathMatch: 'full', redirectTo: 'admin/index'}, + { + path: 'login', + loadChildren: () => import('./pages/login/login.routes').then(m => m.LOGIN_ROUTES) + }, + { + path: 'index', + loadChildren: () => import('./pages/login/login.routes').then(m => m.LOGIN_ROUTES) + }, + { + path: 'admin', component: IndexComponent, + children: [ + { + path: 'index', + loadChildren: () => import('./pages/index/index.routes').then(m => m.INDEX_ROUTES), + canActivate: [InitGuardService] + }, + { + path: 'account', + loadChildren: () => import('./pages/account/account.routes').then(m => m.ACCOUNT_ROUTES), + canActivate: [InitGuardService] + }, + { + path: 'system', + loadChildren: () => import('./pages/system/system.routes').then(m => m.SYSTEM_ROUTES), + canActivate: [InitGuardService] + }, + ] + }, + { + path: 'error', + loadChildren: () => import('./pages/error/error.routes').then(m => m.ERROR_ROUTES), + }, + { + path: '**', component: Error404Component + }, +]; diff --git a/src/app/data/common/button.namespace.ts b/src/app/data/common/button.namespace.ts new file mode 100644 index 0000000..47a7466 --- /dev/null +++ b/src/app/data/common/button.namespace.ts @@ -0,0 +1,12 @@ +export interface Button { + menuName: string; + menuType: string; + menuUrl: string; + menuUrlImg: string; + menuPSid: number; + menuSort: string; + menuDesc: string; +} + +export let buttonData: Button[] = []; + diff --git a/src/app/data/common/dictionary.namespace.ts b/src/app/data/common/dictionary.namespace.ts new file mode 100644 index 0000000..eb18c1c --- /dev/null +++ b/src/app/data/common/dictionary.namespace.ts @@ -0,0 +1,13 @@ +export interface Dictionary { + codeType: string; + codeValue: string; + codeName: string; + codeDesc: string; + sortId: number; + ext1: string; + ext2: string; + ext3: string; +} + +export let dictionaryData: Dictionary[] = []; + diff --git a/src/app/data/login/localStorage.namespace.ts b/src/app/data/login/localStorage.namespace.ts new file mode 100644 index 0000000..26c5e97 --- /dev/null +++ b/src/app/data/login/localStorage.namespace.ts @@ -0,0 +1,5 @@ +export const USER_TOKEN = 'userToken'; +export const INIT_FLAG = 'initFlag'; +export const DATA = 'DATA'; +export const LOGIN_DATA = 'loginData'; + diff --git a/src/app/data/login/login.namespace.ts b/src/app/data/login/login.namespace.ts new file mode 100644 index 0000000..da61583 --- /dev/null +++ b/src/app/data/login/login.namespace.ts @@ -0,0 +1,5 @@ +export const backgroundImage = [ + "./assets/login/1.png", + "./assets/login/2.png", + "./assets/login/3.png"]; + diff --git a/src/app/data/menu/menu.namespace.ts b/src/app/data/menu/menu.namespace.ts new file mode 100644 index 0000000..f198a81 --- /dev/null +++ b/src/app/data/menu/menu.namespace.ts @@ -0,0 +1,9 @@ +export const menuData = [ + {title: "首页" , selected: true} , + {title: "商户管理" , selected: false} , + {title: "数据交易" , selected: false} , + {title: "产品中心" , selected: false} , + {title: "账号管理" , selected: false} , + {title: "营销工具" , selected: false} +]; + diff --git a/src/app/model/discount.interface.ts b/src/app/model/discount.interface.ts new file mode 100644 index 0000000..137c62a --- /dev/null +++ b/src/app/model/discount.interface.ts @@ -0,0 +1,25 @@ +export interface DiscountData { + id: number; + name: string; + img: string; + type: number; + condition: string; + price: string; + percentage: string; + effectiveDay: number; + effectiveNum: number; + createTime: string; + updateTime: string; + salesEndTime: string; +} + +export interface NodesDiscountGoods { + id: number; + discountId: number; + specsId: string; + specsName: string; + createTime: string; + goodsName: string; + SpecsName: string; + salePrice: string; +} diff --git a/src/app/pages/account/account.module.ts b/src/app/pages/account/account.module.ts new file mode 100644 index 0000000..20ac55b --- /dev/null +++ b/src/app/pages/account/account.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + + + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class AccountModule { } diff --git a/src/app/pages/account/account.routes.ts b/src/app/pages/account/account.routes.ts new file mode 100644 index 0000000..a988e79 --- /dev/null +++ b/src/app/pages/account/account.routes.ts @@ -0,0 +1,8 @@ +import { Routes } from '@angular/router'; +import {SysAccountComponent} from "./sys-account/sys-account.component"; +import {SysRoleComponent} from "./sys-role/sys-role.component"; + +export const ACCOUNT_ROUTES: Routes = [ + { path: 'sys_account', component: SysAccountComponent}, + { path: 'sys_role', component: SysRoleComponent}, +]; diff --git a/src/app/pages/account/sys-account/sys-account.component.html b/src/app/pages/account/sys-account/sys-account.component.html new file mode 100644 index 0000000..d2d21e6 --- /dev/null +++ b/src/app/pages/account/sys-account/sys-account.component.html @@ -0,0 +1,136 @@ +
+
+
+ + 用户名 + + + + +
+
+ + 登录账户 + + + + +
+
+ + 联系方式 + + + + +
+
+ + 账户状态 + + + + + + +
+
+ + + +
+
+
+ + + + + 用户名 + 登录账户 + 联系方式 + 账户状态 + 创建时间 + 更新时间 + 操作 + + + + + {{data.userName}} + {{data.loginName}} + {{data.telephone}} + {{data.status | dictionary: 'SEC_USER_STATUS'}} + {{data.createTime | date: 'yyyy-MM-dd HH:mm'}} + {{data.updateTime | date: 'yyyy-MM-dd HH:mm'}} + + 修改 + + + 更多 + + + + + + + + + 总计 {{ total }} 条 + + + + + +
+ + + 用户名 + + + + + + + 登录账户 + + + + + + + 联系方式 + + + + + + + 角色权限 + + + + + + + +
+ +
+ +
+
+
diff --git a/src/app/pages/account/sys-account/sys-account.component.less b/src/app/pages/account/sys-account/sys-account.component.less new file mode 100644 index 0000000..cae9ae7 --- /dev/null +++ b/src/app/pages/account/sys-account/sys-account.component.less @@ -0,0 +1,15 @@ +[nz-form-label] { + overflow: visible; +} +button { + margin-right: 8px; +} +.search-area { + text-align: left; +} +.submit-btn { + width: 150px; +} +.search_form { + margin-bottom: 15px; +} diff --git a/src/app/pages/account/sys-account/sys-account.component.ts b/src/app/pages/account/sys-account/sys-account.component.ts new file mode 100644 index 0000000..231577d --- /dev/null +++ b/src/app/pages/account/sys-account/sys-account.component.ts @@ -0,0 +1,322 @@ +import { Component } from '@angular/core'; +import {FormGroup, NonNullableFormBuilder, ReactiveFormsModule, Validators} from "@angular/forms"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {NzModalComponent, NzModalModule, NzModalService} from "ng-zorro-antd/modal"; +import {DatePipe, NgForOf, NgIf} from "@angular/common"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzDividerComponent} from "ng-zorro-antd/divider"; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import { + NzTableCellDirective, + NzTableComponent, NzTableModule, + NzTbodyComponent, + NzTheadComponent, + NzThMeasureDirective, NzTrDirective +} from "ng-zorro-antd/table"; +import {NzTreeComponent} from "ng-zorro-antd/tree"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzDropDownModule} from "ng-zorro-antd/dropdown"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; +import {Dictionary} from "../../../data/common/dictionary.namespace"; +import {SysAccountService} from "../../../services/account/sys-account.service"; +import {RoleService} from "../../../services/role/role.service"; + +@Component({ + selector: 'app-sys-account', + standalone: true, + imports: [ + DatePipe, + NgForOf, + NgIf, + NzButtonComponent, + NzColDirective, + NzDividerComponent, + NzFlexDirective, + NzFormControlComponent, + NzFormDirective, + NzFormItemComponent, + NzFormLabelComponent, + NzInputDirective, + NzModalComponent, + NzRowDirective, + NzTableCellDirective, + NzTableComponent, + NzTbodyComponent, + NzThMeasureDirective, + NzTheadComponent, + NzTrDirective, + NzTreeComponent, + ReactiveFormsModule, + NzTableModule, + NzModalModule, + NzSelectComponent, + NzOptionComponent, + NzDropDownModule, + NzIconDirective, + DictionaryPipe, + ], + templateUrl: './sys-account.component.html', + styleUrl: './sys-account.component.less' +}) +export class SysAccountComponent { + // 表单页数 + tablePageNum = 1; + // 表单数据 + tableData: any = { + total: 0, + list: [], + }; + accountStatus: Dictionary[] = [] + // 角色数据 + roleData: any = []; + // 搜索表单 + searchForm: FormGroup; + // 编辑账户弹出框 + editAccountVisible = false; + // 编辑账户表单 + editAccountForm: FormGroup; + // 编辑账户标题 + editAccountTitle = ''; + + constructor(private fb: NonNullableFormBuilder, + private sysAccountService: SysAccountService, + private roleService: RoleService, + private message: NzMessageService, + private modal: NzModalService) { + // 初始化搜索框 + this.searchForm = this.fb.group({ + userName: [''], + loginName: [''], + telephone: [''], + status: [''], + }); + + // 初始化账户表单 + this.editAccountForm = this.fb.group({ + id: [''], + userName: ['', [Validators.required]], + loginName: ['', [Validators.required]], + telephone: [''], + roleId: ['', [Validators.required]], + }); + this.accountStatus = new DictionaryPipe().getDictionaryList("SEC_USER_STATUS"); + this.queryAllRole(); + this.queryData(); + } + + /** + * 获取角色 + */ + queryAllRole() { + this.roleService.queryAllRole((data: any) => { + if (data['return_code'] == '000000') { + this.roleData = data['return_data']; + } + }); + } + + /** + * 获取数据 + */ + queryData() { + this.searchForm.value.pageNum = this.tablePageNum; + this.searchForm.value.pageSize = 10; + this.searchForm.value.objectType = 1; + this.searchForm.value.time = new Date().getTime(); + this.sysAccountService.queryList(this.searchForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.tableData = data['return_data']; + } + }); + } + + /** + * 搜索表单提交 + */ + searchFormSubmit(): void { + this.tablePageNum = 1; + this.queryData(); + } + + /** + * 搜索表单重置 + */ + searchFormReset(): void { + this.searchForm.reset(); + } + + /** + * 打开编辑账户模态框 + * @param edit 编辑荒唐 true:增加 false:修改 + * @param data + */ + showEditAccount(edit: boolean, data: any) { + if (edit) { + this.editAccountTitle = '创建账户'; + } else { + this.editAccountTitle = '修改账户'; + data['roleId'] = ""+data['roleId'] + this.editAccountForm.patchValue(data); + } + this.editAccountVisible = true; + } + + /** + * 提交表单 + */ + submitEditAccountForm() { + if (this.editAccountForm.valid) { + this.sysAccountService.editUser(this.editAccountForm.value, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + + this.message.create('success', '操作成功'); + + // 关闭弹窗 + this.closeEditAccount(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.editAccountForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭编辑账户模态框 + */ + closeEditAccount() { + this.editAccountForm.reset(); + this.editAccountVisible = false; + } + + /** + * 打开禁用账户确认框 + */ + showRestore(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定恢复账户状态?', + nzOnOk: () => this.restore(dataId) + }); + } + + /** + * 恢复 + */ + restore(dataId: number) { + const param = { + userId: dataId + } + this.sysAccountService.restore(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.success("操作成功"); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 打开禁用账户确认框 + */ + showDisable(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定禁用账户吗?禁用后无法登录!', + nzOnOk: () => this.disable(dataId) + }); + } + + /** + * 禁用 + */ + disable(dataId: number) { + const param = { + userId: dataId + } + this.sysAccountService.disable(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.success("操作成功"); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 打开密码重置确认框 + */ + showResetPwd(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定重置账户登录密码吗?', + nzOnOk: () => this.resetPwd(dataId) + }); + } + + /** + * 密码重置 + */ + resetPwd(dataId: number) { + const param = { + userId: dataId + } + this.sysAccountService.resetPwd(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.modal.success({ + nzTitle: '提示', + nzContent: '密码重置成功,新密码:123456' + }); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 展示删除数据 + */ + showDelData(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定删除该账户数据?', + nzOnOk: () => this.delData(dataId) + }); + } + + /** + * 删除数据 + */ + delData(dataId: number) { + const param = { + userId: dataId + } + this.sysAccountService.delete(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }); + } +} diff --git a/src/app/pages/account/sys-role/sys-role.component.html b/src/app/pages/account/sys-role/sys-role.component.html new file mode 100644 index 0000000..f1b1c68 --- /dev/null +++ b/src/app/pages/account/sys-role/sys-role.component.html @@ -0,0 +1,101 @@ +
+
+
+ + 角色名称 + + + + +
+
+ + + +
+
+
+ + + + + 角色名称 + 角色描述 + 创建时间 + 更新时间 + 操作 + + + + + {{data.roleName}} + {{data.roleDesc}} + {{data.createTime | date: 'yyyy-MM-dd HH:mm'}} + {{data.updateTime | date: 'yyyy-MM-dd HH:mm'}} + + 修改 + + 分配菜单 + + 删除 + + + + 总计 {{ total }} 条 + + + + + +
+ + 角色名称 + + + + + + + 角色描述 + + + + + +
+ +
+ +
+
+
+ + + + + + +
+ +
+
+
diff --git a/src/app/pages/account/sys-role/sys-role.component.less b/src/app/pages/account/sys-role/sys-role.component.less new file mode 100644 index 0000000..6d5c351 --- /dev/null +++ b/src/app/pages/account/sys-role/sys-role.component.less @@ -0,0 +1,12 @@ +[nz-form-label] { + overflow: visible; +} +button { + margin-left: 8px; +} +.submit-btn { + width: 150px; +} +.search-area { + margin-top: 30px; +} diff --git a/src/app/pages/account/sys-role/sys-role.component.ts b/src/app/pages/account/sys-role/sys-role.component.ts new file mode 100644 index 0000000..a1c22f1 --- /dev/null +++ b/src/app/pages/account/sys-role/sys-role.component.ts @@ -0,0 +1,291 @@ +import {Component, ViewChild} from '@angular/core'; +import { + NzTableComponent, + NzTableModule, + NzTbodyComponent, + NzTheadComponent, + NzThMeasureDirective +} from "ng-zorro-antd/table"; +import {NzDividerComponent} from "ng-zorro-antd/divider"; +import {NzFormDirective, NzFormModule} from "ng-zorro-antd/form"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import { + FormGroup, + NonNullableFormBuilder, + ReactiveFormsModule, Validators, +} from "@angular/forms"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {DatePipe, NgForOf, NgIf} from "@angular/common"; +import {NzModalComponent, NzModalModule, NzModalService} from "ng-zorro-antd/modal"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {NzInputNumberComponent} from "ng-zorro-antd/input-number"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzTreeComponent, NzTreeNodeOptions} from "ng-zorro-antd/tree"; +import {RoleService} from "../../../services/role/role.service"; +import {MenuService} from "../../../services/menu/menu.service"; + +@Component({ + selector: 'app-sys-role', + standalone: true, + imports: [ + NzTableComponent, + NzTheadComponent, + NzDividerComponent, + NzTbodyComponent, + NzFormDirective, + NzRowDirective, + ReactiveFormsModule, + NzColDirective, + NzButtonComponent, + NzIconDirective, + NzInputDirective, + NzFormModule, + NzFlexDirective, + NgForOf, + DatePipe, + NzThMeasureDirective, + NzInputNumberComponent, + NzModalComponent, + NzOptionComponent, + NzSelectComponent, + NzModalModule, + NgIf, + NzTreeComponent, + NzTableModule + ], + templateUrl: './sys-role.component.html', + styleUrl: './sys-role.component.less' +}) +export class SysRoleComponent { + // 表单页数 + tablePageNum = 1; + // 表单数据 + tableData: any = { + total: 0, + list: [], + }; + // 搜索表单 + searchForm: FormGroup; + // 编辑角色弹出框 + editRoleVisible = false; + // 编辑角色表单 + editRoleForm: FormGroup; + // 编辑角色标题 + editRoleTitle = ''; + // 分配角色菜单弹出框 + assignRoleMenuVisible = false; + + // 当前需要分配权限角色 + currentAssignRoleId: any = null; + // 菜单树 + menuTree: NzTreeNodeOptions[] = []; + // 菜单已勾选数据 + menuTreeCheckedKeys = []; + + @ViewChild('nzTreeComponent', { static: false }) nzTreeComponent!: NzTreeComponent; + + constructor(private fb: NonNullableFormBuilder, + private roleService: RoleService, + private menuService: MenuService, + private message: NzMessageService, + private modal: NzModalService) { + // 初始化搜索框 + this.searchForm = this.fb.group({ + roleName: [''], + }); + + // 初始化表单 + this.editRoleForm = this.fb.group({ + id: [''], + roleName: ['', [Validators.required]], + roleDesc: [''], + }); + + this.menuService.queryMenuTree((data: any) => { + this.menuTree = data['return_data']; + }); + + this.queryData(); + } + + /** + * 获取数据 + */ + queryData() { + this.searchForm.value.pageNum = this.tablePageNum; + this.searchForm.value.pageSize = 10; + this.searchForm.value.time = new Date().getTime(); + this.roleService.queryList(this.searchForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.tableData = data['return_data']; + } + }); + } + + /** + * 搜索表单提交 + */ + searchFormSubmit(): void { + this.tablePageNum = 1; + this.queryData(); + } + + /** + * 搜索表单重置 + */ + searchFormReset(): void { + this.searchForm.reset(); + } + + /** + * 打开编辑角色模态框 + * @param edit 编辑状态 ture:新增 false:修改 + * @param data 数据 + */ + showEditRole(edit: boolean, data: any) { + if (edit) { + this.editRoleTitle = '创建角色'; + } else { + this.editRoleTitle = '修改角色'; + this.editRoleForm.patchValue(data); + } + this.editRoleVisible = true; + } + + /** + * 打开编辑角色模态框 + * @param edit + */ + submitEditRoleForm() { + if (this.editRoleForm.valid) { + this.roleService.editRole(this.editRoleForm.value, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + + this.message.create('success', '操作成功'); + + // 关闭弹窗 + this.closeEditRole(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.editRoleForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭编辑角色模态框 + */ + closeEditRole() { + this.editRoleForm.reset(); + this.editRoleVisible = false; + } + + /** + * 展示删除数据 + */ + showDelData(dataId: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定删除数据?', + nzOnOk: () => this.delData(dataId) + }); + } + + /** + * 删除数据 + */ + delData(dataId: number) { + const param = { + id: dataId + } + this.roleService.delRole(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 打开分配角色菜单模态框 + * @param roleId + */ + showAssignRoleMenu(roleId: number) { + this.currentAssignRoleId = roleId; + this.menuService.queryRoleMenuArray(roleId, (data: any) => { + this.menuTreeCheckedKeys = data['return_data']; + }); + this.assignRoleMenuVisible = true; + } + + /** + * 菜单递归 + * @param data + * @param merIds + */ + recursionData(data: any, merIds: any): any { + for (let node of data.children) { + merIds.push(node.key) + if (node.children != null) { + this.recursionData(node,merIds); + } + } + } + + /** + * 提交分配角色菜单权限 + */ + submitAssignRoleMenu() { + let menuIds: any = []; + // 已勾选的菜单 + const checkedNodeList = this.nzTreeComponent.getCheckedNodeList(); + for (let node of checkedNodeList) { + menuIds.push(node.origin.key); + /*if (node.origin.children != null) { + menuIds.concat(this.recursionData(node.origin, menuIds)) + }*/ + }; + + // 半选状态的菜单 + const halfCheckedNodeList = this.nzTreeComponent.getHalfCheckedNodeList(); + for (let node of halfCheckedNodeList) { + menuIds.push(node.key); + } + + const param= { + roleId: this.currentAssignRoleId, + menuIds: menuIds + }; + this.menuService.assignMenu(param, (data: any) => { + if (data['return_code'] == '000000') { + this.message.create('success', '操作成功'); + this.closeAssignRoleMenu(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } + + /** + * 关闭分配角色菜单模态框 + */ + closeAssignRoleMenu() { + this.menuTreeCheckedKeys = []; + this.assignRoleMenuVisible = false; + } +} diff --git a/src/app/pages/body/body.module.ts b/src/app/pages/body/body.module.ts new file mode 100644 index 0000000..0b3e9e5 --- /dev/null +++ b/src/app/pages/body/body.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class BodyModule { } diff --git a/src/app/pages/body/index/index.component.html b/src/app/pages/body/index/index.component.html new file mode 100644 index 0000000..c7b630f --- /dev/null +++ b/src/app/pages/body/index/index.component.html @@ -0,0 +1,103 @@ + + + +
+ + + + + +
+
+ {{userInfo['userName']}} + +
    +
  • 修改密码
  • +
  • 退出登录
  • +
+
+
+
+
+
+ + + + +
+ +
+ +
+ +
+ +
+ + + + + + +
+
+ + + +
+ + + 旧密码 + + + + + + + 新密码 + + + + + + + 确认新密码 + + + + @if (control.errors?.['confirm']) { + 两次密码输入不一致! + } + + + + +
+ +
+
+
+
diff --git a/src/app/pages/body/index/index.component.less b/src/app/pages/body/index/index.component.less new file mode 100644 index 0000000..735b7cf --- /dev/null +++ b/src/app/pages/body/index/index.component.less @@ -0,0 +1,69 @@ +nz-header { + background: #181f47; + padding: 0 26px; + .logo { + h2 { + color: white; + } + } + .menu { + width: 52%; + display: flex; + justify-content: center; + ul { + li { + height: 56px; + float: left; + color: #fff; + opacity: .65; + font-size: 14px; + padding: 0 20px; + cursor: pointer; + } + .li-selected { + opacity: 1; + border-bottom: 2px solid #1890ff; + } + li:hover { + opacity: 1; + border-bottom: 2px solid #1890ff; + } + list-style-type: none; /* 移除列表的标记,如果需要的话 */ + padding: 0; /* 移除padding,如果需要的话 */ + } + } +} + +nz-sider { + background: #fff; + box-shadow: 2px 0 8px rgba(0,0,0,.15); + height: calc(100vh - 64px);; + + .trigger { + font-size: 18px; + line-height: 50px; + padding: 0 24px; + cursor: pointer; + transition: color 0.3s; + } + + .trigger:hover { + color: #1890ff; + } +} +nz-content { + padding: 0 0 0 4px; +} +.user { + div { + cursor: pointer; + float: right; + margin-right: 30px; + color: white; + white-space: nowrap; + text-align: left; + overflow: hidden; + text-overflow: ellipsis; + } + +} diff --git a/src/app/pages/body/index/index.component.ts b/src/app/pages/body/index/index.component.ts new file mode 100644 index 0000000..84366e7 --- /dev/null +++ b/src/app/pages/body/index/index.component.ts @@ -0,0 +1,246 @@ +import {Component, OnInit} from '@angular/core'; +import {Router, RouterLink, RouterOutlet} from "@angular/router"; +import { + NzContentComponent, + NzFooterComponent, + NzHeaderComponent, + NzLayoutComponent, + NzSiderComponent +} from "ng-zorro-antd/layout"; +import {NzBreadCrumbComponent, NzBreadCrumbItemComponent} from "ng-zorro-antd/breadcrumb"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzMenuDirective, NzMenuGroupComponent, NzMenuItemComponent, NzSubMenuComponent} from "ng-zorro-antd/menu"; +import {NgClass, NgForOf, NgIf} from "@angular/common"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {NzTabComponent, NzTabSetComponent} from "ng-zorro-antd/tabs"; +import {TabComponent} from "../tab/tab.component"; +import {BrowserStorageService} from "../../../utils/localStorage.service"; +import {DATA, INIT_FLAG, LOGIN_DATA, USER_TOKEN} from "../../../data/login/localStorage.namespace"; +import {NzDropDownDirective, NzDropdownMenuComponent} from "ng-zorro-antd/dropdown"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {Dictionary, dictionaryData} from "../../../data/common/dictionary.namespace"; +import {CommonService} from "../../../services/common/common.service"; +import {LoginService} from "../../../services/login/login.service"; +import {NzConfigService} from "ng-zorro-antd/core/config"; +import {buttonData} from "../../../data/common/button.namespace"; +import {SysAccountService} from "../../../services/account/sys-account.service"; +import { + AbstractControl, + FormGroup, + FormsModule, + NonNullableFormBuilder, + ReactiveFormsModule, ValidationErrors, ValidatorFn, + Validators +} from "@angular/forms"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzDatePickerComponent} from "ng-zorro-antd/date-picker"; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import {NzModalModule} from "ng-zorro-antd/modal"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzUploadComponent} from "ng-zorro-antd/upload"; +import {ValidatorsService} from "../../../utils/validators.service"; + +@Component({ + selector: 'app-index', + standalone: true, + imports: [ + RouterOutlet, + NzLayoutComponent, + NzHeaderComponent, + NzBreadCrumbComponent, + NzBreadCrumbItemComponent, + NzContentComponent, + NzFooterComponent, + NzRowDirective, + NzColDirective, + NzMenuItemComponent, + NzMenuDirective, + RouterLink, + NzSubMenuComponent, + NgForOf, + NgClass, + NzIconDirective, + NzTabComponent, + NzTabSetComponent, + TabComponent, + NzSiderComponent, + NzMenuGroupComponent, + NzDropDownDirective, + NzDropdownMenuComponent, + FormsModule, + NgIf, + NzButtonComponent, + NzDatePickerComponent, + NzFlexDirective, + NzFormControlComponent, + NzFormDirective, + NzFormItemComponent, + NzFormLabelComponent, + NzInputDirective, + NzOptionComponent, + NzSelectComponent, + NzUploadComponent, + ReactiveFormsModule, + NzModalModule, + ], + templateUrl: './index.component.html', + styleUrl: './index.component.less', +}) +export class IndexComponent implements OnInit { + // 菜单数据 + menuData: any = [{ + 'menuName' : '首页', + 'selected' : true, + }]; + userInfo: any; + // 左侧菜单栏数据 + leftMenuData: any = []; + // 侧边菜单展示开关 + isCollapse = true; + // 当前顶级菜单 + currentParentMenu: any = {}; + + updatePwdModal = false; + updatePwdForm: FormGroup; + + ngOnInit(): void { + // 缓存数据字典 + this.commonService.queryDictionary('','',(data: any) => { + dictionaryData.length = 0; + for (let item of data['return_data']) { + dictionaryData.push( + { + codeType: item.codeType, + codeValue: item.codeValue, + codeName: item.codeName, + codeDesc: item.codeDesc, + sortId: item.sortId, + ext1: item.ext1, + ext2: item.ext2, + ext3: item.ext3 + } + ); + } + }); + } + + constructor( + private commonService: CommonService, + private storage: BrowserStorageService, + private nzConfigService: NzConfigService, + private message: NzMessageService, + private fb: NonNullableFormBuilder, + private sysAccountService: SysAccountService, + private router: Router, // 路由 + private login: LoginService + ) { + // 缓存角色按钮权限 + for (let item of this.storage.get(DATA)['button']) { + buttonData.push( + { + menuName: item.menuName, + menuType: item.menuType, + menuUrl: item.menuUrl, + menuUrlImg: item.menuUrlImg, + menuPSid: item.menuPSid, + menuSort: item.menuSort, + menuDesc: item.menuDesc, + } + ); + } + + this.updatePwdForm = this.fb.group({ + userId: [ this.storage.get(DATA)['account']['id']], + oldPassword: ['', [Validators.required, ValidatorsService.minLength(6), ValidatorsService.maxLength(16)]], + newPassword: ['', [Validators.required, ValidatorsService.minLength(6), ValidatorsService.maxLength(16)]], + confirmPassword: ['', [Validators.required, this.confirmationValidator]], + }); + + this.menuData = this.menuData.concat(this.storage.get(DATA)['menuTree']); + this.userInfo = this.storage.get(DATA)['account']; + } + + /** + * 两次密码是否一致 + * @param control + */ + confirmationValidator: ValidatorFn = (control: AbstractControl): { [s: string]: boolean } => { + if (!control.value) { + return { required: true }; + } else if (control.value !== this.updatePwdForm.controls['newPassword'].value) { + return { confirm: true, error: true }; + } + return {}; + }; + + // 选择操作 + isSelected(item: any) { + this.menuData.map((data: any) => { + data.selected = data.menuName === item.menuName; + }); + if (item.menuName === '首页') { + // 激活首页路由 + this.router.navigateByUrl('/admin/index').finally(); + } + + this.currentParentMenu = item; + this.leftMenuData = item['childMenuList']; + this.isCollapse = item['menuName'] === '首页'; + + } + + /** + * 展示修改密码模态框 + */ + public showUpdatePwd() { + this.updatePwdModal = true; + } + + /** + * 提交修改密码表单 + */ + public submitUpdatePwd() { + if (this.updatePwdForm.valid) { + this.sysAccountService.updatePwd(this.updatePwdForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.message.success("修改成功,请重新登录"); + // 登出 + this.loginOut(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.updatePwdForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭修改密码表单 + */ + public closeUpdatePwd() { + this.updatePwdModal = false; + } + + // 退出登录 + public loginOut(): void { + this.login.loginOut( (data: any) => { + if (data['return_code'] === '000000') { + this.storage.remove(LOGIN_DATA); + this.storage.remove(DATA); + this.storage.remove(USER_TOKEN); + this.storage.remove(INIT_FLAG); + this.router.navigateByUrl('/login').then(); + } else { + this.message.error(data['return_msg']); + } + }); + } +} diff --git a/src/app/pages/body/menu/menu.module.ts b/src/app/pages/body/menu/menu.module.ts new file mode 100644 index 0000000..ff80347 --- /dev/null +++ b/src/app/pages/body/menu/menu.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + + + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class MenuModule { } diff --git a/src/app/pages/body/tab/tab.component.html b/src/app/pages/body/tab/tab.component.html new file mode 100644 index 0000000..02b4239 --- /dev/null +++ b/src/app/pages/body/tab/tab.component.html @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/app/pages/body/tab/tab.component.less b/src/app/pages/body/tab/tab.component.less new file mode 100644 index 0000000..bb0c823 --- /dev/null +++ b/src/app/pages/body/tab/tab.component.less @@ -0,0 +1,34 @@ +:host { + background: white; + overflow: hidden; + display: block; + height: 100%; +} + +.card-container ::ng-deep p { + margin: 0; +} +.card-container ::ng-deep > .ant-tabs-card .ant-tabs-content { + + margin-top: -16px; +} +.card-container ::ng-deep > .ant-tabs-card .ant-tabs-content > .ant-tabs-tabpane { + background: #f5f5f5; + padding: 16px; +} +.card-container ::ng-deep > .ant-tabs-card > .ant-tabs-nav::before { + display: none; +} +.card-container ::ng-deep > .ant-tabs-card .ant-tabs-tab { + border-color: transparent; + background: transparent; +} +.card-container ::ng-deep > .ant-tabs-card .ant-tabs-tab-active { + border-color: #f5f5f5; + background: #f5f5f5; +} + +nz-card { + height: calc(100vh - 114px); + overflow: auto; +} diff --git a/src/app/pages/body/tab/tab.component.ts b/src/app/pages/body/tab/tab.component.ts new file mode 100644 index 0000000..30f598c --- /dev/null +++ b/src/app/pages/body/tab/tab.component.ts @@ -0,0 +1,116 @@ +import { Component } from '@angular/core'; +import {NgForOf} from "@angular/common"; +import {NzTabComponent, NzTabSetComponent} from "ng-zorro-antd/tabs"; +import {ActivationEnd, Router, RouterOutlet} from "@angular/router"; +import {filter} from "rxjs"; +import {NzCardComponent} from "ng-zorro-antd/card"; + +@Component({ + selector: 'app-tab', + standalone: true, + imports: [ + NgForOf, + NzTabComponent, + NzTabSetComponent, + RouterOutlet, + NzCardComponent + ], + templateUrl: './tab.component.html', + styleUrl: './tab.component.less' +}) +export class TabComponent { + // 当前打开的Tab页 + activatedMenuIndex = -1; + // 存放已打开的Tab页信息 + tabs: { path: string, title: string }[] = [{ path: '/admin/index', title: '首页' }]; + constructor(private router: Router) { + // 激活首页路由 + this.router.navigateByUrl('/admin/index').finally(); + + // 监听路由事件,只订阅 ActivationEnd 事件 + this.router.events.pipe(filter(e => e instanceof ActivationEnd)) + .subscribe((e) => { + const thisEvt = e; + if (thisEvt.snapshot.routeConfig?.loadChildren) { + // 当前激活的路由 + // const activatedRoutePath = thisEvt.snapshot.routeConfig?.path; + const activatedRoutePath = this.router.url; + const routeData = thisEvt.snapshot.queryParams; + let menuTitle = '新标签页'; + if(routeData) { + menuTitle = routeData['title']; + } + + // 该路由是否已激活,激活过则直接打开 + let isExist = false; + this.tabs.every((t, i) => { + if(activatedRoutePath === t.path) { + this.activatedMenuIndex = i; + isExist = true; + return false; + } + return true; + }); + + // 指定路由不在tabs中存在(未激活或激活后关闭) + if(!isExist) { + this.activeMenu(activatedRoutePath, menuTitle); + } + } + }); + } + + // 点击菜单激活指定路由并保存tab页签 + activeMenu(menuPath: string | undefined, menuTitle: string): void { + if(!menuPath) return; + let menuIndex = -1; + this.tabs.every((t, i) => { + if(menuPath === t.path) { + menuIndex = i; + return false; + } + return true; + }); + + if(menuIndex === -1) { + this.tabs.push({path: menuPath, title: menuTitle}); + menuIndex = this.tabs.length - 1; + this.activatedMenuIndex = menuIndex; + } + } + // 激活路由 + activeRoute(path: string): void { + this.router.navigateByUrl(path).finally(); + } + + // 切换tab,激活对应路由 + toggleTab(path: string): void { + this.activeRoute(path); + } + + // tab页签关闭,从缓存中删除对应信息 + closeTab(tabsObj: any): void { + if (1 === this.tabs.length) return; + const path = this.tabs[tabsObj['index']]['path']; + + let selectedIndex = -1; + this.tabs.every((t, i) => { + if(t.path === path) { + selectedIndex = i; + return false; + } + + return true; + }); + this.tabs.splice(selectedIndex, 1); + + if(selectedIndex === this.activatedMenuIndex) { + let prevIndex = this.activatedMenuIndex - 1; + this.activatedMenuIndex = prevIndex > 0 ? prevIndex : 0; + this.activeRoute(this.tabs[this.activatedMenuIndex].path); + }else if (this.activatedMenuIndex > selectedIndex) { + this.activatedMenuIndex -= 1; + } + } + +} diff --git a/src/app/pages/cms/cms-list/cms-list.component.html b/src/app/pages/cms/cms-list/cms-list.component.html new file mode 100644 index 0000000..21d91bf --- /dev/null +++ b/src/app/pages/cms/cms-list/cms-list.component.html @@ -0,0 +1,176 @@ +
+
+ +
+ + 轮播图类型 + + + + + + +
+ +
+ + 状态 + + + + + + +
+ +
+ + + + + + + + +
+
+
+ + + + + 轮播类型 + 跳转类型 + 跳转地址 + 图片 + 状态 + 定时上线时间 + 定时下线时间 + 创建时间 + 操作 + + + + + {{data.type | dictionary : 'CMS_TYPE'}} + + 内链 + 外链 + + {{data.jumpUrl}} + + {{data.status | dictionary : 'CMS_STATUS'}} + + 未设置 + {{data.startTime | date : 'yyyy-MM-dd HH:mm'}} + + + 未设置 + {{data.endTime | date : 'yyyy-MM-dd HH:mm'}} + + {{data.createTime | date : 'yyyy-MM-dd HH:mm:ss'}} + + + 操作列表 + + + + + + + + 总计 {{ total }} 条 + + + + +
+ + + 轮播图类型 + + + + + + + + + 轮播图图片 + + + + +
上传
+
+ +
+
+
+ + + 跳转类型 + + + + + + + + + + 跳转地址 + + + + + + + 定时上线时间 + + + + + + + 定时下线时间 + + + + + +
+ +
+
+
+
diff --git a/src/app/pages/cms/cms-list/cms-list.component.less b/src/app/pages/cms/cms-list/cms-list.component.less new file mode 100644 index 0000000..91e13b5 --- /dev/null +++ b/src/app/pages/cms/cms-list/cms-list.component.less @@ -0,0 +1,12 @@ +nz-input-number { + width: 100%; +} +nz-date-picker { + width: 100%; +} +.submit-btn { + width: 150px; +} +nz-range-picker { + width: 100%; +} diff --git a/src/app/pages/cms/cms-list/cms-list.component.ts b/src/app/pages/cms/cms-list/cms-list.component.ts new file mode 100644 index 0000000..00ffced --- /dev/null +++ b/src/app/pages/cms/cms-list/cms-list.component.ts @@ -0,0 +1,333 @@ +import { Component } from '@angular/core'; +import {DatePipe, NgForOf, NgIf} from "@angular/common"; +import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; +import {FormGroup, FormsModule, NonNullableFormBuilder, ReactiveFormsModule, Validators} from "@angular/forms"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import { + NzCellFixedDirective, + NzTableCellDirective, + NzTableComponent, NzTableModule, + NzTbodyComponent, NzTheadComponent, + NzThMeasureDirective, NzTrDirective +} from "ng-zorro-antd/table"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzDatePickerComponent} from "ng-zorro-antd/date-picker"; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form"; +import {NzInputNumberComponent, NzInputNumberModule} from "ng-zorro-antd/input-number"; +import {NzModalComponent, NzModalModule, NzModalService} from "ng-zorro-antd/modal"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {BrowserStorageService} from "../../../utils/localStorage.service"; +import {CommonService} from "../../../services/common/common.service"; +import {DATA} from "../../../data/login/localStorage.namespace"; +import {NzDividerComponent} from "ng-zorro-antd/divider"; +import {NzDropDownADirective, NzDropDownDirective, NzDropdownMenuComponent} from "ng-zorro-antd/dropdown"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {NzInputDirective} from "ng-zorro-antd/input"; +import {NzMenuDirective, NzMenuItemComponent} from "ng-zorro-antd/menu"; +import {NzDescriptionsModule} from "ng-zorro-antd/descriptions"; +import {NzUploadComponent, NzUploadFile} from "ng-zorro-antd/upload"; +import {NzAvatarModule} from "ng-zorro-antd/avatar"; +import {NzImageModule} from "ng-zorro-antd/image"; +import {NzSwitchComponent} from "ng-zorro-antd/switch"; +import {environment} from "../../../../environments/environment"; +import {CmsService} from "../../../services/cms/cms.service"; +import {Observable, Observer} from "rxjs"; + +@Component({ + selector: 'app-cms-list', + standalone: true, + imports: [ + DatePipe, + DictionaryPipe, + FormsModule, + NgForOf, + NgIf, + NzButtonComponent, + NzCellFixedDirective, + NzColDirective, + NzDividerComponent, + NzDropDownADirective, + NzDropDownDirective, + NzDropdownMenuComponent, + NzFormControlComponent, + NzFormDirective, + NzFormItemComponent, + NzFormLabelComponent, + NzIconDirective, + NzInputDirective, + NzMenuDirective, + NzMenuItemComponent, + NzOptionComponent, + NzRowDirective, + NzSelectComponent, + NzTableCellDirective, + NzTableComponent, + NzTbodyComponent, + NzThMeasureDirective, + NzTheadComponent, + NzTrDirective, + ReactiveFormsModule, + NzTableModule, + NzModalModule, + NzFlexDirective, + NzDescriptionsModule, + NzUploadComponent, + NzAvatarModule, + NzImageModule, + NzSwitchComponent, + NzDatePickerComponent, + NzInputNumberModule + ], + templateUrl: './cms-list.component.html', + styleUrl: './cms-list.component.less' +}) +export class CmsListComponent { + BASE_URL = environment.baseUrl; + IMAGE_URL = environment.imageUrl; + loading = false; + logoUrl?: string; + // 表单页数 + tablePageNum = 1; + // 每页数量 + tablePageSize = 10; + // 表单数据 + tableData: any = { + total: 0, + list: [], + }; + accountType = null; + // 搜索表单 + searchForm: FormGroup; + // 编辑表单 + editCmsForm: FormGroup; + editCmsModal = false; + // 轮播图类型 + cmsTypeArray = new DictionaryPipe().getDictionaryList('CMS_TYPE'); + // 轮播图状态 + cmsStatusArray = new DictionaryPipe().getDictionaryList('CMS_STATUS'); + constructor(private fb: NonNullableFormBuilder, + private message: NzMessageService, + private storage: BrowserStorageService, + private cmsService: CmsService, + private commonService: CommonService, + private modal: NzModalService) { + this.accountType = this.storage.get(DATA)['account']['objectType']; + + // 初始化搜索框 + this.searchForm = this.fb.group({ + type: [null], + status: [null], + }); + + this.editCmsForm = this.fb.group({ + id: [''], + type: ['', [Validators.required]], + imgUrl: ['', [Validators.required]], + jumpType: [''], + jumpUrl: [''], + startTime: [''], + endTime: [''], + }); + // 查询数据 + this.queryData(); + } + + /** + * 获取数据 + */ + queryData() { + this.searchForm.value.pageNum = this.tablePageNum; + this.searchForm.value.pageSize = this.tablePageSize; + this.searchForm.value.time = new Date().getTime(); + this.cmsService.queryList(this.searchForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.tableData = data['return_data']; + } + }); + } + + /** + * 搜索表单提交 + */ + searchFormSubmit(): void { + this.tablePageNum = 1; + this.queryData(); + } + + /** + * 搜索表单重置 + */ + searchFormReset(): void { + this.searchForm.reset(); + } + + /** + * 删除 + */ + delCms(id: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定删除吗?', + nzOnOk: () => + this.cmsService.delete({id: id}, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }) + }); + } + + /** + * 下线 + */ + offline(id: number) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确定轮播图下线吗?', + nzOnOk: () => + this.cmsService.offline({id: id}, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }) + }); + } + + /** + * 上线 + */ + online(data: any) { + this.modal.confirm({ + nzTitle: '提示', + nzContent: data.startTime!=null?'已设置自动上线时间,确定需要提前上线吗?':'确定立即上线吗?', + nzOnOk: () => + this.cmsService.online({id: data.id}, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryData(); + this.message.create('success', '操作成功'); + } else { + this.message.create('error', data['return_msg']); + } + }) + }); + } + + /** + * 打开编辑模态框 + */ + showEditCmsModal(data: any) { + if (data != null) { + this.logoUrl = this.IMAGE_URL + data['imgUrl']; + data['type'] = ''+data['type']; + data['jumpType'] = ''+data['jumpType']; + } + this.editCmsForm.patchValue(data); + this.editCmsModal = true; + } + + /** + * 提交数据 + */ + submitData() { + if (this.editCmsForm.valid) { + if (this.editCmsForm.value.startTime != null && this.editCmsForm.value.startTime != '') { + console.log(this.editCmsForm.value.startTime); + let startTime = new Date(this.editCmsForm.value.startTime); + startTime.setSeconds(0,0); + console.log(startTime.getTime()) + this.editCmsForm.controls['startTime'].setValue(startTime.getTime()); + } + if (this.editCmsForm.value.endTime != null && this.editCmsForm.value.endTime != '') { + let endTime = new Date(this.editCmsForm.value.endTime); + endTime.setSeconds(0,0); + this.editCmsForm.controls['endTime'].setValue(endTime.getTime()); + } + this.cmsService.edit(this.editCmsForm.value, (data: any) => { + if (data['return_code'] == '000000') { + this.message.create('success', '操作成功'); + // 刷新数据 + this.queryData(); + // 关闭弹窗 + this.closeEditModal(); + // 表单重置 + this.editCmsForm.reset(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.editCmsForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭编辑任务模态框 + */ + closeEditModal() { + this.editCmsForm.reset(); + this.logoUrl = ''; + this.editCmsModal = false; + } + + private getBase64(img: File, callback: (img: string) => void): void { + const reader = new FileReader(); + reader.addEventListener('load', () => callback(reader.result!.toString())); + reader.readAsDataURL(img); + } + + handleChange(info: { file: NzUploadFile }): void { + switch (info.file.status) { + case 'uploading': + this.loading = true; + break; + case 'done': + // Get this url from response in real world. + this.getBase64(info.file!.originFileObj!, (img: string) => { + this.loading = false; + this.logoUrl = img; + }); + // 不是自建站,拼接绝对路径访问链接 + this.editCmsForm.patchValue({ imgUrl: info.file.response['return_data'][0]}); + break; + case 'error': + this.message.error('网络错误!'); + this.loading = false; + break; + } + } + + beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]) => { + return new Observable((observer: Observer) => { + const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; + if (!isJpgOrPng) { + this.message.error('只能上传JPG文件!'); + observer.complete(); + return; + } + const isLt2M = file.size! / 1024 / 1024 < 2; + if (!isLt2M) { + this.message.error('图片必须小于2MB!'); + observer.complete(); + return; + } + observer.next(isJpgOrPng && isLt2M); + observer.complete(); + }); + }; +} diff --git a/src/app/pages/error/error.module.ts b/src/app/pages/error/error.module.ts new file mode 100644 index 0000000..d4b3183 --- /dev/null +++ b/src/app/pages/error/error.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + + + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class ErrorModule { } diff --git a/src/app/pages/error/error.routes.ts b/src/app/pages/error/error.routes.ts new file mode 100644 index 0000000..b150546 --- /dev/null +++ b/src/app/pages/error/error.routes.ts @@ -0,0 +1,15 @@ +import { Routes } from '@angular/router'; +import {Error403Component} from "./error403/error403.component"; +import {Error404Component} from "./error404/error404.component"; +import {Error500Component} from "./error500/error500.component"; +import {Error401Component} from "./error401/error401.component"; + + + +export const ERROR_ROUTES: Routes = [ + + { path: '401', component: Error401Component }, + { path: '403', component: Error403Component }, + { path: '404', component: Error404Component }, + { path: '500', component: Error500Component }, +]; diff --git a/src/app/pages/error/error401/error401.component.html b/src/app/pages/error/error401/error401.component.html new file mode 100644 index 0000000..727e860 --- /dev/null +++ b/src/app/pages/error/error401/error401.component.html @@ -0,0 +1,5 @@ + +
+ +
+
diff --git a/src/app/pages/error/error401/error401.component.less b/src/app/pages/error/error401/error401.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/error/error401/error401.component.ts b/src/app/pages/error/error401/error401.component.ts new file mode 100644 index 0000000..deb3ba9 --- /dev/null +++ b/src/app/pages/error/error401/error401.component.ts @@ -0,0 +1,44 @@ +import { Component } from '@angular/core'; +import {NzResultModule} from "ng-zorro-antd/result"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {BrowserStorageService} from "../../../utils/localStorage.service"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {Router} from "@angular/router"; +import {LoginService} from "../../../services/login/login.service"; +import {DATA, INIT_FLAG, LOGIN_DATA, USER_TOKEN} from "../../../data/login/localStorage.namespace"; + + +@Component({ + selector: 'app-error401', + standalone: true, + imports: [ + NzResultModule, + NzButtonComponent + ], + templateUrl: './error401.component.html', + styleUrl: './error401.component.less' +}) +export class Error401Component { + constructor( + private storage: BrowserStorageService, + private message: NzMessageService, + private router: Router, // 路由 + private login: LoginService + ) {} + + + // 退出登录 + public loginOut(): void { + this.login.loginOut( (data: any) => { + if (data['return_code'] === '000000') { + this.storage.remove(LOGIN_DATA); + this.storage.remove(DATA); + this.storage.remove(USER_TOKEN); + this.storage.remove(INIT_FLAG); + this.router.navigateByUrl('/login').then(); + } else { + this.message.error(data['return_msg']); + } + }); + } +} diff --git a/src/app/pages/error/error403/error403.component.html b/src/app/pages/error/error403/error403.component.html new file mode 100644 index 0000000..46c2520 --- /dev/null +++ b/src/app/pages/error/error403/error403.component.html @@ -0,0 +1,5 @@ + +
+ +
+
diff --git a/src/app/pages/error/error403/error403.component.less b/src/app/pages/error/error403/error403.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/error/error403/error403.component.ts b/src/app/pages/error/error403/error403.component.ts new file mode 100644 index 0000000..118fdfd --- /dev/null +++ b/src/app/pages/error/error403/error403.component.ts @@ -0,0 +1,29 @@ +import { Component } from '@angular/core'; +import {NzResultModule} from "ng-zorro-antd/result"; +import {NzButtonComponent} from "ng-zorro-antd/button"; + +import {Router} from "@angular/router"; + + +@Component({ + selector: 'app-error403', + standalone: true, + imports: [ + NzResultModule, + NzButtonComponent + ], + templateUrl: './error403.component.html', + styleUrl: './error403.component.less' +}) +export class Error403Component { + constructor( + + private router: Router, // 路由 + ) {} + + + // 退出登录 + public getHome(): void { + this.router.navigateByUrl('/admin/index').then(r => console.log("返回内容" ,r)); + } +} diff --git a/src/app/pages/error/error404/error404.component.html b/src/app/pages/error/error404/error404.component.html new file mode 100644 index 0000000..39d6250 --- /dev/null +++ b/src/app/pages/error/error404/error404.component.html @@ -0,0 +1,5 @@ + +
+ +
+
diff --git a/src/app/pages/error/error404/error404.component.less b/src/app/pages/error/error404/error404.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/error/error404/error404.component.ts b/src/app/pages/error/error404/error404.component.ts new file mode 100644 index 0000000..3cdfe47 --- /dev/null +++ b/src/app/pages/error/error404/error404.component.ts @@ -0,0 +1,27 @@ +import { Component } from '@angular/core'; +import {Router} from "@angular/router"; +import {NzResultModule} from "ng-zorro-antd/result"; +import {NzButtonComponent} from "ng-zorro-antd/button"; + +@Component({ + selector: 'app-error404', + standalone: true, + imports: [ + NzResultModule, + NzButtonComponent + ], + templateUrl: './error404.component.html', + styleUrl: './error404.component.less' +}) +export class Error404Component { + constructor( + + private router: Router, // 路由 + ) {} + + + // 退出登录 + public getHome(): void { + this.router.navigateByUrl('/admin/index').then(r => console.log("返回内容" ,r)); + } +} diff --git a/src/app/pages/error/error500/error500.component.html b/src/app/pages/error/error500/error500.component.html new file mode 100644 index 0000000..fdb4e3f --- /dev/null +++ b/src/app/pages/error/error500/error500.component.html @@ -0,0 +1,5 @@ + +
+ +
+
diff --git a/src/app/pages/error/error500/error500.component.less b/src/app/pages/error/error500/error500.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/error/error500/error500.component.ts b/src/app/pages/error/error500/error500.component.ts new file mode 100644 index 0000000..16a98f7 --- /dev/null +++ b/src/app/pages/error/error500/error500.component.ts @@ -0,0 +1,27 @@ +import { Component } from '@angular/core'; +import {NzResultModule} from "ng-zorro-antd/result"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {Router} from "@angular/router"; + +@Component({ + selector: 'app-error500', + standalone: true, + imports: [ + NzResultModule, + NzButtonComponent + ], + templateUrl: './error500.component.html', + styleUrl: './error500.component.less' +}) +export class Error500Component { + constructor( + + private router: Router, // 路由 + ) {} + + + // 退出登录 + public getHome(): void { + this.router.navigateByUrl('/admin/index').then(r => console.log("返回内容" ,r)); + } +} diff --git a/src/app/pages/index/index.module.ts b/src/app/pages/index/index.module.ts new file mode 100644 index 0000000..08c8bb0 --- /dev/null +++ b/src/app/pages/index/index.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ] +}) +export class IndexModule { } diff --git a/src/app/pages/index/index.routes.ts b/src/app/pages/index/index.routes.ts new file mode 100644 index 0000000..ae99859 --- /dev/null +++ b/src/app/pages/index/index.routes.ts @@ -0,0 +1,6 @@ +import { Routes } from '@angular/router'; +import {IndexComponent} from "./index/index.component"; + +export const INDEX_ROUTES: Routes = [ + { path: '', component: IndexComponent} +]; diff --git a/src/app/pages/index/index/index.component.html b/src/app/pages/index/index/index.component.html new file mode 100644 index 0000000..94839c3 --- /dev/null +++ b/src/app/pages/index/index/index.component.html @@ -0,0 +1,5 @@ + + diff --git a/src/app/pages/index/index/index.component.less b/src/app/pages/index/index/index.component.less new file mode 100644 index 0000000..e69de29 diff --git a/src/app/pages/index/index/index.component.ts b/src/app/pages/index/index/index.component.ts new file mode 100644 index 0000000..c75d7da --- /dev/null +++ b/src/app/pages/index/index/index.component.ts @@ -0,0 +1,21 @@ +import { Component } from '@angular/core'; +import {NzTabComponent, NzTabSetComponent} from "ng-zorro-antd/tabs"; +import {NgForOf, NgOptimizedImage} from "@angular/common"; +import {NzResultComponent} from "ng-zorro-antd/result"; + +@Component({ + selector: 'app-index', + standalone: true, + imports: [ + NzTabSetComponent, + NzTabComponent, + NgForOf, + NgOptimizedImage, + NzResultComponent + ], + templateUrl: './index.component.html', + styleUrl: './index.component.less' +}) +export class IndexComponent { + +} diff --git a/src/app/pages/login/login.module.ts b/src/app/pages/login/login.module.ts new file mode 100644 index 0000000..0fd089f --- /dev/null +++ b/src/app/pages/login/login.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { NzSliderModule } from 'ng-zorro-antd/slider'; +@NgModule({ + declarations: [], + imports: [ + CommonModule, + NzSliderModule, + ] +}) +export class LoginModule { } diff --git a/src/app/pages/login/login.routes.ts b/src/app/pages/login/login.routes.ts new file mode 100644 index 0000000..4adcd2e --- /dev/null +++ b/src/app/pages/login/login.routes.ts @@ -0,0 +1,6 @@ +import { Routes } from '@angular/router'; +import {LoginComponent} from "./login/login.component"; + +export const LOGIN_ROUTES: Routes = [ + { path: '', component: LoginComponent} +]; diff --git a/src/app/pages/login/login/login.component.html b/src/app/pages/login/login/login.component.html new file mode 100644 index 0000000..ffc91d8 --- /dev/null +++ b/src/app/pages/login/login/login.component.html @@ -0,0 +1,65 @@ +
+ + + + +
+ diff --git a/src/app/pages/login/login/login.component.less b/src/app/pages/login/login/login.component.less new file mode 100644 index 0000000..5781420 --- /dev/null +++ b/src/app/pages/login/login/login.component.less @@ -0,0 +1,78 @@ +.bg { + //背景图 + width: 100%; + height: 100%; + background: linear-gradient(126deg, #0f75ff, #2cd8d4); + overflow: hidden; + //登录框 + .login-box { + width: 1000px; + height: 660px; + background: white; + margin: 200px auto 0; + border-radius: 10px; + //盒子大小 + .login-box-size { + width: 50%; + height: 660px; + float: left; + border-radius: 10px; + //盒子中图片 + + [nz-carousel-content] { + text-align: center; + height: 450px; + margin-top: 100px; + color: #fff; + overflow: hidden; + } + h1 { + margin-top: 70px; + color: #0f75ff; + font-weight: bold; + letter-spacing: 4px; + } + } + .box-left { + background: #f2f5fa; + } + .box-center { + text-align: center; + } + + } + .footer { + text-align: center; + width: 100%; + height: 50px; + line-height: 50px; + position: fixed; + bottom: 0; + background: white; + } +} +.login-form { + margin-top: 50px; + margin-left: 40px; + max-width: 400px; + .take_care { + color: red; + font-size: 20px; + } + input { + height: 32px; + } + nz-form-control { + margin-top: 10px; + } +} + +.login-form-margin { + margin-bottom: 16px; + float: right; +} + +.login-form-button { + margin-top: 20px; + width: 100%; +} diff --git a/src/app/pages/login/login/login.component.ts b/src/app/pages/login/login/login.component.ts new file mode 100644 index 0000000..e86e249 --- /dev/null +++ b/src/app/pages/login/login/login.component.ts @@ -0,0 +1,126 @@ +import {Component} from '@angular/core'; +import {NzCarouselComponent, NzCarouselContentDirective} from "ng-zorro-antd/carousel"; +import {NgForOf, NgOptimizedImage} from "@angular/common"; +import {NzFormControlComponent, NzFormDirective, NzFormItemComponent} from "ng-zorro-antd/form"; +import { + FormControl, + FormGroup, + NonNullableFormBuilder, + ReactiveFormsModule, + Validators +} from "@angular/forms"; +import {NzInputDirective, NzInputGroupComponent} from "ng-zorro-antd/input"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzCheckboxComponent} from "ng-zorro-antd/checkbox"; +import {backgroundImage} from "../../../data/login/login.namespace"; +import {NzSliderComponent} from "ng-zorro-antd/slider"; +import {MathUtils} from "../../../utils/mathUtils.service"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {DATA, INIT_FLAG, LOGIN_DATA, USER_TOKEN} from "../../../data/login/localStorage.namespace"; +import {Router} from "@angular/router"; +import {BrowserStorageService} from "../../../utils/localStorage.service"; +import {LoginService} from "../../../services/login/login.service"; +import {dictionaryData} from "../../../data/common/dictionary.namespace"; +import {buttonData} from "../../../data/common/button.namespace"; + + + +@Component({ + selector: 'app-login', + standalone: true, + templateUrl: './login.component.html', + host: {ngSkipHydration: 'true'}, + imports: [ + NzCarouselComponent, + NzCarouselContentDirective, + NgForOf, + NgOptimizedImage, + NzInputGroupComponent, + NzFormItemComponent, + ReactiveFormsModule, + NzFormControlComponent, + NzColDirective, + NzButtonComponent, + NzCheckboxComponent, + NzInputDirective, + NzRowDirective, + NzFormDirective, + NzSliderComponent, + + ], + + styleUrl: './login.component.less' +}) +export class LoginComponent { + + constructor( + private fb: NonNullableFormBuilder, + private message: NzMessageService, + private router: Router, // 路由 + private storage: BrowserStorageService, + private login: LoginService + ) { + this.validateForm.patchValue(this.storage.get(LOGIN_DATA)); + } + + // 背景图片 + backgroundImage = backgroundImage; + // 验证随机数 + randomNumber = MathUtils.generateRandomNumber(100); + + // 表单 + validateForm: FormGroup<{ + loginName: FormControl; + password: FormControl; + slider: FormControl; + remember: FormControl; + }> = this.fb.group({ + loginName: ['', [Validators.required]], + password: ['', [Validators.required]], + slider: ['', [Validators.required]], + remember: [true] + }); + + + + // 登录 + submitForm(): void { + if (this.validateForm.valid) { + if (Number(this.validateForm.value.slider) !== this.randomNumber) { + this.message.warning('验证不通过!') + this.randomNumber = MathUtils.generateRandomNumber(100) + return; + } + // 发起登录 + this.login.userLogin(this.validateForm.value , (data: any) => { + if (data['return_code'] === '000000') { + this.storage.set(LOGIN_DATA, this.validateForm.value); + this.storage.set(DATA, data['return_data']['object']); + this.storage.set(USER_TOKEN, data['return_data']['token']); + this.storage.set(INIT_FLAG, true); + this.router.navigateByUrl('/admin/index'); + } else { + this.message.error(data['return_msg']); + } + }); + + this.randomNumber = MathUtils.generateRandomNumber(100) + + } else { + Object.values(this.validateForm.controls).forEach(control => { + if (control.invalid) { + // 表单脏检查 + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + + + + + +} diff --git a/src/app/pages/system/menu/menu.component.html b/src/app/pages/system/menu/menu.component.html new file mode 100644 index 0000000..e97f270 --- /dev/null +++ b/src/app/pages/system/menu/menu.component.html @@ -0,0 +1,106 @@ +
+ +
+ + + + +
+ +
+ + + {{menuDetail?.parentMenu?menuDetail.parentMenu.menuName:'无'}} + {{menuDetail.menuName?menuDetail.menuName:'无'}} + {{menuDetail.menuType | dictionary: '菜单类型'}} + {{menuDetail.menuUrl?menuDetail.menuUrl:'无'}} + {{menuDetail.menuUrlImg?menuDetail.menuUrlImg:'无'}} + {{menuDetail.menuDesc?menuDetail.menuDesc:'无'}} + + + +
+
+
+
+
+
+
+
+ + + +
+ + 父级菜单 + + + + + + + 菜单名称 + + + + + + + 菜单类型 + + + + + + + + + 菜单URL + + + + + + + 菜单顺序 + + + + + + + 图标URL + + + + + + + 菜单描述 + + + + + +
+ +
+ +
+
+
diff --git a/src/app/pages/system/menu/menu.component.less b/src/app/pages/system/menu/menu.component.less new file mode 100644 index 0000000..749f89a --- /dev/null +++ b/src/app/pages/system/menu/menu.component.less @@ -0,0 +1,6 @@ +.submit-btn { + width: 150px; +} +nz-input-number { + width: 100%; +} diff --git a/src/app/pages/system/menu/menu.component.ts b/src/app/pages/system/menu/menu.component.ts new file mode 100644 index 0000000..0018b57 --- /dev/null +++ b/src/app/pages/system/menu/menu.component.ts @@ -0,0 +1,253 @@ +import {Component} from '@angular/core'; +import {NzTreeComponent} from "ng-zorro-antd/tree"; +import {NgForOf, NgIf} from "@angular/common"; +import {NzIconDirective} from "ng-zorro-antd/icon"; +import {NzDropdownMenuComponent} from "ng-zorro-antd/dropdown"; +import { + NzTreeNodeCheckboxComponent, + NzTreeNodeComponent, + NzTreeNodeOptionComponent, + NzTreeViewComponent +} from "ng-zorro-antd/tree-view"; +import {NzCardComponent} from "ng-zorro-antd/card"; +import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; +import {NzButtonComponent} from "ng-zorro-antd/button"; +import {NzDescriptionsComponent, NzDescriptionsItemComponent} from "ng-zorro-antd/descriptions"; +import {NzFormDirective, NzFormLabelComponent, NzFormModule} from "ng-zorro-antd/form"; +import {FormGroup, NonNullableFormBuilder, ReactiveFormsModule, Validators} from "@angular/forms"; +import {NzInputDirective, NzInputGroupComponent} from "ng-zorro-antd/input"; +import {NzModalModule, NzModalService} from 'ng-zorro-antd/modal'; +import {NzFlexDirective} from "ng-zorro-antd/flex"; +import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; +import {NzInputNumberComponent} from "ng-zorro-antd/input-number"; +import {NzMessageService} from "ng-zorro-antd/message"; +import {NzSpinComponent} from "ng-zorro-antd/spin"; +import {NzTreeSelectComponent} from "ng-zorro-antd/tree-select"; +import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; +import {Dictionary} from "../../../data/common/dictionary.namespace"; +import {MenuService} from "../../../services/menu/menu.service"; + +@Component({ + selector: 'app-menu', + standalone: true, + imports: [ + NzTreeComponent, + NgIf, + NzIconDirective, + NzDropdownMenuComponent, + NzTreeViewComponent, + NzTreeNodeComponent, + NzTreeNodeCheckboxComponent, + NzTreeNodeOptionComponent, + NzCardComponent, + NzRowDirective, + NzColDirective, + NzButtonComponent, + NzModalModule, + NzFormDirective, + ReactiveFormsModule, + NzFormLabelComponent, + NzInputDirective, + NzDescriptionsItemComponent, + NzDescriptionsComponent, + NzInputGroupComponent, + NzFormModule, + NzFlexDirective, + NzSelectComponent, + NzOptionComponent, + NgForOf, + NzInputNumberComponent, + NzSpinComponent, + NzTreeSelectComponent, + DictionaryPipe + ], + templateUrl: './menu.component.html', + styleUrl: './menu.component.less' +}) +export class MenuComponent { + // 菜单数据 + menuData: any = []; + // 菜单树形数据 + menuTree: any[] = []; + // 菜单详情 + menuDetail: any = {}; + // 编辑菜单弹出框 + editMenuVisible = false; + // 编辑菜单表单 + editMenuForm: FormGroup; + // 编辑菜单标题 + editMenuTitle = ''; + // 树视图展示状态 + treeView= false; + menuTypeArray:Dictionary[] = []; + constructor(private menuService: MenuService, + private fb: NonNullableFormBuilder, + private modal: NzModalService, + private message: NzMessageService) { + // 菜单类型 + this.menuTypeArray = new DictionaryPipe().getDictionaryList('MENU_TYPE'); + + // 获取菜单数据 + this.queryMenuTree(); + + this.editMenuForm = this.fb.group({ + id: [], + menuName: ['', [Validators.required]], + menuType: ['1', [Validators.required]], + menuUrl: ['', [Validators.required]], + menuPSid: [null], + menuUrlImg: [''], + menuSort: ['', [Validators.required]], + menuDesc: [''], + }); + } + + /** + * 获取菜单树 + */ + queryMenuTree() { + this.menuService.queryMenuTree((data: any) => { + this.menuTree = data['return_data']; + this.treeView = true; + this.queryMenuData(); + }); + } + + /** + * 查询菜单原始数据 + */ + queryMenuData() { + this.menuService.queryMenuList((data: any) => { + this.menuData = data['return_data']; + }); + } + + /** + * 点击树节点 + * @param nodeData + */ + clickNode(nodeData: any) { + const menuId = nodeData['keys'][0]; + if (menuId != null) { + const menuObj = this.menuData.find((o: any) => o.id == menuId); + if (menuObj != null && menuObj.menuPSid != null) { + // 获取父级菜单 + menuObj['parentMenu'] = this.menuData.find((o: any) => o.id == menuObj.menuPSid); + } + this.menuDetail = menuObj; + } + } + + /** + * 编辑菜单 + * @param edit 编辑状态 true:增加 false:修改 + */ + openEditMenu(edit: boolean) { + // 初始化表单 + this.editMenuTitle = '添加菜单'; + this.editMenuForm.reset(); + let menu = { + menuPSid: '', + menuType: '1' + }; + + if (edit == false && this.menuDetail?.id == null) { + this.modal.warning({ + nzTitle: '提示', + nzContent: '请点击需要修改的菜单', + }); + return; + } + + if (this.menuDetail != null) { + if (edit) { + // 增加 + menu = { + menuPSid: ""+this.menuDetail.id, + menuType: '1' + }; + } else { + // 修改 + this.editMenuTitle = '修改菜单'; + menu = this.menuDetail; + menu['menuPSid'] = ""+menu['menuPSid'] + menu['menuType'] = ""+menu['menuType'] + } + } + this.editMenuForm.patchValue(menu); + this.editMenuVisible = true; + } + + /** + * 提交表单 + */ + submitEditMenuForm() { + if (this.editMenuForm.valid) { + this.treeView = false; + console.log(this.editMenuForm.controls['menuPSid'].value); + if (this.editMenuForm.controls['menuPSid'].value == 'undefined') { + this.editMenuForm.controls['menuPSid'].setValue(null); + } + console.log(this.editMenuForm.value); + this.menuService.editMenu(this.editMenuForm.value, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryMenuTree(); + + this.message.create('success', '操作成功'); + + // 关闭弹窗 + this.closeEditMenu(); + } else { + this.message.create('error', data['return_msg']); + } + }); + } else { + Object.values(this.editMenuForm.controls).forEach(control => { + if (control.invalid) { + control.markAsDirty(); + control.updateValueAndValidity({ onlySelf: true }); + } + }); + } + } + + /** + * 关闭菜单 + */ + closeEditMenu() { + this.editMenuVisible = false; + } + + /** + * 删除菜单 + */ + showDelMenu() { + this.modal.confirm({ + nzTitle: '提示', + nzContent: '确实删除数据?', + nzOnOk: () => this.delMenu() + }); + } + + /** + * 删除菜单 + */ + delMenu() { + const param = { + menuId: this.menuDetail.id + } + this.treeView = false; + this.menuService.delMenu(param, (data: any) => { + if (data['return_code'] == '000000') { + // 刷新数据 + this.queryMenuTree(); + this.message.create('success', '操作成功'); + } else { + this.treeView = true; + this.message.create('error', data['return_msg']); + } + }); + } + +} diff --git a/src/app/pages/system/system.module.ts b/src/app/pages/system/system.module.ts new file mode 100644 index 0000000..822a3bf --- /dev/null +++ b/src/app/pages/system/system.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + + + +@NgModule({ + declarations: [], + imports: [ + CommonModule, + ] +}) +export class SystemModule { } diff --git a/src/app/pages/system/system.routes.ts b/src/app/pages/system/system.routes.ts new file mode 100644 index 0000000..8fc3182 --- /dev/null +++ b/src/app/pages/system/system.routes.ts @@ -0,0 +1,8 @@ +import { Routes } from '@angular/router'; +import {MenuComponent} from "./menu/menu.component"; +import {CmsListComponent} from "../cms/cms-list/cms-list.component"; + +export const SYSTEM_ROUTES: Routes = [ + { path: 'menu', component: MenuComponent}, + { path: 'cms-list', component: CmsListComponent} +]; diff --git a/src/app/pipes/common/button.pipe.ts b/src/app/pipes/common/button.pipe.ts new file mode 100644 index 0000000..c6641a4 --- /dev/null +++ b/src/app/pipes/common/button.pipe.ts @@ -0,0 +1,38 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import {Button, buttonData} from "../../data/common/button.namespace"; + +@Pipe({ + name: 'button', + standalone: true +}) +export class ButtonPipe implements PipeTransform { + data: Button[] = buttonData; + + /** + * 获取数据字典 + * @param buttonCode + */ + isButton(buttonCode: string): boolean { + // 读取缓存数据 + return this.data.find(o => o.menuUrl == buttonCode) != null; + } + + /** + * 获取数据字典 + * @param buttonCode + */ + getButton(buttonCode: string): Button | any { + // 读取缓存数据 + return this.data.find(o => o.menuUrl == buttonCode); + } + + transform(codeType: string): string { + const obj = this.getButton(codeType); + if (obj == null) { + return '未知'; + } else { + return obj.menuName; + } + } + +} diff --git a/src/app/pipes/common/date-minutes-diff.pipe.ts b/src/app/pipes/common/date-minutes-diff.pipe.ts new file mode 100644 index 0000000..e61d38a --- /dev/null +++ b/src/app/pipes/common/date-minutes-diff.pipe.ts @@ -0,0 +1,19 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'dateMinutesDiff', + standalone: true +}) +/** + * 时间分钟差异 + */ +export class DateMinutesDiffPipe implements PipeTransform { + + + transform(newTime: number | Date, olbTime: number | Date): number { + console.log('123'); + var diffTimeStamp = new Date().getTime() - new Date(olbTime).getTime(); + return parseInt(String(diffTimeStamp / (1000 * 60))); + } + +} diff --git a/src/app/pipes/common/dictionary.pipe.ts b/src/app/pipes/common/dictionary.pipe.ts new file mode 100644 index 0000000..3794b39 --- /dev/null +++ b/src/app/pipes/common/dictionary.pipe.ts @@ -0,0 +1,39 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import {dictionaryData, Dictionary} from "../../data/common/dictionary.namespace"; + +@Pipe({ + name: 'dictionary', + standalone: true +}) +export class DictionaryPipe implements PipeTransform { + + data: Dictionary[] = dictionaryData; + + /** + * 获取数据字典 + * @param codeType 码类型 + */ + getDictionaryList(codeType: string): any { + return this.data.filter(o => o.codeType == codeType); + } + + /** + * 获取数据字典 + * @param codeType 码类型 + * @param codeValue 码值 + */ + getDictionary(codeType: string, codeValue: string): any { + // 读取缓存数据 + return this.data.find(o => o.codeType == codeType && o.codeValue == codeValue); + } + + transform(codeValue: string,codeType: string): string { + const obj = this.getDictionary(codeType, codeValue); + if (obj == null) { + return '未知'; + } else { + return obj.codeName; + } + } +} + diff --git a/src/app/services/account/sys-account.service.ts b/src/app/services/account/sys-account.service.ts new file mode 100644 index 0000000..d7ba33f --- /dev/null +++ b/src/app/services/account/sys-account.service.ts @@ -0,0 +1,127 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; + +@Injectable({ + providedIn: 'root' +}) +export class SysAccountService { + + constructor(private http: HttpClient) { } + + /** + * + * 编辑账户 + * @param params + * @param callBack + */ + public editUser(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/editUser', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 删除账户 + * @param params + * @param callBack + */ + public delete(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/delete', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 恢复账户 + * @param params + * @param callBack + */ + public restore(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/restore', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 禁用账户 + * @param params + * @param callBack + */ + public disable(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/disable', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 修改密码 + * @param userId + * @param callBack + */ + public updatePwd(param: any, callBack:any) { + param.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/updatePwd', param).subscribe(data => { + callBack(data); + }); + } + + /** + * 密码重置 + * @param userId + * @param callBack + */ + public resetPwd(param: any, callBack:any) { + param.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secUser/resetPwd', param).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询详情 + * @param userId + * @param callBack + */ + public queryDetail(userId: number, callBack:any) { + let params = { + userId: userId, + time: new Date().getTime() + }; + this.http.get(environment.baseUrl + 'secUser/queryDetail?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询列表 + * @param params + * @param callBack + */ + public queryList(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.get(environment.baseUrl + 'secUser/queryList?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询账户登录列表 + * @param params + * @param callBack + */ + public queryLoginLogList(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.get(environment.baseUrl + 'secUser/queryLoginLogList?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + + +} diff --git a/src/app/services/cms/cms.service.ts b/src/app/services/cms/cms.service.ts new file mode 100644 index 0000000..8b04309 --- /dev/null +++ b/src/app/services/cms/cms.service.ts @@ -0,0 +1,72 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; + +@Injectable({ + providedIn: 'root' +}) +export class CmsService { + + constructor(private http: HttpClient) { } + + /** + * 编辑 + * @param params + * @param callBack + */ + public edit(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'cms/edit',params).subscribe(data => { + callBack(data); + }); + } + + /** + * 上线 + * @param params + * @param callBack + */ + public online(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'cms/online',params).subscribe(data => { + callBack(data); + }); + } + + /** + * 下线 + * @param params + * @param callBack + */ + public offline(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'cms/offline',params).subscribe(data => { + callBack(data); + }); + } + + /** + * 删除 + * @param params + * @param callBack + */ + public delete(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'cms/delete',params).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询列表 + * @param params + * @param callBack + */ + public queryList(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.get(environment.baseUrl + 'cms/queryList?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } +} diff --git a/src/app/services/common/common.service.ts b/src/app/services/common/common.service.ts new file mode 100644 index 0000000..4b4c147 --- /dev/null +++ b/src/app/services/common/common.service.ts @@ -0,0 +1,104 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; +import {NzUploadFile} from "ng-zorro-antd/upload"; + +@Injectable({ + providedIn: 'root' +}) +export class CommonService { + + constructor(private http: HttpClient) { } + + /** + * + * 查询数据字典 + * @param codeType 【非必填】 码值类型 + * @param codeValue 【非必填】码值 + * @param callBack + */ + public queryDictionary(codeType: string, codeValue: string, callBack:any) { + const param = { + codeType: codeType, + codeValue: codeValue + }; + this.http.get(environment.baseUrl + 'common/queryDictionary?'+ObjectData.objectByString(param)).subscribe(data => { + callBack(data); + }); + } + + /** + * + * 分级查询区域信息 + * @param regionId 地区id + * @param callBack + */ + public getRegion(regionId: string, callBack:any) { + this.http.get(environment.baseUrl + 'common/getRegion?regionId=' + regionId).subscribe(data => { + callBack(data); + }); + } + + /** + * + * 查询数据字典 + * @param imgData 【必填】 图片数据 + */ + public imgList(imgData: NzUploadFile[]): string { + if (imgData[0]['response'] != null) { + return imgData[0]['response']['return_data'][0]; + } else { + return imgData[0].name; + } + } + + /** + * + * 拼接图片 + * @param imgArray 【必填】 图片数据 + */ + public postImg(imgArray: any): any { + const array = []; + for (const i of imgArray) { + if (i['response'] != null) { + array.push(i['response']['return_data'][0]); + } else { + array.push(i.name); + } + } + + return array.join(','); + } + + /** + * + * 拼接图片数组 + * @param imgUrl 【必填】 图片数据 + */ + public stitchImg(imgUrl: string): any { + const imgArray = []; + for (const i of imgUrl.split(',')) { + imgArray.push( + { + uid: 1, + name: i, + status: 'done', + url: environment.imageUrl + i + }); + } + console.log(imgArray); + return imgArray; + } + + + // 判断字符串是否为空 + public whetherStringIsNull(s: string): boolean { + if (s != null && s !== '') { + return false; + } else { + return true; + } + } + +} diff --git a/src/app/services/common/validators.service.ts b/src/app/services/common/validators.service.ts new file mode 100644 index 0000000..77d6c64 --- /dev/null +++ b/src/app/services/common/validators.service.ts @@ -0,0 +1,47 @@ +// current locale is key of the MyErrorsOptions +import {AbstractControl, ValidatorFn, Validators} from "@angular/forms"; +import {NzSafeAny} from "ng-zorro-antd/core/types"; + +export type MyErrorsOptions = { 'zh-cn': string; en: string } & Record; +export type MyValidationErrors = Record; + +export class MyValidators extends Validators { + + static override minLength(minLength: number): ValidatorFn { + return (control: AbstractControl): MyValidationErrors | null => { + if (Validators.minLength(minLength)(control) === null) { + return null; + } + return { minlength: { 'zh-cn': `最小长度为 ${minLength}`, en: `MinLength is ${minLength}` } }; + }; + } + + static override maxLength(maxLength: number): ValidatorFn { + return (control: AbstractControl): MyValidationErrors | null => { + if (Validators.maxLength(maxLength)(control) === null) { + return null; + } + return { maxlength: { 'zh-cn': `最大长度为 ${maxLength}`, en: `MaxLength is ${maxLength}` } }; + }; + } + + static mobile(control: AbstractControl): MyValidationErrors | null { + const value = control.value; + + if (isEmptyInputValue(value)) { + return null; + } + + return isMobile(value) + ? null + : { mobile: { 'zh-cn': `手机号码格式不正确`, en: `Mobile phone number is not valid` } }; + } +} + +function isEmptyInputValue(value: NzSafeAny): boolean { + return value == null || value.length === 0; +} + +function isMobile(value: string): boolean { + return typeof value === 'string' && /(^1\d{10}$)/.test(value); +} diff --git a/src/app/services/login/login.service.ts b/src/app/services/login/login.service.ts new file mode 100644 index 0000000..8a9d68a --- /dev/null +++ b/src/app/services/login/login.service.ts @@ -0,0 +1,38 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; + +@Injectable({ + providedIn: 'root' +}) +export class LoginService { + + constructor(private http: HttpClient) {} + + /** + * @Author Sum1Dream + * @Name userLogin + * @Description // 登录 + * @Date 15:52 2024/4/18 + * @Param params + * @Param callBack + */ + public userLogin(params: object, callBack:any) { + this.http.post(environment.baseUrl + 'secUser/login', params).subscribe(data => { + callBack(data); + }); + } + + /** + * @Author Sum1Dream + * @Name loginOut + * @Description // 退出登录 + * @Date 15:52 2024/4/18 + * @Param callBack + */ + public loginOut(callBack:any) { + this.http.post(environment.baseUrl + 'secUser/loginOut', null).subscribe(data => { + callBack(data); + }); + } +} diff --git a/src/app/services/menu/menu.service.ts b/src/app/services/menu/menu.service.ts new file mode 100644 index 0000000..0024321 --- /dev/null +++ b/src/app/services/menu/menu.service.ts @@ -0,0 +1,120 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; +import {DATA} from "../../data/login/localStorage.namespace"; + +@Injectable({ + providedIn: 'root' +}) +export class MenuService { + + constructor(private http: HttpClient) { } + + /** + * 分配菜单 + * @param params + * @param callBack + */ + public assignMenu(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secMenu/assignMenu', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 删除菜单 + * @param params + * @param callBack + */ + public delMenu(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secMenu/delMenu', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询菜单 + * @param roleId + * @param callBack + */ + public queryMenuList(callBack:any) { + let params = { + time: new Date().getTime() + }; + this.http.post(environment.baseUrl + 'secMenu/queryMenuList?' + ObjectData.objectByString(params), null).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询菜单详情 + * @param menuId + * @param callBack + */ + public queryMenuDetail(menuId: number, callBack:any) { + let params = { + menuId: menuId, + time: new Date().getTime() + }; + this.http.get(environment.baseUrl + 'secMenu/queryDetail?' + ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询菜单树 + * @param roleId + * @param callBack + */ + public queryRoleMenuTree(roleId: string, callBack:any) { + let paramStr = '?dt='+new Date().getTime(); + if (roleId != null && roleId != '') { + paramStr = '&roleId=' + roleId; + } + this.http.get(environment.baseUrl + 'secMenu/queryRoleMenuTree'+paramStr).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询菜单树 + * @param roleId + * @param callBack + */ + public queryMenuTree(callBack:any) { + this.http.post(environment.baseUrl + 'secMenu/queryMenuTree?dt='+new Date().getTime(), null).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询角色菜单权限数组 + * @param roleId + * @param callBack + */ + public queryRoleMenuArray(roleId: number, callBack:any) { + const param = { + roleId: roleId, + t: new Date().getTime() // 时间戳避免缓存 + } + this.http.get(environment.baseUrl + 'secMenu/queryRoleMenuArray?' + ObjectData.objectByString(param)).subscribe(data => { + callBack(data); + }); + } + + /** + * 编辑菜单 + * @param params + * @param callBack + */ + public editMenu(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secMenu/editMenu', params).subscribe(data => { + callBack(data); + }); + } + +} diff --git a/src/app/services/role/role.service.ts b/src/app/services/role/role.service.ts new file mode 100644 index 0000000..0b41409 --- /dev/null +++ b/src/app/services/role/role.service.ts @@ -0,0 +1,73 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {environment} from "../../../environments/environment"; +import {ObjectData} from "../../utils/objectData.service"; + +@Injectable({ + providedIn: 'root' +}) +export class RoleService { + + constructor(private http: HttpClient) { } + + /** + * 编辑角色 + * @param params + * @param callBack + */ + public editRole(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secRole/editRole', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 删除角色 + * @param params + * @param callBack + */ + public delRole(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.post(environment.baseUrl + 'secRole/delRole', params).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询详情 + * @param roleId + * @param callBack + */ + public queryDetail(roleId: number, callBack:any) { + this.http.get(environment.baseUrl + 'secRole/queryDetail?roleId='+roleId).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询列表 + * @param params + * @param callBack + */ + public queryList(params: any, callBack:any) { + params.time = new Date().getTime(); + this.http.get(environment.baseUrl + 'secRole/queryList?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + + /** + * 查询全部角色 + * @param callBack + */ + public queryAllRole(callBack:any) { + let params = { + time: new Date().getTime() + }; + this.http.get(environment.baseUrl + 'secRole/queryAllRole?'+ObjectData.objectByString(params)).subscribe(data => { + callBack(data); + }); + } + +} diff --git a/src/app/utils/Interceptor.service.ts b/src/app/utils/Interceptor.service.ts new file mode 100644 index 0000000..44c48c9 --- /dev/null +++ b/src/app/utils/Interceptor.service.ts @@ -0,0 +1,88 @@ +import {Injectable} from '@angular/core'; +import { + HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse, HttpHeaders +} from '@angular/common/http'; +import {catchError, finalize} from 'rxjs/operators'; +import {mergeMap} from 'rxjs/operators'; +import {Observable} from 'rxjs'; +import {USER_TOKEN} from "../data/login/localStorage.namespace"; +import {BrowserStorageService} from "./localStorage.service"; +import {Router} from "@angular/router"; + + +@Injectable() +export class InterceptorService implements HttpInterceptor { + constructor( + private router: Router, // 路由 + private storage: BrowserStorageService, + ) { + } + intercept(req: HttpRequest, next: HttpHandler): Observable> { + let secureReq: HttpRequest; + let modifiedHeaders: HttpHeaders; + const token = this.storage.get(USER_TOKEN); + if (token != null) { + modifiedHeaders = + req.headers.append('Cache-Control', 'no-cache') + .append('Pragma', 'no-cache') + .append('Authorization', token); + } + + secureReq = req.clone({ + url: req.url, + // @ts-ignore + headers: modifiedHeaders + }); + // @ts-ignore + return next.handle(secureReq) + .pipe( + catchError((res: HttpResponse) => { + let msg = ''; + switch (res.status) { + case 401: + msg = '身份验证过期,请重新进入页面'; + break; + case 200: + msg = '身份验证过期,请重新进入页面'; + break; + case 404: + msg = '找不到地址'; + break; + case 403: + msg = '业务错误'; + break; + case 500: + msg = '服务器发生错误,请重试'; + break; + } + this.jumpError(msg , res.status); + return Observable.create(res); + }), + finalize(() => { + }), + mergeMap( + // 有响应时成功;忽略其他事件 + (event: any) => { + return Observable.create((observer: { next: (arg0: any) => any; }) => observer.next(event)); + }), + ); + } + + jumpError(message: string , status: number) { + if (status == 401) { + this.router.navigateByUrl('/error/401').then(r => console.log("返回内容" ,r)); + + } + if (status == 403) { + this.router.navigateByUrl('/error/403').then(r => console.log("返回内容" ,r)); + } + if (status == 404) { + this.router.navigateByUrl('/error/404').then(r => console.log("返回内容" ,r)); + } + if (status == 500) { + this.router.navigateByUrl('/error/500').then(r => console.log("返回内容" ,r)); + } + + + } +} diff --git a/src/app/utils/dateUtils.service.ts b/src/app/utils/dateUtils.service.ts new file mode 100644 index 0000000..d55e17b --- /dev/null +++ b/src/app/utils/dateUtils.service.ts @@ -0,0 +1,139 @@ +/** + * 选择类型 + */ +export const DateSelectType: any = [ + { value: 1, name: '今日'}, + { value: 2, name: '昨日'}, + { value: 3, name: '本周'}, + { value: 4, name: '上周'}, + { value: 5, name: '本月'}, + { value: 6, name: '上月'}, +]; + +/** + * 时间工具类 + */ +export class DateUtils { + + /** + * 获取时间 + * @param currentDate 当前时间 + * @param type 类型 1:今日 2:昨日 3:本周 4:上周 5:本月 6:上月 + */ + public static getDate(currentDate: Date, type: number): any { + const returnObj = { + timeS: 0, + timeE: 0, + } + + if (type === 1) { + currentDate.setHours(0); + currentDate.setMinutes(0); + currentDate.setSeconds(0); + returnObj.timeS = currentDate.getTime(); + currentDate.setHours(23); + currentDate.setMinutes(59); + currentDate.setSeconds(59); + returnObj.timeE = currentDate.getTime(); + + } else if (type === 2) { + currentDate.setDate(currentDate.getDate() - 1) + currentDate.setHours(0); + currentDate.setMinutes(0); + currentDate.setSeconds(0); + returnObj.timeS = currentDate.getTime(); + currentDate.setHours(23); + currentDate.setMinutes(59); + currentDate.setSeconds(59); + returnObj.timeE = currentDate.getTime(); + + } else if (type === 3) { + const dayOfWeek = currentDate.getDay(); + const dayOffset = dayOfWeek === 0 ? -6 : 1 - dayOfWeek; + + const start = new Date(currentDate); + start.setDate(start.getDate() + dayOffset) + start.setHours(0); + start.setMinutes(0); + start.setSeconds(0); + returnObj.timeS = start.getTime(); + + const end = new Date(currentDate); + end.setDate(end.getDate() + 6) + end.setHours(23); + end.setMinutes(59); + end.setSeconds(59); + returnObj.timeE = end.getTime(); + + } else if (type === 4) { + const startOfThisWeek = new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate() - currentDate.getDay() + 1); + const endOfLastWeek = new Date(startOfThisWeek.getTime() - 1); + const startOfLastWeek = new Date((endOfLastWeek.getTime() + 1) - (7 * 24 * 60 * 60 * 1000)); + + startOfLastWeek .setHours(0); + startOfLastWeek .setMinutes(0); + startOfLastWeek .setSeconds(0); + returnObj.timeS = startOfLastWeek .getTime(); + + endOfLastWeek.setHours(23); + endOfLastWeek.setMinutes(59); + endOfLastWeek.setSeconds(59); + returnObj.timeE = endOfLastWeek.getTime(); + + } else if (type === 5) { + var daysInMonth = new Date(currentDate.getFullYear(), currentDate.getMonth()+1, 0).getDate(); + + const start = new Date(currentDate); + start.setDate(1) + start.setHours(0); + start.setMinutes(0); + start.setSeconds(0); + returnObj.timeS = start.getTime(); + + const end = new Date(currentDate); + end.setDate(daysInMonth) + end.setHours(23); + end.setMinutes(59); + end.setSeconds(59); + returnObj.timeE = end.getTime(); + + } else if (type === 6) { + var daysInMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 0).getDate(); + + const start = new Date(currentDate); + start.setMonth(currentDate.getMonth() - 1); + start.setDate(1) + start.setHours(0); + start.setMinutes(0); + start.setSeconds(0); + returnObj.timeS = start.getTime(); + + const end = new Date(currentDate); + end.setMonth(currentDate.getMonth() - 1); + end.setDate(daysInMonth) + end.setHours(23); + end.setMinutes(59); + end.setSeconds(59); + returnObj.timeE = end.getTime(); + } + + return returnObj; + } + + /** + * 获取时间 + * @param startTime 开始时间 + * @param endTime 结束时间 + */ + public static getDateSelectType(startTime: Date, endTime: Date): number { + const type = 0; // 未知 + for (let type of DateSelectType) { + let date = this.getDate(new Date(), type.value); + if (startTime.toLocaleDateString() == new Date(date.timeS).toLocaleDateString() + && endTime.toLocaleDateString() == new Date(date.timeE).toLocaleDateString()) { + return type.value; + } + } + return type; + } +} diff --git a/src/app/utils/initGuard.service.ts b/src/app/utils/initGuard.service.ts new file mode 100644 index 0000000..1b3e4a1 --- /dev/null +++ b/src/app/utils/initGuard.service.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router'; +import {CanActivate} from "@angular/router"; +import {INIT_FLAG} from "../data/login/localStorage.namespace"; +import {BrowserStorageService} from "./localStorage.service"; + + + +@Injectable() +export class InitGuardService implements CanActivate { + constructor( + private storage: BrowserStorageService, + private router: Router, + ) { } + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { + const init = !!this.storage.get(INIT_FLAG); + if (state.url.includes('login') && init) { + this.router.navigateByUrl('/admin/index').then(); + return false; + } + if (!state.url.includes('login') && !init) { + this.router.navigateByUrl('/login').then(); + return false; + } + return true; + } +} diff --git a/src/app/utils/localStorage.service.ts b/src/app/utils/localStorage.service.ts new file mode 100644 index 0000000..70e2bde --- /dev/null +++ b/src/app/utils/localStorage.service.ts @@ -0,0 +1,32 @@ +import { Inject, Injectable, InjectionToken } from '@angular/core'; + +export const BROWSER_STORAGE = new InjectionToken('Browser Storage', { + providedIn: 'root', + factory: () => localStorage +}); + +@Injectable({ + providedIn: 'root' +}) +export class BrowserStorageService { + constructor(@Inject(BROWSER_STORAGE) public storage: Storage) {} + + get(key: string) { + // @ts-ignore + return JSON.parse(this.storage.getItem(key)) as T; + } + + set(key: string, value: any) { + if (!value && value === undefined) { return; } + const arr = JSON.stringify(value); + this.storage.setItem(key, arr); + } + + remove(key: string) { + this.storage.removeItem(key); + } + + clear() { + this.storage.clear(); + } +} diff --git a/src/app/utils/mathUtils.service.ts b/src/app/utils/mathUtils.service.ts new file mode 100644 index 0000000..9dc198c --- /dev/null +++ b/src/app/utils/mathUtils.service.ts @@ -0,0 +1,13 @@ +export class MathUtils{ + + /** + * @Author Sum1Dream + * @Name + * @Description // 获取1-100随机数 + * @Date 11:13 2024/4/9 + * @Param number + */ + static generateRandomNumber(number: number): number { + return Math.floor(Math.random() * number) + 1; + } +} diff --git a/src/app/utils/objectData.service.ts b/src/app/utils/objectData.service.ts new file mode 100644 index 0000000..43013cf --- /dev/null +++ b/src/app/utils/objectData.service.ts @@ -0,0 +1,24 @@ +export class ObjectData { + + /** + * @Author Sum1Dream + * @Name getWhereCondition + * @Description // 将对象转换成GET请求参数 key1=value1&key2=value2 + * @Date 14:02 2024/4/9 + * @Param object + */ + static objectByString(object: any): string { + let str = ''; + for (const i in object) { + if (object[i] != null && object[i] !== '') { + if (str === '') { + str = i + '=' + object[i]; + } else { + str += '&' + i + '=' + object[i]; + } + } + } + return str; + } + +} diff --git a/src/app/utils/routeReuseStrategy.ts b/src/app/utils/routeReuseStrategy.ts new file mode 100644 index 0000000..3aede7a --- /dev/null +++ b/src/app/utils/routeReuseStrategy.ts @@ -0,0 +1,63 @@ +import {ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy} from '@angular/router'; +export class AiRouteReuseStrategy implements RouteReuseStrategy { + /** + * 用于保存路由快照 + **/ + public static routeSnapshots: { [key: string]: DetachedRouteHandle } = {}; + + /** + * 允许所有路由重用 + * 如果你有路由不想被重用,可以在这个方法中加业务逻辑判断 + **/ + shouldDetach(route: ActivatedRouteSnapshot): boolean { + return true; + } + + /** + * 以url为key保存路由,key也可以使用其他属性,能确保唯一即可 + **/ + store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void { + const url = this.getFullRouteUrl(route); + AiRouteReuseStrategy.routeSnapshots[url] = handle; + } + + /** + * 缓存中存在则允许还原路由 + **/ + shouldAttach(route: ActivatedRouteSnapshot): boolean { + const url = this.getFullRouteUrl(route); + return !!AiRouteReuseStrategy.routeSnapshots[url]; + } + + /** + * 从缓存中获取快照,没有返回null + **/ + retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null { + const url = this.getFullRouteUrl(route); + return route.routeConfig ? AiRouteReuseStrategy.routeSnapshots[url] : null; + } + + /** + * 进入路由触发,判断是否同一路由 + **/ + shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean { + return future.routeConfig === curr.routeConfig && + JSON.stringify(future.params) === JSON.stringify(curr.params); + } + + private getFullRouteUrl(route: ActivatedRouteSnapshot): string { + return this.getFullRouteUrlPaths(route).filter(Boolean).join('/').replace(/\//g, '_'); + } + + private getFullRouteUrlPaths(route: ActivatedRouteSnapshot): string[] { + const paths = this.getRouteUrlPaths(route); + return route.parent + ? [...this.getFullRouteUrlPaths(route.parent), ...paths] + : paths; + } + + private getRouteUrlPaths(route: ActivatedRouteSnapshot): string[] { + return route.url.map(urlSegment => urlSegment.path); + } + +} diff --git a/src/app/utils/validators.service.ts b/src/app/utils/validators.service.ts new file mode 100644 index 0000000..b6e8d7c --- /dev/null +++ b/src/app/utils/validators.service.ts @@ -0,0 +1,65 @@ +import {AbstractControl, ValidationErrors, ValidatorFn, Validators} from '@angular/forms'; +import {NzSafeAny} from 'ng-zorro-antd/core/types'; + +export type validatorsErrorsOptions = { 'zh-cn': string; en: string } & Record; +export type validatorsErrors = Record; + +export class ValidatorsService extends Validators { + + /** + * 验证字符最小长度 + * @param minLength + */ + static override minLength(minLength: number): ValidatorFn { + return (control: AbstractControl): validatorsErrors | null => { + if (Validators.minLength(minLength)(control) === null) { + return null; + } + return { minlength: { 'zh-cn': `最小长度为 ${minLength}`, en: `MinLength is ${minLength}` } }; + }; + } + + /** + * 验证字符最大长度 + * @param maxLength + */ + static override maxLength(maxLength: number): ValidatorFn { + return (control: AbstractControl): validatorsErrors | null => { + if (Validators.maxLength(maxLength)(control) === null) { + return null; + } + return { maxlength: { 'zh-cn': `最大长度为 ${maxLength}`, en: `MaxLength is ${maxLength}` } }; + }; + } + + + + + /** + * 验证手机号 + * @param control + */ + static mobile(control: AbstractControl): validatorsErrors | null { + const value = control.value; + + if (isEmptyInputValue(value)) { + return null; + } + + return isMobile(value) ? null : { mobile: { 'zh-cn': `手机号码格式不正确`, en: `Mobile phone number is not valid` } }; + } + + static isMobile(value: string): boolean { + return typeof value === 'string' && /^[1](([3][0-9])|([4][0,1,4-9])|([5][0-3,5-9])|([6][2,5,6,7])|([7][0-8])|([8][0-9])|([9][0-3,5-9]))[0-9]{8}$/.test(value); + } + +} + + +function isEmptyInputValue(value: NzSafeAny): boolean { + return value == null || value.length === 0; +} + +function isMobile(value: string): boolean { + return typeof value === 'string' && /^[1](([3][0-9])|([4][0,1,4-9])|([5][0-3,5-9])|([6][2,5,6,7])|([7][0-8])|([8][0-9])|([9][0-3,5-9]))[0-9]{8}$/.test(value); +} diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/data/region.json b/src/assets/data/region.json new file mode 100644 index 0000000..d2ae3d8 --- /dev/null +++ b/src/assets/data/region.json @@ -0,0 +1,13266 @@ +[{ + "value": 110000, + "label": "北京市", + "children": [{ + "value": 110100, + "label": "市辖区", + "children": [{ + "value": 110101, + "label": "东城区", + "isLeaf": true + }, { + "value": 110102, + "label": "西城区", + "isLeaf": true + }, { + "value": 110105, + "label": "朝阳区", + "isLeaf": true + }, { + "value": 110106, + "label": "丰台区", + "isLeaf": true + }, { + "value": 110107, + "label": "石景山区", + "isLeaf": true + }, { + "value": 110108, + "label": "海淀区", + "isLeaf": true + }, { + "value": 110109, + "label": "门头沟区", + "isLeaf": true + }, { + "value": 110111, + "label": "房山区", + "isLeaf": true + }, { + "value": 110112, + "label": "通州区", + "isLeaf": true + }, { + "value": 110113, + "label": "顺义区", + "isLeaf": true + }, { + "value": 110114, + "label": "昌平区", + "isLeaf": true + }, { + "value": 110115, + "label": "大兴区", + "isLeaf": true + }, { + "value": 110116, + "label": "怀柔区", + "isLeaf": true + }, { + "value": 110117, + "label": "平谷区", + "isLeaf": true + }, { + "value": 110118, + "label": "密云区", + "isLeaf": true + }, { + "value": 110119, + "label": "延庆区", + "isLeaf": true + }] + }] +}, { + "value": 120000, + "label": "天津市", + "children": [{ + "value": 120100, + "label": "市辖区", + "children": [{ + "value": 120101, + "label": "和平区", + "isLeaf": true + }, { + "value": 120102, + "label": "河东区", + "isLeaf": true + }, { + "value": 120103, + "label": "河西区", + "isLeaf": true + }, { + "value": 120104, + "label": "南开区", + "isLeaf": true + }, { + "value": 120105, + "label": "河北区", + "isLeaf": true + }, { + "value": 120106, + "label": "红桥区", + "isLeaf": true + }, { + "value": 120110, + "label": "东丽区", + "isLeaf": true + }, { + "value": 120111, + "label": "西青区", + "isLeaf": true + }, { + "value": 120112, + "label": "津南区", + "isLeaf": true + }, { + "value": 120113, + "label": "北辰区", + "isLeaf": true + }, { + "value": 120114, + "label": "武清区", + "isLeaf": true + }, { + "value": 120115, + "label": "宝坻区", + "isLeaf": true + }, { + "value": 120116, + "label": "滨海新区", + "isLeaf": true + }, { + "value": 120117, + "label": "宁河区", + "isLeaf": true + }, { + "value": 120118, + "label": "静海区", + "isLeaf": true + }, { + "value": 120119, + "label": "蓟州区", + "isLeaf": true + }] + }] +}, { + "value": 130000, + "label": "河北省", + "children": [{ + "value": 130100, + "label": "石家庄市", + "children": [{ + "value": 130102, + "label": "长安区", + "isLeaf": true + }, { + "value": 130104, + "label": "桥西区", + "isLeaf": true + }, { + "value": 130105, + "label": "新华区", + "isLeaf": true + }, { + "value": 130107, + "label": "井陉矿区", + "isLeaf": true + }, { + "value": 130108, + "label": "裕华区", + "isLeaf": true + }, { + "value": 130109, + "label": "藁城区", + "isLeaf": true + }, { + "value": 130110, + "label": "鹿泉区", + "isLeaf": true + }, { + "value": 130111, + "label": "栾城区", + "isLeaf": true + }, { + "value": 130121, + "label": "井陉县", + "isLeaf": true + }, { + "value": 130123, + "label": "正定县", + "isLeaf": true + }, { + "value": 130125, + "label": "行唐县", + "isLeaf": true + }, { + "value": 130126, + "label": "灵寿县", + "isLeaf": true + }, { + "value": 130127, + "label": "高邑县", + "isLeaf": true + }, { + "value": 130128, + "label": "深泽县", + "isLeaf": true + }, { + "value": 130129, + "label": "赞皇县", + "isLeaf": true + }, { + "value": 130130, + "label": "无极县", + "isLeaf": true + }, { + "value": 130131, + "label": "平山县", + "isLeaf": true + }, { + "value": 130132, + "label": "元氏县", + "isLeaf": true + }, { + "value": 130133, + "label": "赵县", + "isLeaf": true + }, { + "value": 130183, + "label": "晋州市", + "isLeaf": true + }, { + "value": 130184, + "label": "新乐市", + "isLeaf": true + }] + }, { + "value": 130200, + "label": "唐山市", + "children": [{ + "value": 130202, + "label": "路南区", + "isLeaf": true + }, { + "value": 130203, + "label": "路北区", + "isLeaf": true + }, { + "value": 130204, + "label": "古冶区", + "isLeaf": true + }, { + "value": 130205, + "label": "开平区", + "isLeaf": true + }, { + "value": 130207, + "label": "丰南区", + "isLeaf": true + }, { + "value": 130208, + "label": "丰润区", + "isLeaf": true + }, { + "value": 130209, + "label": "曹妃甸区", + "isLeaf": true + }, { + "value": 130223, + "label": "滦县", + "isLeaf": true + }, { + "value": 130224, + "label": "滦南县", + "isLeaf": true + }, { + "value": 130225, + "label": "乐亭县", + "isLeaf": true + }, { + "value": 130227, + "label": "迁西县", + "isLeaf": true + }, { + "value": 130229, + "label": "玉田县", + "isLeaf": true + }, { + "value": 130281, + "label": "遵化市", + "isLeaf": true + }, { + "value": 130283, + "label": "迁安市", + "isLeaf": true + }] + }, { + "value": 130300, + "label": "秦皇岛市", + "children": [{ + "value": 130302, + "label": "海港区", + "isLeaf": true + }, { + "value": 130303, + "label": "山海关区", + "isLeaf": true + }, { + "value": 130304, + "label": "北戴河区", + "isLeaf": true + }, { + "value": 130306, + "label": "抚宁区", + "isLeaf": true + }, { + "value": 130321, + "label": "青龙满族自治县", + "isLeaf": true + }, { + "value": 130322, + "label": "昌黎县", + "isLeaf": true + }, { + "value": 130324, + "label": "卢龙县", + "isLeaf": true + }] + }, { + "value": 130400, + "label": "邯郸市", + "children": [{ + "value": 130402, + "label": "邯山区", + "isLeaf": true + }, { + "value": 130403, + "label": "丛台区", + "isLeaf": true + }, { + "value": 130404, + "label": "复兴区", + "isLeaf": true + }, { + "value": 130406, + "label": "峰峰矿区", + "isLeaf": true + }, { + "value": 130421, + "label": "邯郸县", + "isLeaf": true + }, { + "value": 130423, + "label": "临漳县", + "isLeaf": true + }, { + "value": 130424, + "label": "成安县", + "isLeaf": true + }, { + "value": 130425, + "label": "大名县", + "isLeaf": true + }, { + "value": 130426, + "label": "涉县", + "isLeaf": true + }, { + "value": 130427, + "label": "磁县", + "isLeaf": true + }, { + "value": 130428, + "label": "肥乡县", + "isLeaf": true + }, { + "value": 130429, + "label": "永年县", + "isLeaf": true + }, { + "value": 130430, + "label": "邱县", + "isLeaf": true + }, { + "value": 130431, + "label": "鸡泽县", + "isLeaf": true + }, { + "value": 130432, + "label": "广平县", + "isLeaf": true + }, { + "value": 130433, + "label": "馆陶县", + "isLeaf": true + }, { + "value": 130434, + "label": "魏县", + "isLeaf": true + }, { + "value": 130435, + "label": "曲周县", + "isLeaf": true + }, { + "value": 130481, + "label": "武安市", + "isLeaf": true + }] + }, { + "value": 130500, + "label": "邢台市", + "children": [{ + "value": 130502, + "label": "桥东区", + "isLeaf": true + }, { + "value": 130503, + "label": "桥西区", + "isLeaf": true + }, { + "value": 130521, + "label": "邢台县", + "isLeaf": true + }, { + "value": 130522, + "label": "临城县", + "isLeaf": true + }, { + "value": 130523, + "label": "内丘县", + "isLeaf": true + }, { + "value": 130524, + "label": "柏乡县", + "isLeaf": true + }, { + "value": 130525, + "label": "隆尧县", + "isLeaf": true + }, { + "value": 130526, + "label": "任县", + "isLeaf": true + }, { + "value": 130527, + "label": "南和县", + "isLeaf": true + }, { + "value": 130528, + "label": "宁晋县", + "isLeaf": true + }, { + "value": 130529, + "label": "巨鹿县", + "isLeaf": true + }, { + "value": 130530, + "label": "新河县", + "isLeaf": true + }, { + "value": 130531, + "label": "广宗县", + "isLeaf": true + }, { + "value": 130532, + "label": "平乡县", + "isLeaf": true + }, { + "value": 130533, + "label": "威县", + "isLeaf": true + }, { + "value": 130534, + "label": "清河县", + "isLeaf": true + }, { + "value": 130535, + "label": "临西县", + "isLeaf": true + }, { + "value": 130581, + "label": "南宫市", + "isLeaf": true + }, { + "value": 130582, + "label": "沙河市", + "isLeaf": true + }] + }, { + "value": 130600, + "label": "保定市", + "children": [{ + "value": 130602, + "label": "竞秀区", + "isLeaf": true + }, { + "value": 130606, + "label": "莲池区", + "isLeaf": true + }, { + "value": 130607, + "label": "满城区", + "isLeaf": true + }, { + "value": 130608, + "label": "清苑区", + "isLeaf": true + }, { + "value": 130609, + "label": "徐水区", + "isLeaf": true + }, { + "value": 130623, + "label": "涞水县", + "isLeaf": true + }, { + "value": 130624, + "label": "阜平县", + "isLeaf": true + }, { + "value": 130626, + "label": "定兴县", + "isLeaf": true + }, { + "value": 130627, + "label": "唐县", + "isLeaf": true + }, { + "value": 130628, + "label": "高阳县", + "isLeaf": true + }, { + "value": 130629, + "label": "容城县", + "isLeaf": true + }, { + "value": 130630, + "label": "涞源县", + "isLeaf": true + }, { + "value": 130631, + "label": "望都县", + "isLeaf": true + }, { + "value": 130632, + "label": "安新县", + "isLeaf": true + }, { + "value": 130633, + "label": "易县", + "isLeaf": true + }, { + "value": 130634, + "label": "曲阳县", + "isLeaf": true + }, { + "value": 130635, + "label": "蠡县", + "isLeaf": true + }, { + "value": 130636, + "label": "顺平县", + "isLeaf": true + }, { + "value": 130637, + "label": "博野县", + "isLeaf": true + }, { + "value": 130638, + "label": "雄县", + "isLeaf": true + }, { + "value": 130681, + "label": "涿州市", + "isLeaf": true + }, { + "value": 130683, + "label": "安国市", + "isLeaf": true + }, { + "value": 130684, + "label": "高碑店市", + "isLeaf": true + }] + }, { + "value": 130700, + "label": "张家口市", + "children": [{ + "value": 130702, + "label": "桥东区", + "isLeaf": true + }, { + "value": 130703, + "label": "桥西区", + "isLeaf": true + }, { + "value": 130705, + "label": "宣化区", + "isLeaf": true + }, { + "value": 130706, + "label": "下花园区", + "isLeaf": true + }, { + "value": 130708, + "label": "万全区", + "isLeaf": true + }, { + "value": 130709, + "label": "崇礼区", + "isLeaf": true + }, { + "value": 130722, + "label": "张北县", + "isLeaf": true + }, { + "value": 130723, + "label": "康保县", + "isLeaf": true + }, { + "value": 130724, + "label": "沽源县", + "isLeaf": true + }, { + "value": 130725, + "label": "尚义县", + "isLeaf": true + }, { + "value": 130726, + "label": "蔚县", + "isLeaf": true + }, { + "value": 130727, + "label": "阳原县", + "isLeaf": true + }, { + "value": 130728, + "label": "怀安县", + "isLeaf": true + }, { + "value": 130730, + "label": "怀来县", + "isLeaf": true + }, { + "value": 130731, + "label": "涿鹿县", + "isLeaf": true + }, { + "value": 130732, + "label": "赤城县", + "isLeaf": true + }] + }, { + "value": 130800, + "label": "承德市", + "children": [{ + "value": 130802, + "label": "双桥区", + "isLeaf": true + }, { + "value": 130803, + "label": "双滦区", + "isLeaf": true + }, { + "value": 130804, + "label": "鹰手营子矿区", + "isLeaf": true + }, { + "value": 130821, + "label": "承德县", + "isLeaf": true + }, { + "value": 130822, + "label": "兴隆县", + "isLeaf": true + }, { + "value": 130823, + "label": "平泉县", + "isLeaf": true + }, { + "value": 130824, + "label": "滦平县", + "isLeaf": true + }, { + "value": 130825, + "label": "隆化县", + "isLeaf": true + }, { + "value": 130826, + "label": "丰宁满族自治县", + "isLeaf": true + }, { + "value": 130827, + "label": "宽城满族自治县", + "isLeaf": true + }, { + "value": 130828, + "label": "围场满族蒙古族自治县", + "isLeaf": true + }] + }, { + "value": 130900, + "label": "沧州市", + "children": [{ + "value": 130902, + "label": "新华区", + "isLeaf": true + }, { + "value": 130903, + "label": "运河区", + "isLeaf": true + }, { + "value": 130921, + "label": "沧县", + "isLeaf": true + }, { + "value": 130922, + "label": "青县", + "isLeaf": true + }, { + "value": 130923, + "label": "东光县", + "isLeaf": true + }, { + "value": 130924, + "label": "海兴县", + "isLeaf": true + }, { + "value": 130925, + "label": "盐山县", + "isLeaf": true + }, { + "value": 130926, + "label": "肃宁县", + "isLeaf": true + }, { + "value": 130927, + "label": "南皮县", + "isLeaf": true + }, { + "value": 130928, + "label": "吴桥县", + "isLeaf": true + }, { + "value": 130929, + "label": "献县", + "isLeaf": true + }, { + "value": 130930, + "label": "孟村回族自治县", + "isLeaf": true + }, { + "value": 130981, + "label": "泊头市", + "isLeaf": true + }, { + "value": 130982, + "label": "任丘市", + "isLeaf": true + }, { + "value": 130983, + "label": "黄骅市", + "isLeaf": true + }, { + "value": 130984, + "label": "河间市", + "isLeaf": true + }] + }, { + "value": 131000, + "label": "廊坊市", + "children": [{ + "value": 131002, + "label": "安次区", + "isLeaf": true + }, { + "value": 131003, + "label": "广阳区", + "isLeaf": true + }, { + "value": 131022, + "label": "固安县", + "isLeaf": true + }, { + "value": 131023, + "label": "永清县", + "isLeaf": true + }, { + "value": 131024, + "label": "香河县", + "isLeaf": true + }, { + "value": 131025, + "label": "大城县", + "isLeaf": true + }, { + "value": 131026, + "label": "文安县", + "isLeaf": true + }, { + "value": 131028, + "label": "大厂回族自治县", + "isLeaf": true + }, { + "value": 131081, + "label": "霸州市", + "isLeaf": true + }, { + "value": 131082, + "label": "三河市", + "isLeaf": true + }] + }, { + "value": 131100, + "label": "衡水市", + "children": [{ + "value": 131102, + "label": "桃城区", + "isLeaf": true + }, { + "value": 131103, + "label": "冀州区", + "isLeaf": true + }, { + "value": 131121, + "label": "枣强县", + "isLeaf": true + }, { + "value": 131122, + "label": "武邑县", + "isLeaf": true + }, { + "value": 131123, + "label": "武强县", + "isLeaf": true + }, { + "value": 131124, + "label": "饶阳县", + "isLeaf": true + }, { + "value": 131125, + "label": "安平县", + "isLeaf": true + }, { + "value": 131126, + "label": "故城县", + "isLeaf": true + }, { + "value": 131127, + "label": "景县", + "isLeaf": true + }, { + "value": 131128, + "label": "阜城县", + "isLeaf": true + }, { + "value": 131182, + "label": "深州市", + "isLeaf": true + }] + }, { + "value": 139000, + "label": "省直辖县级行政区划", + "children": [{ + "value": 139001, + "label": "定州市", + "isLeaf": true + }, { + "value": 139002, + "label": "辛集市", + "isLeaf": true + }] + }] +}, { + "value": 140000, + "label": "山西省", + "children": [{ + "value": 140100, + "label": "太原市", + "children": [{ + "value": 140105, + "label": "小店区", + "isLeaf": true + }, { + "value": 140106, + "label": "迎泽区", + "isLeaf": true + }, { + "value": 140107, + "label": "杏花岭区", + "isLeaf": true + }, { + "value": 140108, + "label": "尖草坪区", + "isLeaf": true + }, { + "value": 140109, + "label": "万柏林区", + "isLeaf": true + }, { + "value": 140110, + "label": "晋源区", + "isLeaf": true + }, { + "value": 140121, + "label": "清徐县", + "isLeaf": true + }, { + "value": 140122, + "label": "阳曲县", + "isLeaf": true + }, { + "value": 140123, + "label": "娄烦县", + "isLeaf": true + }, { + "value": 140181, + "label": "古交市", + "isLeaf": true + }] + }, { + "value": 140200, + "label": "大同市", + "children": [{ + "value": 140202, + "label": "城区", + "isLeaf": true + }, { + "value": 140203, + "label": "矿区", + "isLeaf": true + }, { + "value": 140211, + "label": "南郊区", + "isLeaf": true + }, { + "value": 140212, + "label": "新荣区", + "isLeaf": true + }, { + "value": 140221, + "label": "阳高县", + "isLeaf": true + }, { + "value": 140222, + "label": "天镇县", + "isLeaf": true + }, { + "value": 140223, + "label": "广灵县", + "isLeaf": true + }, { + "value": 140224, + "label": "灵丘县", + "isLeaf": true + }, { + "value": 140225, + "label": "浑源县", + "isLeaf": true + }, { + "value": 140226, + "label": "左云县", + "isLeaf": true + }, { + "value": 140227, + "label": "大同县", + "isLeaf": true + }] + }, { + "value": 140300, + "label": "阳泉市", + "children": [{ + "value": 140302, + "label": "城区", + "isLeaf": true + }, { + "value": 140303, + "label": "矿区", + "isLeaf": true + }, { + "value": 140311, + "label": "郊区", + "isLeaf": true + }, { + "value": 140321, + "label": "平定县", + "isLeaf": true + }, { + "value": 140322, + "label": "盂县", + "isLeaf": true + }] + }, { + "value": 140400, + "label": "长治市", + "children": [{ + "value": 140402, + "label": "城区", + "isLeaf": true + }, { + "value": 140411, + "label": "郊区", + "isLeaf": true + }, { + "value": 140421, + "label": "长治县", + "isLeaf": true + }, { + "value": 140423, + "label": "襄垣县", + "isLeaf": true + }, { + "value": 140424, + "label": "屯留县", + "isLeaf": true + }, { + "value": 140425, + "label": "平顺县", + "isLeaf": true + }, { + "value": 140426, + "label": "黎城县", + "isLeaf": true + }, { + "value": 140427, + "label": "壶关县", + "isLeaf": true + }, { + "value": 140428, + "label": "长子县", + "isLeaf": true + }, { + "value": 140429, + "label": "武乡县", + "isLeaf": true + }, { + "value": 140430, + "label": "沁县", + "isLeaf": true + }, { + "value": 140431, + "label": "沁源县", + "isLeaf": true + }, { + "value": 140481, + "label": "潞城市", + "isLeaf": true + }] + }, { + "value": 140500, + "label": "晋城市", + "children": [{ + "value": 140502, + "label": "城区", + "isLeaf": true + }, { + "value": 140521, + "label": "沁水县", + "isLeaf": true + }, { + "value": 140522, + "label": "阳城县", + "isLeaf": true + }, { + "value": 140524, + "label": "陵川县", + "isLeaf": true + }, { + "value": 140525, + "label": "泽州县", + "isLeaf": true + }, { + "value": 140581, + "label": "高平市", + "isLeaf": true + }] + }, { + "value": 140600, + "label": "朔州市", + "children": [{ + "value": 140602, + "label": "朔城区", + "isLeaf": true + }, { + "value": 140603, + "label": "平鲁区", + "isLeaf": true + }, { + "value": 140621, + "label": "山阴县", + "isLeaf": true + }, { + "value": 140622, + "label": "应县", + "isLeaf": true + }, { + "value": 140623, + "label": "右玉县", + "isLeaf": true + }, { + "value": 140624, + "label": "怀仁县", + "isLeaf": true + }] + }, { + "value": 140700, + "label": "晋中市", + "children": [{ + "value": 140702, + "label": "榆次区", + "isLeaf": true + }, { + "value": 140721, + "label": "榆社县", + "isLeaf": true + }, { + "value": 140722, + "label": "左权县", + "isLeaf": true + }, { + "value": 140723, + "label": "和顺县", + "isLeaf": true + }, { + "value": 140724, + "label": "昔阳县", + "isLeaf": true + }, { + "value": 140725, + "label": "寿阳县", + "isLeaf": true + }, { + "value": 140726, + "label": "太谷县", + "isLeaf": true + }, { + "value": 140727, + "label": "祁县", + "isLeaf": true + }, { + "value": 140728, + "label": "平遥县", + "isLeaf": true + }, { + "value": 140729, + "label": "灵石县", + "isLeaf": true + }, { + "value": 140781, + "label": "介休市", + "isLeaf": true + }] + }, { + "value": 140800, + "label": "运城市", + "children": [{ + "value": 140802, + "label": "盐湖区", + "isLeaf": true + }, { + "value": 140821, + "label": "临猗县", + "isLeaf": true + }, { + "value": 140822, + "label": "万荣县", + "isLeaf": true + }, { + "value": 140823, + "label": "闻喜县", + "isLeaf": true + }, { + "value": 140824, + "label": "稷山县", + "isLeaf": true + }, { + "value": 140825, + "label": "新绛县", + "isLeaf": true + }, { + "value": 140826, + "label": "绛县", + "isLeaf": true + }, { + "value": 140827, + "label": "垣曲县", + "isLeaf": true + }, { + "value": 140828, + "label": "夏县", + "isLeaf": true + }, { + "value": 140829, + "label": "平陆县", + "isLeaf": true + }, { + "value": 140830, + "label": "芮城县", + "isLeaf": true + }, { + "value": 140881, + "label": "永济市", + "isLeaf": true + }, { + "value": 140882, + "label": "河津市", + "isLeaf": true + }] + }, { + "value": 140900, + "label": "忻州市", + "children": [{ + "value": 140902, + "label": "忻府区", + "isLeaf": true + }, { + "value": 140921, + "label": "定襄县", + "isLeaf": true + }, { + "value": 140922, + "label": "五台县", + "isLeaf": true + }, { + "value": 140923, + "label": "代县", + "isLeaf": true + }, { + "value": 140924, + "label": "繁峙县", + "isLeaf": true + }, { + "value": 140925, + "label": "宁武县", + "isLeaf": true + }, { + "value": 140926, + "label": "静乐县", + "isLeaf": true + }, { + "value": 140927, + "label": "神池县", + "isLeaf": true + }, { + "value": 140928, + "label": "五寨县", + "isLeaf": true + }, { + "value": 140929, + "label": "岢岚县", + "isLeaf": true + }, { + "value": 140930, + "label": "河曲县", + "isLeaf": true + }, { + "value": 140931, + "label": "保德县", + "isLeaf": true + }, { + "value": 140932, + "label": "偏关县", + "isLeaf": true + }, { + "value": 140981, + "label": "原平市", + "isLeaf": true + }] + }, { + "value": 141000, + "label": "临汾市", + "children": [{ + "value": 141002, + "label": "尧都区", + "isLeaf": true + }, { + "value": 141021, + "label": "曲沃县", + "isLeaf": true + }, { + "value": 141022, + "label": "翼城县", + "isLeaf": true + }, { + "value": 141023, + "label": "襄汾县", + "isLeaf": true + }, { + "value": 141024, + "label": "洪洞县", + "isLeaf": true + }, { + "value": 141025, + "label": "古县", + "isLeaf": true + }, { + "value": 141026, + "label": "安泽县", + "isLeaf": true + }, { + "value": 141027, + "label": "浮山县", + "isLeaf": true + }, { + "value": 141028, + "label": "吉县", + "isLeaf": true + }, { + "value": 141029, + "label": "乡宁县", + "isLeaf": true + }, { + "value": 141030, + "label": "大宁县", + "isLeaf": true + }, { + "value": 141031, + "label": "隰县", + "isLeaf": true + }, { + "value": 141032, + "label": "永和县", + "isLeaf": true + }, { + "value": 141033, + "label": "蒲县", + "isLeaf": true + }, { + "value": 141034, + "label": "汾西县", + "isLeaf": true + }, { + "value": 141081, + "label": "侯马市", + "isLeaf": true + }, { + "value": 141082, + "label": "霍州市", + "isLeaf": true + }] + }, { + "value": 141100, + "label": "吕梁市", + "children": [{ + "value": 141102, + "label": "离石区", + "isLeaf": true + }, { + "value": 141121, + "label": "文水县", + "isLeaf": true + }, { + "value": 141122, + "label": "交城县", + "isLeaf": true + }, { + "value": 141123, + "label": "兴县", + "isLeaf": true + }, { + "value": 141124, + "label": "临县", + "isLeaf": true + }, { + "value": 141125, + "label": "柳林县", + "isLeaf": true + }, { + "value": 141126, + "label": "石楼县", + "isLeaf": true + }, { + "value": 141127, + "label": "岚县", + "isLeaf": true + }, { + "value": 141128, + "label": "方山县", + "isLeaf": true + }, { + "value": 141129, + "label": "中阳县", + "isLeaf": true + }, { + "value": 141130, + "label": "交口县", + "isLeaf": true + }, { + "value": 141181, + "label": "孝义市", + "isLeaf": true + }, { + "value": 141182, + "label": "汾阳市", + "isLeaf": true + }] + }] +}, { + "value": 150000, + "label": "内蒙古自治区", + "children": [{ + "value": 150100, + "label": "呼和浩特市", + "children": [{ + "value": 150102, + "label": "新城区", + "isLeaf": true + }, { + "value": 150103, + "label": "回民区", + "isLeaf": true + }, { + "value": 150104, + "label": "玉泉区", + "isLeaf": true + }, { + "value": 150105, + "label": "赛罕区", + "isLeaf": true + }, { + "value": 150121, + "label": "土默特左旗", + "isLeaf": true + }, { + "value": 150122, + "label": "托克托县", + "isLeaf": true + }, { + "value": 150123, + "label": "和林格尔县", + "isLeaf": true + }, { + "value": 150124, + "label": "清水河县", + "isLeaf": true + }, { + "value": 150125, + "label": "武川县", + "isLeaf": true + }] + }, { + "value": 150200, + "label": "包头市", + "children": [{ + "value": 150202, + "label": "东河区", + "isLeaf": true + }, { + "value": 150203, + "label": "昆都仑区", + "isLeaf": true + }, { + "value": 150204, + "label": "青山区", + "isLeaf": true + }, { + "value": 150205, + "label": "石拐区", + "isLeaf": true + }, { + "value": 150206, + "label": "白云鄂博矿区", + "isLeaf": true + }, { + "value": 150207, + "label": "九原区", + "isLeaf": true + }, { + "value": 150221, + "label": "土默特右旗", + "isLeaf": true + }, { + "value": 150222, + "label": "固阳县", + "isLeaf": true + }, { + "value": 150223, + "label": "达尔罕茂明安联合旗", + "isLeaf": true + }] + }, { + "value": 150300, + "label": "乌海市", + "children": [{ + "value": 150302, + "label": "海勃湾区", + "isLeaf": true + }, { + "value": 150303, + "label": "海南区", + "isLeaf": true + }, { + "value": 150304, + "label": "乌达区", + "isLeaf": true + }] + }, { + "value": 150400, + "label": "赤峰市", + "children": [{ + "value": 150402, + "label": "红山区", + "isLeaf": true + }, { + "value": 150403, + "label": "元宝山区", + "isLeaf": true + }, { + "value": 150404, + "label": "松山区", + "isLeaf": true + }, { + "value": 150421, + "label": "阿鲁科尔沁旗", + "isLeaf": true + }, { + "value": 150422, + "label": "巴林左旗", + "isLeaf": true + }, { + "value": 150423, + "label": "巴林右旗", + "isLeaf": true + }, { + "value": 150424, + "label": "林西县", + "isLeaf": true + }, { + "value": 150425, + "label": "克什克腾旗", + "isLeaf": true + }, { + "value": 150426, + "label": "翁牛特旗", + "isLeaf": true + }, { + "value": 150428, + "label": "喀喇沁旗", + "isLeaf": true + }, { + "value": 150429, + "label": "宁城县", + "isLeaf": true + }, { + "value": 150430, + "label": "敖汉旗", + "isLeaf": true + }] + }, { + "value": 150500, + "label": "通辽市", + "children": [{ + "value": 150502, + "label": "科尔沁区", + "isLeaf": true + }, { + "value": 150521, + "label": "科尔沁左翼中旗", + "isLeaf": true + }, { + "value": 150522, + "label": "科尔沁左翼后旗", + "isLeaf": true + }, { + "value": 150523, + "label": "开鲁县", + "isLeaf": true + }, { + "value": 150524, + "label": "库伦旗", + "isLeaf": true + }, { + "value": 150525, + "label": "奈曼旗", + "isLeaf": true + }, { + "value": 150526, + "label": "扎鲁特旗", + "isLeaf": true + }, { + "value": 150581, + "label": "霍林郭勒市", + "isLeaf": true + }] + }, { + "value": 150600, + "label": "鄂尔多斯市", + "children": [{ + "value": 150602, + "label": "东胜区", + "isLeaf": true + }, { + "value": 150603, + "label": "康巴什区", + "isLeaf": true + }, { + "value": 150621, + "label": "达拉特旗", + "isLeaf": true + }, { + "value": 150622, + "label": "准格尔旗", + "isLeaf": true + }, { + "value": 150623, + "label": "鄂托克前旗", + "isLeaf": true + }, { + "value": 150624, + "label": "鄂托克旗", + "isLeaf": true + }, { + "value": 150625, + "label": "杭锦旗", + "isLeaf": true + }, { + "value": 150626, + "label": "乌审旗", + "isLeaf": true + }, { + "value": 150627, + "label": "伊金霍洛旗", + "isLeaf": true + }] + }, { + "value": 150700, + "label": "呼伦贝尔市", + "children": [{ + "value": 150702, + "label": "海拉尔区", + "isLeaf": true + }, { + "value": 150703, + "label": "扎赉诺尔区", + "isLeaf": true + }, { + "value": 150721, + "label": "阿荣旗", + "isLeaf": true + }, { + "value": 150722, + "label": "莫力达瓦达斡尔族自治旗", + "isLeaf": true + }, { + "value": 150723, + "label": "鄂伦春自治旗", + "isLeaf": true + }, { + "value": 150724, + "label": "鄂温克族自治旗", + "isLeaf": true + }, { + "value": 150725, + "label": "陈巴尔虎旗", + "isLeaf": true + }, { + "value": 150726, + "label": "新巴尔虎左旗", + "isLeaf": true + }, { + "value": 150727, + "label": "新巴尔虎右旗", + "isLeaf": true + }, { + "value": 150781, + "label": "满洲里市", + "isLeaf": true + }, { + "value": 150782, + "label": "牙克石市", + "isLeaf": true + }, { + "value": 150783, + "label": "扎兰屯市", + "isLeaf": true + }, { + "value": 150784, + "label": "额尔古纳市", + "isLeaf": true + }, { + "value": 150785, + "label": "根河市", + "isLeaf": true + }] + }, { + "value": 150800, + "label": "巴彦淖尔市", + "children": [{ + "value": 150802, + "label": "临河区", + "isLeaf": true + }, { + "value": 150821, + "label": "五原县", + "isLeaf": true + }, { + "value": 150822, + "label": "磴口县", + "isLeaf": true + }, { + "value": 150823, + "label": "乌拉特前旗", + "isLeaf": true + }, { + "value": 150824, + "label": "乌拉特中旗", + "isLeaf": true + }, { + "value": 150825, + "label": "乌拉特后旗", + "isLeaf": true + }, { + "value": 150826, + "label": "杭锦后旗", + "isLeaf": true + }] + }, { + "value": 150900, + "label": "乌兰察布市", + "children": [{ + "value": 150902, + "label": "集宁区", + "isLeaf": true + }, { + "value": 150921, + "label": "卓资县", + "isLeaf": true + }, { + "value": 150922, + "label": "化德县", + "isLeaf": true + }, { + "value": 150923, + "label": "商都县", + "isLeaf": true + }, { + "value": 150924, + "label": "兴和县", + "isLeaf": true + }, { + "value": 150925, + "label": "凉城县", + "isLeaf": true + }, { + "value": 150926, + "label": "察哈尔右翼前旗", + "isLeaf": true + }, { + "value": 150927, + "label": "察哈尔右翼中旗", + "isLeaf": true + }, { + "value": 150928, + "label": "察哈尔右翼后旗", + "isLeaf": true + }, { + "value": 150929, + "label": "四子王旗", + "isLeaf": true + }, { + "value": 150981, + "label": "丰镇市", + "isLeaf": true + }] + }, { + "value": 152200, + "label": "兴安盟", + "children": [{ + "value": 152201, + "label": "乌兰浩特市", + "isLeaf": true + }, { + "value": 152202, + "label": "阿尔山市", + "isLeaf": true + }, { + "value": 152221, + "label": "科尔沁右翼前旗", + "isLeaf": true + }, { + "value": 152222, + "label": "科尔沁右翼中旗", + "isLeaf": true + }, { + "value": 152223, + "label": "扎赉特旗", + "isLeaf": true + }, { + "value": 152224, + "label": "突泉县", + "isLeaf": true + }] + }, { + "value": 152500, + "label": "锡林郭勒盟", + "children": [{ + "value": 152501, + "label": "二连浩特市", + "isLeaf": true + }, { + "value": 152502, + "label": "锡林浩特市", + "isLeaf": true + }, { + "value": 152522, + "label": "阿巴嘎旗", + "isLeaf": true + }, { + "value": 152523, + "label": "苏尼特左旗", + "isLeaf": true + }, { + "value": 152524, + "label": "苏尼特右旗", + "isLeaf": true + }, { + "value": 152525, + "label": "东乌珠穆沁旗", + "isLeaf": true + }, { + "value": 152526, + "label": "西乌珠穆沁旗", + "isLeaf": true + }, { + "value": 152527, + "label": "太仆寺旗", + "isLeaf": true + }, { + "value": 152528, + "label": "镶黄旗", + "isLeaf": true + }, { + "value": 152529, + "label": "正镶白旗", + "isLeaf": true + }, { + "value": 152530, + "label": "正蓝旗", + "isLeaf": true + }, { + "value": 152531, + "label": "多伦县", + "isLeaf": true + }] + }, { + "value": 152900, + "label": "阿拉善盟", + "children": [{ + "value": 152921, + "label": "阿拉善左旗", + "isLeaf": true + }, { + "value": 152922, + "label": "阿拉善右旗", + "isLeaf": true + }, { + "value": 152923, + "label": "额济纳旗", + "isLeaf": true + }] + }] +}, { + "value": 210000, + "label": "辽宁省", + "children": [{ + "value": 210100, + "label": "沈阳市", + "children": [{ + "value": 210102, + "label": "和平区", + "isLeaf": true + }, { + "value": 210103, + "label": "沈河区", + "isLeaf": true + }, { + "value": 210104, + "label": "大东区", + "isLeaf": true + }, { + "value": 210105, + "label": "皇姑区", + "isLeaf": true + }, { + "value": 210106, + "label": "铁西区", + "isLeaf": true + }, { + "value": 210111, + "label": "苏家屯区", + "isLeaf": true + }, { + "value": 210112, + "label": "浑南区", + "isLeaf": true + }, { + "value": 210113, + "label": "沈北新区", + "isLeaf": true + }, { + "value": 210114, + "label": "于洪区", + "isLeaf": true + }, { + "value": 210115, + "label": "辽中区", + "isLeaf": true + }, { + "value": 210123, + "label": "康平县", + "isLeaf": true + }, { + "value": 210124, + "label": "法库县", + "isLeaf": true + }, { + "value": 210181, + "label": "新民市", + "isLeaf": true + }] + }, { + "value": 210200, + "label": "大连市", + "children": [{ + "value": 210202, + "label": "中山区", + "isLeaf": true + }, { + "value": 210203, + "label": "西岗区", + "isLeaf": true + }, { + "value": 210204, + "label": "沙河口区", + "isLeaf": true + }, { + "value": 210211, + "label": "甘井子区", + "isLeaf": true + }, { + "value": 210212, + "label": "旅顺口区", + "isLeaf": true + }, { + "value": 210213, + "label": "金州区", + "isLeaf": true + }, { + "value": 210214, + "label": "普兰店区", + "isLeaf": true + }, { + "value": 210224, + "label": "长海县", + "isLeaf": true + }, { + "value": 210281, + "label": "瓦房店市", + "isLeaf": true + }, { + "value": 210283, + "label": "庄河市", + "isLeaf": true + }] + }, { + "value": 210300, + "label": "鞍山市", + "children": [{ + "value": 210302, + "label": "铁东区", + "isLeaf": true + }, { + "value": 210303, + "label": "铁西区", + "isLeaf": true + }, { + "value": 210304, + "label": "立山区", + "isLeaf": true + }, { + "value": 210311, + "label": "千山区", + "isLeaf": true + }, { + "value": 210321, + "label": "台安县", + "isLeaf": true + }, { + "value": 210323, + "label": "岫岩满族自治县", + "isLeaf": true + }, { + "value": 210381, + "label": "海城市", + "isLeaf": true + }] + }, { + "value": 210400, + "label": "抚顺市", + "children": [{ + "value": 210402, + "label": "新抚区", + "isLeaf": true + }, { + "value": 210403, + "label": "东洲区", + "isLeaf": true + }, { + "value": 210404, + "label": "望花区", + "isLeaf": true + }, { + "value": 210411, + "label": "顺城区", + "isLeaf": true + }, { + "value": 210421, + "label": "抚顺县", + "isLeaf": true + }, { + "value": 210422, + "label": "新宾满族自治县", + "isLeaf": true + }, { + "value": 210423, + "label": "清原满族自治县", + "isLeaf": true + }] + }, { + "value": 210500, + "label": "本溪市", + "children": [{ + "value": 210502, + "label": "平山区", + "isLeaf": true + }, { + "value": 210503, + "label": "溪湖区", + "isLeaf": true + }, { + "value": 210504, + "label": "明山区", + "isLeaf": true + }, { + "value": 210505, + "label": "南芬区", + "isLeaf": true + }, { + "value": 210521, + "label": "本溪满族自治县", + "isLeaf": true + }, { + "value": 210522, + "label": "桓仁满族自治县", + "isLeaf": true + }] + }, { + "value": 210600, + "label": "丹东市", + "children": [{ + "value": 210602, + "label": "元宝区", + "isLeaf": true + }, { + "value": 210603, + "label": "振兴区", + "isLeaf": true + }, { + "value": 210604, + "label": "振安区", + "isLeaf": true + }, { + "value": 210624, + "label": "宽甸满族自治县", + "isLeaf": true + }, { + "value": 210681, + "label": "东港市", + "isLeaf": true + }, { + "value": 210682, + "label": "凤城市", + "isLeaf": true + }] + }, { + "value": 210700, + "label": "锦州市", + "children": [{ + "value": 210702, + "label": "古塔区", + "isLeaf": true + }, { + "value": 210703, + "label": "凌河区", + "isLeaf": true + }, { + "value": 210711, + "label": "太和区", + "isLeaf": true + }, { + "value": 210726, + "label": "黑山县", + "isLeaf": true + }, { + "value": 210727, + "label": "义县", + "isLeaf": true + }, { + "value": 210781, + "label": "凌海市", + "isLeaf": true + }, { + "value": 210782, + "label": "北镇市", + "isLeaf": true + }] + }, { + "value": 210800, + "label": "营口市", + "children": [{ + "value": 210802, + "label": "站前区", + "isLeaf": true + }, { + "value": 210803, + "label": "西市区", + "isLeaf": true + }, { + "value": 210804, + "label": "鲅鱼圈区", + "isLeaf": true + }, { + "value": 210811, + "label": "老边区", + "isLeaf": true + }, { + "value": 210881, + "label": "盖州市", + "isLeaf": true + }, { + "value": 210882, + "label": "大石桥市", + "isLeaf": true + }] + }, { + "value": 210900, + "label": "阜新市", + "children": [{ + "value": 210902, + "label": "海州区", + "isLeaf": true + }, { + "value": 210903, + "label": "新邱区", + "isLeaf": true + }, { + "value": 210904, + "label": "太平区", + "isLeaf": true + }, { + "value": 210905, + "label": "清河门区", + "isLeaf": true + }, { + "value": 210911, + "label": "细河区", + "isLeaf": true + }, { + "value": 210921, + "label": "阜新蒙古族自治县", + "isLeaf": true + }, { + "value": 210922, + "label": "彰武县", + "isLeaf": true + }] + }, { + "value": 211000, + "label": "辽阳市", + "children": [{ + "value": 211002, + "label": "白塔区", + "isLeaf": true + }, { + "value": 211003, + "label": "文圣区", + "isLeaf": true + }, { + "value": 211004, + "label": "宏伟区", + "isLeaf": true + }, { + "value": 211005, + "label": "弓长岭区", + "isLeaf": true + }, { + "value": 211011, + "label": "太子河区", + "isLeaf": true + }, { + "value": 211021, + "label": "辽阳县", + "isLeaf": true + }, { + "value": 211081, + "label": "灯塔市", + "isLeaf": true + }] + }, { + "value": 211100, + "label": "盘锦市", + "children": [{ + "value": 211102, + "label": "双台子区", + "isLeaf": true + }, { + "value": 211103, + "label": "兴隆台区", + "isLeaf": true + }, { + "value": 211104, + "label": "大洼区", + "isLeaf": true + }, { + "value": 211122, + "label": "盘山县", + "isLeaf": true + }] + }, { + "value": 211200, + "label": "铁岭市", + "children": [{ + "value": 211202, + "label": "银州区", + "isLeaf": true + }, { + "value": 211204, + "label": "清河区", + "isLeaf": true + }, { + "value": 211221, + "label": "铁岭县", + "isLeaf": true + }, { + "value": 211223, + "label": "西丰县", + "isLeaf": true + }, { + "value": 211224, + "label": "昌图县", + "isLeaf": true + }, { + "value": 211281, + "label": "调兵山市", + "isLeaf": true + }, { + "value": 211282, + "label": "开原市", + "isLeaf": true + }] + }, { + "value": 211300, + "label": "朝阳市", + "children": [{ + "value": 211302, + "label": "双塔区", + "isLeaf": true + }, { + "value": 211303, + "label": "龙城区", + "isLeaf": true + }, { + "value": 211321, + "label": "朝阳县", + "isLeaf": true + }, { + "value": 211322, + "label": "建平县", + "isLeaf": true + }, { + "value": 211324, + "label": "喀喇沁左翼蒙古族自治县", + "isLeaf": true + }, { + "value": 211381, + "label": "北票市", + "isLeaf": true + }, { + "value": 211382, + "label": "凌源市", + "isLeaf": true + }] + }, { + "value": 211400, + "label": "葫芦岛市", + "children": [{ + "value": 211402, + "label": "连山区", + "isLeaf": true + }, { + "value": 211403, + "label": "龙港区", + "isLeaf": true + }, { + "value": 211404, + "label": "南票区", + "isLeaf": true + }, { + "value": 211421, + "label": "绥中县", + "isLeaf": true + }, { + "value": 211422, + "label": "建昌县", + "isLeaf": true + }, { + "value": 211481, + "label": "兴城市", + "isLeaf": true + }] + }] +}, { + "value": 220000, + "label": "吉林省", + "children": [{ + "value": 220100, + "label": "长春市", + "children": [{ + "value": 220102, + "label": "南关区", + "isLeaf": true + }, { + "value": 220103, + "label": "宽城区", + "isLeaf": true + }, { + "value": 220104, + "label": "朝阳区", + "isLeaf": true + }, { + "value": 220105, + "label": "二道区", + "isLeaf": true + }, { + "value": 220106, + "label": "绿园区", + "isLeaf": true + }, { + "value": 220112, + "label": "双阳区", + "isLeaf": true + }, { + "value": 220113, + "label": "九台区", + "isLeaf": true + }, { + "value": 220122, + "label": "农安县", + "isLeaf": true + }, { + "value": 220182, + "label": "榆树市", + "isLeaf": true + }, { + "value": 220183, + "label": "德惠市", + "isLeaf": true + }] + }, { + "value": 220200, + "label": "吉林市", + "children": [{ + "value": 220202, + "label": "昌邑区", + "isLeaf": true + }, { + "value": 220203, + "label": "龙潭区", + "isLeaf": true + }, { + "value": 220204, + "label": "船营区", + "isLeaf": true + }, { + "value": 220211, + "label": "丰满区", + "isLeaf": true + }, { + "value": 220221, + "label": "永吉县", + "isLeaf": true + }, { + "value": 220281, + "label": "蛟河市", + "isLeaf": true + }, { + "value": 220282, + "label": "桦甸市", + "isLeaf": true + }, { + "value": 220283, + "label": "舒兰市", + "isLeaf": true + }, { + "value": 220284, + "label": "磐石市", + "isLeaf": true + }] + }, { + "value": 220300, + "label": "四平市", + "children": [{ + "value": 220302, + "label": "铁西区", + "isLeaf": true + }, { + "value": 220303, + "label": "铁东区", + "isLeaf": true + }, { + "value": 220322, + "label": "梨树县", + "isLeaf": true + }, { + "value": 220323, + "label": "伊通满族自治县", + "isLeaf": true + }, { + "value": 220381, + "label": "公主岭市", + "isLeaf": true + }, { + "value": 220382, + "label": "双辽市", + "isLeaf": true + }] + }, { + "value": 220400, + "label": "辽源市", + "children": [{ + "value": 220402, + "label": "龙山区", + "isLeaf": true + }, { + "value": 220403, + "label": "西安区", + "isLeaf": true + }, { + "value": 220421, + "label": "东丰县", + "isLeaf": true + }, { + "value": 220422, + "label": "东辽县", + "isLeaf": true + }] + }, { + "value": 220500, + "label": "通化市", + "children": [{ + "value": 220502, + "label": "东昌区", + "isLeaf": true + }, { + "value": 220503, + "label": "二道江区", + "isLeaf": true + }, { + "value": 220521, + "label": "通化县", + "isLeaf": true + }, { + "value": 220523, + "label": "辉南县", + "isLeaf": true + }, { + "value": 220524, + "label": "柳河县", + "isLeaf": true + }, { + "value": 220581, + "label": "梅河口市", + "isLeaf": true + }, { + "value": 220582, + "label": "集安市", + "isLeaf": true + }] + }, { + "value": 220600, + "label": "白山市", + "children": [{ + "value": 220602, + "label": "浑江区", + "isLeaf": true + }, { + "value": 220605, + "label": "江源区", + "isLeaf": true + }, { + "value": 220621, + "label": "抚松县", + "isLeaf": true + }, { + "value": 220622, + "label": "靖宇县", + "isLeaf": true + }, { + "value": 220623, + "label": "长白朝鲜族自治县", + "isLeaf": true + }, { + "value": 220681, + "label": "临江市", + "isLeaf": true + }] + }, { + "value": 220700, + "label": "松原市", + "children": [{ + "value": 220702, + "label": "宁江区", + "isLeaf": true + }, { + "value": 220721, + "label": "前郭尔罗斯蒙古族自治县", + "isLeaf": true + }, { + "value": 220722, + "label": "长岭县", + "isLeaf": true + }, { + "value": 220723, + "label": "乾安县", + "isLeaf": true + }, { + "value": 220781, + "label": "扶余市", + "isLeaf": true + }] + }, { + "value": 220800, + "label": "白城市", + "children": [{ + "value": 220802, + "label": "洮北区", + "isLeaf": true + }, { + "value": 220821, + "label": "镇赉县", + "isLeaf": true + }, { + "value": 220822, + "label": "通榆县", + "isLeaf": true + }, { + "value": 220881, + "label": "洮南市", + "isLeaf": true + }, { + "value": 220882, + "label": "大安市", + "isLeaf": true + }] + }, { + "value": 222400, + "label": "延边朝鲜族自治州", + "children": [{ + "value": 222401, + "label": "延吉市", + "isLeaf": true + }, { + "value": 222402, + "label": "图们市", + "isLeaf": true + }, { + "value": 222403, + "label": "敦化市", + "isLeaf": true + }, { + "value": 222404, + "label": "珲春市", + "isLeaf": true + }, { + "value": 222405, + "label": "龙井市", + "isLeaf": true + }, { + "value": 222406, + "label": "和龙市", + "isLeaf": true + }, { + "value": 222424, + "label": "汪清县", + "isLeaf": true + }, { + "value": 222426, + "label": "安图县", + "isLeaf": true + }] + }] +}, { + "value": 230000, + "label": "黑龙江省", + "children": [{ + "value": 230100, + "label": "哈尔滨市", + "children": [{ + "value": 230102, + "label": "道里区", + "isLeaf": true + }, { + "value": 230103, + "label": "南岗区", + "isLeaf": true + }, { + "value": 230104, + "label": "道外区", + "isLeaf": true + }, { + "value": 230108, + "label": "平房区", + "isLeaf": true + }, { + "value": 230109, + "label": "松北区", + "isLeaf": true + }, { + "value": 230110, + "label": "香坊区", + "isLeaf": true + }, { + "value": 230111, + "label": "呼兰区", + "isLeaf": true + }, { + "value": 230112, + "label": "阿城区", + "isLeaf": true + }, { + "value": 230113, + "label": "双城区", + "isLeaf": true + }, { + "value": 230123, + "label": "依兰县", + "isLeaf": true + }, { + "value": 230124, + "label": "方正县", + "isLeaf": true + }, { + "value": 230125, + "label": "宾县", + "isLeaf": true + }, { + "value": 230126, + "label": "巴彦县", + "isLeaf": true + }, { + "value": 230127, + "label": "木兰县", + "isLeaf": true + }, { + "value": 230128, + "label": "通河县", + "isLeaf": true + }, { + "value": 230129, + "label": "延寿县", + "isLeaf": true + }, { + "value": 230183, + "label": "尚志市", + "isLeaf": true + }, { + "value": 230184, + "label": "五常市", + "isLeaf": true + }] + }, { + "value": 230200, + "label": "齐齐哈尔市", + "children": [{ + "value": 230202, + "label": "龙沙区", + "isLeaf": true + }, { + "value": 230203, + "label": "建华区", + "isLeaf": true + }, { + "value": 230204, + "label": "铁锋区", + "isLeaf": true + }, { + "value": 230205, + "label": "昂昂溪区", + "isLeaf": true + }, { + "value": 230206, + "label": "富拉尔基区", + "isLeaf": true + }, { + "value": 230207, + "label": "碾子山区", + "isLeaf": true + }, { + "value": 230208, + "label": "梅里斯达斡尔族区", + "isLeaf": true + }, { + "value": 230221, + "label": "龙江县", + "isLeaf": true + }, { + "value": 230223, + "label": "依安县", + "isLeaf": true + }, { + "value": 230224, + "label": "泰来县", + "isLeaf": true + }, { + "value": 230225, + "label": "甘南县", + "isLeaf": true + }, { + "value": 230227, + "label": "富裕县", + "isLeaf": true + }, { + "value": 230229, + "label": "克山县", + "isLeaf": true + }, { + "value": 230230, + "label": "克东县", + "isLeaf": true + }, { + "value": 230231, + "label": "拜泉县", + "isLeaf": true + }, { + "value": 230281, + "label": "讷河市", + "isLeaf": true + }] + }, { + "value": 230300, + "label": "鸡西市", + "children": [{ + "value": 230302, + "label": "鸡冠区", + "isLeaf": true + }, { + "value": 230303, + "label": "恒山区", + "isLeaf": true + }, { + "value": 230304, + "label": "滴道区", + "isLeaf": true + }, { + "value": 230305, + "label": "梨树区", + "isLeaf": true + }, { + "value": 230306, + "label": "城子河区", + "isLeaf": true + }, { + "value": 230307, + "label": "麻山区", + "isLeaf": true + }, { + "value": 230321, + "label": "鸡东县", + "isLeaf": true + }, { + "value": 230381, + "label": "虎林市", + "isLeaf": true + }, { + "value": 230382, + "label": "密山市", + "isLeaf": true + }] + }, { + "value": 230400, + "label": "鹤岗市", + "children": [{ + "value": 230402, + "label": "向阳区", + "isLeaf": true + }, { + "value": 230403, + "label": "工农区", + "isLeaf": true + }, { + "value": 230404, + "label": "南山区", + "isLeaf": true + }, { + "value": 230405, + "label": "兴安区", + "isLeaf": true + }, { + "value": 230406, + "label": "东山区", + "isLeaf": true + }, { + "value": 230407, + "label": "兴山区", + "isLeaf": true + }, { + "value": 230421, + "label": "萝北县", + "isLeaf": true + }, { + "value": 230422, + "label": "绥滨县", + "isLeaf": true + }] + }, { + "value": 230500, + "label": "双鸭山市", + "children": [{ + "value": 230502, + "label": "尖山区", + "isLeaf": true + }, { + "value": 230503, + "label": "岭东区", + "isLeaf": true + }, { + "value": 230505, + "label": "四方台区", + "isLeaf": true + }, { + "value": 230506, + "label": "宝山区", + "isLeaf": true + }, { + "value": 230521, + "label": "集贤县", + "isLeaf": true + }, { + "value": 230522, + "label": "友谊县", + "isLeaf": true + }, { + "value": 230523, + "label": "宝清县", + "isLeaf": true + }, { + "value": 230524, + "label": "饶河县", + "isLeaf": true + }] + }, { + "value": 230600, + "label": "大庆市", + "children": [{ + "value": 230602, + "label": "萨尔图区", + "isLeaf": true + }, { + "value": 230603, + "label": "龙凤区", + "isLeaf": true + }, { + "value": 230604, + "label": "让胡路区", + "isLeaf": true + }, { + "value": 230605, + "label": "红岗区", + "isLeaf": true + }, { + "value": 230606, + "label": "大同区", + "isLeaf": true + }, { + "value": 230621, + "label": "肇州县", + "isLeaf": true + }, { + "value": 230622, + "label": "肇源县", + "isLeaf": true + }, { + "value": 230623, + "label": "林甸县", + "isLeaf": true + }, { + "value": 230624, + "label": "杜尔伯特蒙古族自治县", + "isLeaf": true + }] + }, { + "value": 230700, + "label": "伊春市", + "children": [{ + "value": 230702, + "label": "伊春区", + "isLeaf": true + }, { + "value": 230703, + "label": "南岔区", + "isLeaf": true + }, { + "value": 230704, + "label": "友好区", + "isLeaf": true + }, { + "value": 230705, + "label": "西林区", + "isLeaf": true + }, { + "value": 230706, + "label": "翠峦区", + "isLeaf": true + }, { + "value": 230707, + "label": "新青区", + "isLeaf": true + }, { + "value": 230708, + "label": "美溪区", + "isLeaf": true + }, { + "value": 230709, + "label": "金山屯区", + "isLeaf": true + }, { + "value": 230710, + "label": "五营区", + "isLeaf": true + }, { + "value": 230711, + "label": "乌马河区", + "isLeaf": true + }, { + "value": 230712, + "label": "汤旺河区", + "isLeaf": true + }, { + "value": 230713, + "label": "带岭区", + "isLeaf": true + }, { + "value": 230714, + "label": "乌伊岭区", + "isLeaf": true + }, { + "value": 230715, + "label": "红星区", + "isLeaf": true + }, { + "value": 230716, + "label": "上甘岭区", + "isLeaf": true + }, { + "value": 230722, + "label": "嘉荫县", + "isLeaf": true + }, { + "value": 230781, + "label": "铁力市", + "isLeaf": true + }] + }, { + "value": 230800, + "label": "佳木斯市", + "children": [{ + "value": 230803, + "label": "向阳区", + "isLeaf": true + }, { + "value": 230804, + "label": "前进区", + "isLeaf": true + }, { + "value": 230805, + "label": "东风区", + "isLeaf": true + }, { + "value": 230811, + "label": "郊区", + "isLeaf": true + }, { + "value": 230822, + "label": "桦南县", + "isLeaf": true + }, { + "value": 230826, + "label": "桦川县", + "isLeaf": true + }, { + "value": 230828, + "label": "汤原县", + "isLeaf": true + }, { + "value": 230881, + "label": "同江市", + "isLeaf": true + }, { + "value": 230882, + "label": "富锦市", + "isLeaf": true + }, { + "value": 230883, + "label": "抚远市", + "isLeaf": true + }] + }, { + "value": 230900, + "label": "七台河市", + "children": [{ + "value": 230902, + "label": "新兴区", + "isLeaf": true + }, { + "value": 230903, + "label": "桃山区", + "isLeaf": true + }, { + "value": 230904, + "label": "茄子河区", + "isLeaf": true + }, { + "value": 230921, + "label": "勃利县", + "isLeaf": true + }] + }, { + "value": 231000, + "label": "牡丹江市", + "children": [{ + "value": 231002, + "label": "东安区", + "isLeaf": true + }, { + "value": 231003, + "label": "阳明区", + "isLeaf": true + }, { + "value": 231004, + "label": "爱民区", + "isLeaf": true + }, { + "value": 231005, + "label": "西安区", + "isLeaf": true + }, { + "value": 231025, + "label": "林口县", + "isLeaf": true + }, { + "value": 231081, + "label": "绥芬河市", + "isLeaf": true + }, { + "value": 231083, + "label": "海林市", + "isLeaf": true + }, { + "value": 231084, + "label": "宁安市", + "isLeaf": true + }, { + "value": 231085, + "label": "穆棱市", + "isLeaf": true + }, { + "value": 231086, + "label": "东宁市", + "isLeaf": true + }] + }, { + "value": 231100, + "label": "黑河市", + "children": [{ + "value": 231102, + "label": "爱辉区", + "isLeaf": true + }, { + "value": 231121, + "label": "嫩江县", + "isLeaf": true + }, { + "value": 231123, + "label": "逊克县", + "isLeaf": true + }, { + "value": 231124, + "label": "孙吴县", + "isLeaf": true + }, { + "value": 231181, + "label": "北安市", + "isLeaf": true + }, { + "value": 231182, + "label": "五大连池市", + "isLeaf": true + }] + }, { + "value": 231200, + "label": "绥化市", + "children": [{ + "value": 231202, + "label": "北林区", + "isLeaf": true + }, { + "value": 231221, + "label": "望奎县", + "isLeaf": true + }, { + "value": 231222, + "label": "兰西县", + "isLeaf": true + }, { + "value": 231223, + "label": "青冈县", + "isLeaf": true + }, { + "value": 231224, + "label": "庆安县", + "isLeaf": true + }, { + "value": 231225, + "label": "明水县", + "isLeaf": true + }, { + "value": 231226, + "label": "绥棱县", + "isLeaf": true + }, { + "value": 231281, + "label": "安达市", + "isLeaf": true + }, { + "value": 231282, + "label": "肇东市", + "isLeaf": true + }, { + "value": 231283, + "label": "海伦市", + "isLeaf": true + }] + }, { + "value": 232700, + "label": "大兴安岭地区", + "children": [{ + "value": 232721, + "label": "呼玛县", + "isLeaf": true + }, { + "value": 232722, + "label": "塔河县", + "isLeaf": true + }, { + "value": 232723, + "label": "漠河县", + "isLeaf": true + }] + }] +}, { + "value": 310000, + "label": "上海市", + "children": [{ + "value": 310100, + "label": "市辖区", + "children": [{ + "value": 310101, + "label": "黄浦区", + "isLeaf": true + }, { + "value": 310104, + "label": "徐汇区", + "isLeaf": true + }, { + "value": 310105, + "label": "长宁区", + "isLeaf": true + }, { + "value": 310106, + "label": "静安区", + "isLeaf": true + }, { + "value": 310107, + "label": "普陀区", + "isLeaf": true + }, { + "value": 310109, + "label": "虹口区", + "isLeaf": true + }, { + "value": 310110, + "label": "杨浦区", + "isLeaf": true + }, { + "value": 310112, + "label": "闵行区", + "isLeaf": true + }, { + "value": 310113, + "label": "宝山区", + "isLeaf": true + }, { + "value": 310114, + "label": "嘉定区", + "isLeaf": true + }, { + "value": 310115, + "label": "浦东新区", + "isLeaf": true + }, { + "value": 310116, + "label": "金山区", + "isLeaf": true + }, { + "value": 310117, + "label": "松江区", + "isLeaf": true + }, { + "value": 310118, + "label": "青浦区", + "isLeaf": true + }, { + "value": 310120, + "label": "奉贤区", + "isLeaf": true + }, { + "value": 310151, + "label": "崇明区", + "isLeaf": true + }] + }] +}, { + "value": 320000, + "label": "江苏省", + "children": [{ + "value": 320100, + "label": "南京市", + "children": [{ + "value": 320102, + "label": "玄武区", + "isLeaf": true + }, { + "value": 320104, + "label": "秦淮区", + "isLeaf": true + }, { + "value": 320105, + "label": "建邺区", + "isLeaf": true + }, { + "value": 320106, + "label": "鼓楼区", + "isLeaf": true + }, { + "value": 320111, + "label": "浦口区", + "isLeaf": true + }, { + "value": 320113, + "label": "栖霞区", + "isLeaf": true + }, { + "value": 320114, + "label": "雨花台区", + "isLeaf": true + }, { + "value": 320115, + "label": "江宁区", + "isLeaf": true + }, { + "value": 320116, + "label": "六合区", + "isLeaf": true + }, { + "value": 320117, + "label": "溧水区", + "isLeaf": true + }, { + "value": 320118, + "label": "高淳区", + "isLeaf": true + }] + }, { + "value": 320200, + "label": "无锡市", + "children": [{ + "value": 320205, + "label": "锡山区", + "isLeaf": true + }, { + "value": 320206, + "label": "惠山区", + "isLeaf": true + }, { + "value": 320211, + "label": "滨湖区", + "isLeaf": true + }, { + "value": 320213, + "label": "梁溪区", + "isLeaf": true + }, { + "value": 320214, + "label": "新吴区", + "isLeaf": true + }, { + "value": 320281, + "label": "江阴市", + "isLeaf": true + }, { + "value": 320282, + "label": "宜兴市", + "isLeaf": true + }] + }, { + "value": 320300, + "label": "徐州市", + "children": [{ + "value": 320302, + "label": "鼓楼区", + "isLeaf": true + }, { + "value": 320303, + "label": "云龙区", + "isLeaf": true + }, { + "value": 320305, + "label": "贾汪区", + "isLeaf": true + }, { + "value": 320311, + "label": "泉山区", + "isLeaf": true + }, { + "value": 320312, + "label": "铜山区", + "isLeaf": true + }, { + "value": 320321, + "label": "丰县", + "isLeaf": true + }, { + "value": 320322, + "label": "沛县", + "isLeaf": true + }, { + "value": 320324, + "label": "睢宁县", + "isLeaf": true + }, { + "value": 320381, + "label": "新沂市", + "isLeaf": true + }, { + "value": 320382, + "label": "邳州市", + "isLeaf": true + }] + }, { + "value": 320400, + "label": "常州市", + "children": [{ + "value": 320402, + "label": "天宁区", + "isLeaf": true + }, { + "value": 320404, + "label": "钟楼区", + "isLeaf": true + }, { + "value": 320411, + "label": "新北区", + "isLeaf": true + }, { + "value": 320412, + "label": "武进区", + "isLeaf": true + }, { + "value": 320413, + "label": "金坛区", + "isLeaf": true + }, { + "value": 320481, + "label": "溧阳市", + "isLeaf": true + }] + }, { + "value": 320500, + "label": "苏州市", + "children": [{ + "value": 320505, + "label": "虎丘区", + "isLeaf": true + }, { + "value": 320506, + "label": "吴中区", + "isLeaf": true + }, { + "value": 320507, + "label": "相城区", + "isLeaf": true + }, { + "value": 320508, + "label": "姑苏区", + "isLeaf": true + }, { + "value": 320509, + "label": "吴江区", + "isLeaf": true + }, { + "value": 320581, + "label": "常熟市", + "isLeaf": true + }, { + "value": 320582, + "label": "张家港市", + "isLeaf": true + }, { + "value": 320583, + "label": "昆山市", + "isLeaf": true + }, { + "value": 320585, + "label": "太仓市", + "isLeaf": true + }] + }, { + "value": 320600, + "label": "南通市", + "children": [{ + "value": 320602, + "label": "崇川区", + "isLeaf": true + }, { + "value": 320611, + "label": "港闸区", + "isLeaf": true + }, { + "value": 320612, + "label": "通州区", + "isLeaf": true + }, { + "value": 320621, + "label": "海安县", + "isLeaf": true + }, { + "value": 320623, + "label": "如东县", + "isLeaf": true + }, { + "value": 320681, + "label": "启东市", + "isLeaf": true + }, { + "value": 320682, + "label": "如皋市", + "isLeaf": true + }, { + "value": 320684, + "label": "海门市", + "isLeaf": true + }] + }, { + "value": 320700, + "label": "连云港市", + "children": [{ + "value": 320703, + "label": "连云区", + "isLeaf": true + }, { + "value": 320706, + "label": "海州区", + "isLeaf": true + }, { + "value": 320707, + "label": "赣榆区", + "isLeaf": true + }, { + "value": 320722, + "label": "东海县", + "isLeaf": true + }, { + "value": 320723, + "label": "灌云县", + "isLeaf": true + }, { + "value": 320724, + "label": "灌南县", + "isLeaf": true + }] + }, { + "value": 320800, + "label": "淮安市", + "children": [{ + "value": 320803, + "label": "淮安区", + "isLeaf": true + }, { + "value": 320804, + "label": "淮阴区", + "isLeaf": true + }, { + "value": 320812, + "label": "清江浦区", + "isLeaf": true + }, { + "value": 320813, + "label": "洪泽区", + "isLeaf": true + }, { + "value": 320826, + "label": "涟水县", + "isLeaf": true + }, { + "value": 320830, + "label": "盱眙县", + "isLeaf": true + }, { + "value": 320831, + "label": "金湖县", + "isLeaf": true + }] + }, { + "value": 320900, + "label": "盐城市", + "children": [{ + "value": 320902, + "label": "亭湖区", + "isLeaf": true + }, { + "value": 320903, + "label": "盐都区", + "isLeaf": true + }, { + "value": 320904, + "label": "大丰区", + "isLeaf": true + }, { + "value": 320921, + "label": "响水县", + "isLeaf": true + }, { + "value": 320922, + "label": "滨海县", + "isLeaf": true + }, { + "value": 320923, + "label": "阜宁县", + "isLeaf": true + }, { + "value": 320924, + "label": "射阳县", + "isLeaf": true + }, { + "value": 320925, + "label": "建湖县", + "isLeaf": true + }, { + "value": 320981, + "label": "东台市", + "isLeaf": true + }] + }, { + "value": 321000, + "label": "扬州市", + "children": [{ + "value": 321002, + "label": "广陵区", + "isLeaf": true + }, { + "value": 321003, + "label": "邗江区", + "isLeaf": true + }, { + "value": 321012, + "label": "江都区", + "isLeaf": true + }, { + "value": 321023, + "label": "宝应县", + "isLeaf": true + }, { + "value": 321081, + "label": "仪征市", + "isLeaf": true + }, { + "value": 321084, + "label": "高邮市", + "isLeaf": true + }] + }, { + "value": 321100, + "label": "镇江市", + "children": [{ + "value": 321102, + "label": "京口区", + "isLeaf": true + }, { + "value": 321111, + "label": "润州区", + "isLeaf": true + }, { + "value": 321112, + "label": "丹徒区", + "isLeaf": true + }, { + "value": 321181, + "label": "丹阳市", + "isLeaf": true + }, { + "value": 321182, + "label": "扬中市", + "isLeaf": true + }, { + "value": 321183, + "label": "句容市", + "isLeaf": true + }] + }, { + "value": 321200, + "label": "泰州市", + "children": [{ + "value": 321202, + "label": "海陵区", + "isLeaf": true + }, { + "value": 321203, + "label": "高港区", + "isLeaf": true + }, { + "value": 321204, + "label": "姜堰区", + "isLeaf": true + }, { + "value": 321281, + "label": "兴化市", + "isLeaf": true + }, { + "value": 321282, + "label": "靖江市", + "isLeaf": true + }, { + "value": 321283, + "label": "泰兴市", + "isLeaf": true + }] + }, { + "value": 321300, + "label": "宿迁市", + "children": [{ + "value": 321302, + "label": "宿城区", + "isLeaf": true + }, { + "value": 321311, + "label": "宿豫区", + "isLeaf": true + }, { + "value": 321322, + "label": "沭阳县", + "isLeaf": true + }, { + "value": 321323, + "label": "泗阳县", + "isLeaf": true + }, { + "value": 321324, + "label": "泗洪县", + "isLeaf": true + }] + }] +}, { + "value": 330000, + "label": "浙江省", + "children": [{ + "value": 330100, + "label": "杭州市", + "children": [{ + "value": 330102, + "label": "上城区", + "isLeaf": true + }, { + "value": 330103, + "label": "下城区", + "isLeaf": true + }, { + "value": 330104, + "label": "江干区", + "isLeaf": true + }, { + "value": 330105, + "label": "拱墅区", + "isLeaf": true + }, { + "value": 330106, + "label": "西湖区", + "isLeaf": true + }, { + "value": 330108, + "label": "滨江区", + "isLeaf": true + }, { + "value": 330109, + "label": "萧山区", + "isLeaf": true + }, { + "value": 330110, + "label": "余杭区", + "isLeaf": true + }, { + "value": 330111, + "label": "富阳区", + "isLeaf": true + }, { + "value": 330122, + "label": "桐庐县", + "isLeaf": true + }, { + "value": 330127, + "label": "淳安县", + "isLeaf": true + }, { + "value": 330182, + "label": "建德市", + "isLeaf": true + }, { + "value": 330185, + "label": "临安市", + "isLeaf": true + }] + }, { + "value": 330200, + "label": "宁波市", + "children": [{ + "value": 330203, + "label": "海曙区", + "isLeaf": true + }, { + "value": 330204, + "label": "江东区", + "isLeaf": true + }, { + "value": 330205, + "label": "江北区", + "isLeaf": true + }, { + "value": 330206, + "label": "北仑区", + "isLeaf": true + }, { + "value": 330211, + "label": "镇海区", + "isLeaf": true + }, { + "value": 330212, + "label": "鄞州区", + "isLeaf": true + }, { + "value": 330225, + "label": "象山县", + "isLeaf": true + }, { + "value": 330226, + "label": "宁海县", + "isLeaf": true + }, { + "value": 330281, + "label": "余姚市", + "isLeaf": true + }, { + "value": 330282, + "label": "慈溪市", + "isLeaf": true + }, { + "value": 330283, + "label": "奉化市", + "isLeaf": true + }] + }, { + "value": 330300, + "label": "温州市", + "children": [{ + "value": 330302, + "label": "鹿城区", + "isLeaf": true + }, { + "value": 330303, + "label": "龙湾区", + "isLeaf": true + }, { + "value": 330304, + "label": "瓯海区", + "isLeaf": true + }, { + "value": 330305, + "label": "洞头区", + "isLeaf": true + }, { + "value": 330324, + "label": "永嘉县", + "isLeaf": true + }, { + "value": 330326, + "label": "平阳县", + "isLeaf": true + }, { + "value": 330327, + "label": "苍南县", + "isLeaf": true + }, { + "value": 330328, + "label": "文成县", + "isLeaf": true + }, { + "value": 330329, + "label": "泰顺县", + "isLeaf": true + }, { + "value": 330381, + "label": "瑞安市", + "isLeaf": true + }, { + "value": 330382, + "label": "乐清市", + "isLeaf": true + }] + }, { + "value": 330400, + "label": "嘉兴市", + "children": [{ + "value": 330402, + "label": "南湖区", + "isLeaf": true + }, { + "value": 330411, + "label": "秀洲区", + "isLeaf": true + }, { + "value": 330421, + "label": "嘉善县", + "isLeaf": true + }, { + "value": 330424, + "label": "海盐县", + "isLeaf": true + }, { + "value": 330481, + "label": "海宁市", + "isLeaf": true + }, { + "value": 330482, + "label": "平湖市", + "isLeaf": true + }, { + "value": 330483, + "label": "桐乡市", + "isLeaf": true + }] + }, { + "value": 330500, + "label": "湖州市", + "children": [{ + "value": 330502, + "label": "吴兴区", + "isLeaf": true + }, { + "value": 330503, + "label": "南浔区", + "isLeaf": true + }, { + "value": 330521, + "label": "德清县", + "isLeaf": true + }, { + "value": 330522, + "label": "长兴县", + "isLeaf": true + }, { + "value": 330523, + "label": "安吉县", + "isLeaf": true + }] + }, { + "value": 330600, + "label": "绍兴市", + "children": [{ + "value": 330602, + "label": "越城区", + "isLeaf": true + }, { + "value": 330603, + "label": "柯桥区", + "isLeaf": true + }, { + "value": 330604, + "label": "上虞区", + "isLeaf": true + }, { + "value": 330624, + "label": "新昌县", + "isLeaf": true + }, { + "value": 330681, + "label": "诸暨市", + "isLeaf": true + }, { + "value": 330683, + "label": "嵊州市", + "isLeaf": true + }] + }, { + "value": 330700, + "label": "金华市", + "children": [{ + "value": 330702, + "label": "婺城区", + "isLeaf": true + }, { + "value": 330703, + "label": "金东区", + "isLeaf": true + }, { + "value": 330723, + "label": "武义县", + "isLeaf": true + }, { + "value": 330726, + "label": "浦江县", + "isLeaf": true + }, { + "value": 330727, + "label": "磐安县", + "isLeaf": true + }, { + "value": 330781, + "label": "兰溪市", + "isLeaf": true + }, { + "value": 330782, + "label": "义乌市", + "isLeaf": true + }, { + "value": 330783, + "label": "东阳市", + "isLeaf": true + }, { + "value": 330784, + "label": "永康市", + "isLeaf": true + }] + }, { + "value": 330800, + "label": "衢州市", + "children": [{ + "value": 330802, + "label": "柯城区", + "isLeaf": true + }, { + "value": 330803, + "label": "衢江区", + "isLeaf": true + }, { + "value": 330822, + "label": "常山县", + "isLeaf": true + }, { + "value": 330824, + "label": "开化县", + "isLeaf": true + }, { + "value": 330825, + "label": "龙游县", + "isLeaf": true + }, { + "value": 330881, + "label": "江山市", + "isLeaf": true + }] + }, { + "value": 330900, + "label": "舟山市", + "children": [{ + "value": 330902, + "label": "定海区", + "isLeaf": true + }, { + "value": 330903, + "label": "普陀区", + "isLeaf": true + }, { + "value": 330921, + "label": "岱山县", + "isLeaf": true + }, { + "value": 330922, + "label": "嵊泗县", + "isLeaf": true + }] + }, { + "value": 331000, + "label": "台州市", + "children": [{ + "value": 331002, + "label": "椒江区", + "isLeaf": true + }, { + "value": 331003, + "label": "黄岩区", + "isLeaf": true + }, { + "value": 331004, + "label": "路桥区", + "isLeaf": true + }, { + "value": 331021, + "label": "玉环县", + "isLeaf": true + }, { + "value": 331022, + "label": "三门县", + "isLeaf": true + }, { + "value": 331023, + "label": "天台县", + "isLeaf": true + }, { + "value": 331024, + "label": "仙居县", + "isLeaf": true + }, { + "value": 331081, + "label": "温岭市", + "isLeaf": true + }, { + "value": 331082, + "label": "临海市", + "isLeaf": true + }] + }, { + "value": 331100, + "label": "丽水市", + "children": [{ + "value": 331102, + "label": "莲都区", + "isLeaf": true + }, { + "value": 331121, + "label": "青田县", + "isLeaf": true + }, { + "value": 331122, + "label": "缙云县", + "isLeaf": true + }, { + "value": 331123, + "label": "遂昌县", + "isLeaf": true + }, { + "value": 331124, + "label": "松阳县", + "isLeaf": true + }, { + "value": 331125, + "label": "云和县", + "isLeaf": true + }, { + "value": 331126, + "label": "庆元县", + "isLeaf": true + }, { + "value": 331127, + "label": "景宁畲族自治县", + "isLeaf": true + }, { + "value": 331181, + "label": "龙泉市", + "isLeaf": true + }] + }] +}, { + "value": 340000, + "label": "安徽省", + "children": [{ + "value": 340100, + "label": "合肥市", + "children": [{ + "value": 340102, + "label": "瑶海区", + "isLeaf": true + }, { + "value": 340103, + "label": "庐阳区", + "isLeaf": true + }, { + "value": 340104, + "label": "蜀山区", + "isLeaf": true + }, { + "value": 340111, + "label": "包河区", + "isLeaf": true + }, { + "value": 340121, + "label": "长丰县", + "isLeaf": true + }, { + "value": 340122, + "label": "肥东县", + "isLeaf": true + }, { + "value": 340123, + "label": "肥西县", + "isLeaf": true + }, { + "value": 340124, + "label": "庐江县", + "isLeaf": true + }, { + "value": 340181, + "label": "巢湖市", + "isLeaf": true + }] + }, { + "value": 340200, + "label": "芜湖市", + "children": [{ + "value": 340202, + "label": "镜湖区", + "isLeaf": true + }, { + "value": 340203, + "label": "弋江区", + "isLeaf": true + }, { + "value": 340207, + "label": "鸠江区", + "isLeaf": true + }, { + "value": 340208, + "label": "三山区", + "isLeaf": true + }, { + "value": 340221, + "label": "芜湖县", + "isLeaf": true + }, { + "value": 340222, + "label": "繁昌县", + "isLeaf": true + }, { + "value": 340223, + "label": "南陵县", + "isLeaf": true + }, { + "value": 340225, + "label": "无为县", + "isLeaf": true + }] + }, { + "value": 340300, + "label": "蚌埠市", + "children": [{ + "value": 340302, + "label": "龙子湖区", + "isLeaf": true + }, { + "value": 340303, + "label": "蚌山区", + "isLeaf": true + }, { + "value": 340304, + "label": "禹会区", + "isLeaf": true + }, { + "value": 340311, + "label": "淮上区", + "isLeaf": true + }, { + "value": 340321, + "label": "怀远县", + "isLeaf": true + }, { + "value": 340322, + "label": "五河县", + "isLeaf": true + }, { + "value": 340323, + "label": "固镇县", + "isLeaf": true + }] + }, { + "value": 340400, + "label": "淮南市", + "children": [{ + "value": 340402, + "label": "大通区", + "isLeaf": true + }, { + "value": 340403, + "label": "田家庵区", + "isLeaf": true + }, { + "value": 340404, + "label": "谢家集区", + "isLeaf": true + }, { + "value": 340405, + "label": "八公山区", + "isLeaf": true + }, { + "value": 340406, + "label": "潘集区", + "isLeaf": true + }, { + "value": 340421, + "label": "凤台县", + "isLeaf": true + }, { + "value": 340422, + "label": "寿县", + "isLeaf": true + }] + }, { + "value": 340500, + "label": "马鞍山市", + "children": [{ + "value": 340503, + "label": "花山区", + "isLeaf": true + }, { + "value": 340504, + "label": "雨山区", + "isLeaf": true + }, { + "value": 340506, + "label": "博望区", + "isLeaf": true + }, { + "value": 340521, + "label": "当涂县", + "isLeaf": true + }, { + "value": 340522, + "label": "含山县", + "isLeaf": true + }, { + "value": 340523, + "label": "和县", + "isLeaf": true + }] + }, { + "value": 340600, + "label": "淮北市", + "children": [{ + "value": 340602, + "label": "杜集区", + "isLeaf": true + }, { + "value": 340603, + "label": "相山区", + "isLeaf": true + }, { + "value": 340604, + "label": "烈山区", + "isLeaf": true + }, { + "value": 340621, + "label": "濉溪县", + "isLeaf": true + }] + }, { + "value": 340700, + "label": "铜陵市", + "children": [{ + "value": 340705, + "label": "铜官区", + "isLeaf": true + }, { + "value": 340706, + "label": "义安区", + "isLeaf": true + }, { + "value": 340711, + "label": "郊区", + "isLeaf": true + }, { + "value": 340722, + "label": "枞阳县", + "isLeaf": true + }] + }, { + "value": 340800, + "label": "安庆市", + "children": [{ + "value": 340802, + "label": "迎江区", + "isLeaf": true + }, { + "value": 340803, + "label": "大观区", + "isLeaf": true + }, { + "value": 340811, + "label": "宜秀区", + "isLeaf": true + }, { + "value": 340822, + "label": "怀宁县", + "isLeaf": true + }, { + "value": 340824, + "label": "潜山县", + "isLeaf": true + }, { + "value": 340825, + "label": "太湖县", + "isLeaf": true + }, { + "value": 340826, + "label": "宿松县", + "isLeaf": true + }, { + "value": 340827, + "label": "望江县", + "isLeaf": true + }, { + "value": 340828, + "label": "岳西县", + "isLeaf": true + }, { + "value": 340881, + "label": "桐城市", + "isLeaf": true + }] + }, { + "value": 341000, + "label": "黄山市", + "children": [{ + "value": 341002, + "label": "屯溪区", + "isLeaf": true + }, { + "value": 341003, + "label": "黄山区", + "isLeaf": true + }, { + "value": 341004, + "label": "徽州区", + "isLeaf": true + }, { + "value": 341021, + "label": "歙县", + "isLeaf": true + }, { + "value": 341022, + "label": "休宁县", + "isLeaf": true + }, { + "value": 341023, + "label": "黟县", + "isLeaf": true + }, { + "value": 341024, + "label": "祁门县", + "isLeaf": true + }] + }, { + "value": 341100, + "label": "滁州市", + "children": [{ + "value": 341102, + "label": "琅琊区", + "isLeaf": true + }, { + "value": 341103, + "label": "南谯区", + "isLeaf": true + }, { + "value": 341122, + "label": "来安县", + "isLeaf": true + }, { + "value": 341124, + "label": "全椒县", + "isLeaf": true + }, { + "value": 341125, + "label": "定远县", + "isLeaf": true + }, { + "value": 341126, + "label": "凤阳县", + "isLeaf": true + }, { + "value": 341181, + "label": "天长市", + "isLeaf": true + }, { + "value": 341182, + "label": "明光市", + "isLeaf": true + }] + }, { + "value": 341200, + "label": "阜阳市", + "children": [{ + "value": 341202, + "label": "颍州区", + "isLeaf": true + }, { + "value": 341203, + "label": "颍东区", + "isLeaf": true + }, { + "value": 341204, + "label": "颍泉区", + "isLeaf": true + }, { + "value": 341221, + "label": "临泉县", + "isLeaf": true + }, { + "value": 341222, + "label": "太和县", + "isLeaf": true + }, { + "value": 341225, + "label": "阜南县", + "isLeaf": true + }, { + "value": 341226, + "label": "颍上县", + "isLeaf": true + }, { + "value": 341282, + "label": "界首市", + "isLeaf": true + }] + }, { + "value": 341300, + "label": "宿州市", + "children": [{ + "value": 341302, + "label": "埇桥区", + "isLeaf": true + }, { + "value": 341321, + "label": "砀山县", + "isLeaf": true + }, { + "value": 341322, + "label": "萧县", + "isLeaf": true + }, { + "value": 341323, + "label": "灵璧县", + "isLeaf": true + }, { + "value": 341324, + "label": "泗县", + "isLeaf": true + }] + }, { + "value": 341500, + "label": "六安市", + "children": [{ + "value": 341502, + "label": "金安区", + "isLeaf": true + }, { + "value": 341503, + "label": "裕安区", + "isLeaf": true + }, { + "value": 341504, + "label": "叶集区", + "isLeaf": true + }, { + "value": 341522, + "label": "霍邱县", + "isLeaf": true + }, { + "value": 341523, + "label": "舒城县", + "isLeaf": true + }, { + "value": 341524, + "label": "金寨县", + "isLeaf": true + }, { + "value": 341525, + "label": "霍山县", + "isLeaf": true + }] + }, { + "value": 341600, + "label": "亳州市", + "children": [{ + "value": 341602, + "label": "谯城区", + "isLeaf": true + }, { + "value": 341621, + "label": "涡阳县", + "isLeaf": true + }, { + "value": 341622, + "label": "蒙城县", + "isLeaf": true + }, { + "value": 341623, + "label": "利辛县", + "isLeaf": true + }] + }, { + "value": 341700, + "label": "池州市", + "children": [{ + "value": 341702, + "label": "贵池区", + "isLeaf": true + }, { + "value": 341721, + "label": "东至县", + "isLeaf": true + }, { + "value": 341722, + "label": "石台县", + "isLeaf": true + }, { + "value": 341723, + "label": "青阳县", + "isLeaf": true + }] + }, { + "value": 341800, + "label": "宣城市", + "children": [{ + "value": 341802, + "label": "宣州区", + "isLeaf": true + }, { + "value": 341821, + "label": "郎溪县", + "isLeaf": true + }, { + "value": 341822, + "label": "广德县", + "isLeaf": true + }, { + "value": 341823, + "label": "泾县", + "isLeaf": true + }, { + "value": 341824, + "label": "绩溪县", + "isLeaf": true + }, { + "value": 341825, + "label": "旌德县", + "isLeaf": true + }, { + "value": 341881, + "label": "宁国市", + "isLeaf": true + }] + }] +}, { + "value": 350000, + "label": "福建省", + "children": [{ + "value": 350100, + "label": "福州市", + "children": [{ + "value": 350102, + "label": "鼓楼区", + "isLeaf": true + }, { + "value": 350103, + "label": "台江区", + "isLeaf": true + }, { + "value": 350104, + "label": "仓山区", + "isLeaf": true + }, { + "value": 350105, + "label": "马尾区", + "isLeaf": true + }, { + "value": 350111, + "label": "晋安区", + "isLeaf": true + }, { + "value": 350121, + "label": "闽侯县", + "isLeaf": true + }, { + "value": 350122, + "label": "连江县", + "isLeaf": true + }, { + "value": 350123, + "label": "罗源县", + "isLeaf": true + }, { + "value": 350124, + "label": "闽清县", + "isLeaf": true + }, { + "value": 350125, + "label": "永泰县", + "isLeaf": true + }, { + "value": 350128, + "label": "平潭县", + "isLeaf": true + }, { + "value": 350181, + "label": "福清市", + "isLeaf": true + }, { + "value": 350182, + "label": "长乐市", + "isLeaf": true + }] + }, { + "value": 350200, + "label": "厦门市", + "children": [{ + "value": 350203, + "label": "思明区", + "isLeaf": true + }, { + "value": 350205, + "label": "海沧区", + "isLeaf": true + }, { + "value": 350206, + "label": "湖里区", + "isLeaf": true + }, { + "value": 350211, + "label": "集美区", + "isLeaf": true + }, { + "value": 350212, + "label": "同安区", + "isLeaf": true + }, { + "value": 350213, + "label": "翔安区", + "isLeaf": true + }] + }, { + "value": 350300, + "label": "莆田市", + "children": [{ + "value": 350302, + "label": "城厢区", + "isLeaf": true + }, { + "value": 350303, + "label": "涵江区", + "isLeaf": true + }, { + "value": 350304, + "label": "荔城区", + "isLeaf": true + }, { + "value": 350305, + "label": "秀屿区", + "isLeaf": true + }, { + "value": 350322, + "label": "仙游县", + "isLeaf": true + }] + }, { + "value": 350400, + "label": "三明市", + "children": [{ + "value": 350402, + "label": "梅列区", + "isLeaf": true + }, { + "value": 350403, + "label": "三元区", + "isLeaf": true + }, { + "value": 350421, + "label": "明溪县", + "isLeaf": true + }, { + "value": 350423, + "label": "清流县", + "isLeaf": true + }, { + "value": 350424, + "label": "宁化县", + "isLeaf": true + }, { + "value": 350425, + "label": "大田县", + "isLeaf": true + }, { + "value": 350426, + "label": "尤溪县", + "isLeaf": true + }, { + "value": 350427, + "label": "沙县", + "isLeaf": true + }, { + "value": 350428, + "label": "将乐县", + "isLeaf": true + }, { + "value": 350429, + "label": "泰宁县", + "isLeaf": true + }, { + "value": 350430, + "label": "建宁县", + "isLeaf": true + }, { + "value": 350481, + "label": "永安市", + "isLeaf": true + }] + }, { + "value": 350500, + "label": "泉州市", + "children": [{ + "value": 350502, + "label": "鲤城区", + "isLeaf": true + }, { + "value": 350503, + "label": "丰泽区", + "isLeaf": true + }, { + "value": 350504, + "label": "洛江区", + "isLeaf": true + }, { + "value": 350505, + "label": "泉港区", + "isLeaf": true + }, { + "value": 350521, + "label": "惠安县", + "isLeaf": true + }, { + "value": 350524, + "label": "安溪县", + "isLeaf": true + }, { + "value": 350525, + "label": "永春县", + "isLeaf": true + }, { + "value": 350526, + "label": "德化县", + "isLeaf": true + }, { + "value": 350527, + "label": "金门县", + "isLeaf": true + }, { + "value": 350581, + "label": "石狮市", + "isLeaf": true + }, { + "value": 350582, + "label": "晋江市", + "isLeaf": true + }, { + "value": 350583, + "label": "南安市", + "isLeaf": true + }] + }, { + "value": 350600, + "label": "漳州市", + "children": [{ + "value": 350602, + "label": "芗城区", + "isLeaf": true + }, { + "value": 350603, + "label": "龙文区", + "isLeaf": true + }, { + "value": 350622, + "label": "云霄县", + "isLeaf": true + }, { + "value": 350623, + "label": "漳浦县", + "isLeaf": true + }, { + "value": 350624, + "label": "诏安县", + "isLeaf": true + }, { + "value": 350625, + "label": "长泰县", + "isLeaf": true + }, { + "value": 350626, + "label": "东山县", + "isLeaf": true + }, { + "value": 350627, + "label": "南靖县", + "isLeaf": true + }, { + "value": 350628, + "label": "平和县", + "isLeaf": true + }, { + "value": 350629, + "label": "华安县", + "isLeaf": true + }, { + "value": 350681, + "label": "龙海市", + "isLeaf": true + }] + }, { + "value": 350700, + "label": "南平市", + "children": [{ + "value": 350702, + "label": "延平区", + "isLeaf": true + }, { + "value": 350703, + "label": "建阳区", + "isLeaf": true + }, { + "value": 350721, + "label": "顺昌县", + "isLeaf": true + }, { + "value": 350722, + "label": "浦城县", + "isLeaf": true + }, { + "value": 350723, + "label": "光泽县", + "isLeaf": true + }, { + "value": 350724, + "label": "松溪县", + "isLeaf": true + }, { + "value": 350725, + "label": "政和县", + "isLeaf": true + }, { + "value": 350781, + "label": "邵武市", + "isLeaf": true + }, { + "value": 350782, + "label": "武夷山市", + "isLeaf": true + }, { + "value": 350783, + "label": "建瓯市", + "isLeaf": true + }] + }, { + "value": 350800, + "label": "龙岩市", + "children": [{ + "value": 350802, + "label": "新罗区", + "isLeaf": true + }, { + "value": 350803, + "label": "永定区", + "isLeaf": true + }, { + "value": 350821, + "label": "长汀县", + "isLeaf": true + }, { + "value": 350823, + "label": "上杭县", + "isLeaf": true + }, { + "value": 350824, + "label": "武平县", + "isLeaf": true + }, { + "value": 350825, + "label": "连城县", + "isLeaf": true + }, { + "value": 350881, + "label": "漳平市", + "isLeaf": true + }] + }, { + "value": 350900, + "label": "宁德市", + "children": [{ + "value": 350902, + "label": "蕉城区", + "isLeaf": true + }, { + "value": 350921, + "label": "霞浦县", + "isLeaf": true + }, { + "value": 350922, + "label": "古田县", + "isLeaf": true + }, { + "value": 350923, + "label": "屏南县", + "isLeaf": true + }, { + "value": 350924, + "label": "寿宁县", + "isLeaf": true + }, { + "value": 350925, + "label": "周宁县", + "isLeaf": true + }, { + "value": 350926, + "label": "柘荣县", + "isLeaf": true + }, { + "value": 350981, + "label": "福安市", + "isLeaf": true + }, { + "value": 350982, + "label": "福鼎市", + "isLeaf": true + }] + }] +}, { + "value": 360000, + "label": "江西省", + "children": [{ + "value": 360100, + "label": "南昌市", + "children": [{ + "value": 360102, + "label": "东湖区", + "isLeaf": true + }, { + "value": 360103, + "label": "西湖区", + "isLeaf": true + }, { + "value": 360104, + "label": "青云谱区", + "isLeaf": true + }, { + "value": 360105, + "label": "湾里区", + "isLeaf": true + }, { + "value": 360111, + "label": "青山湖区", + "isLeaf": true + }, { + "value": 360112, + "label": "新建区", + "isLeaf": true + }, { + "value": 360121, + "label": "南昌县", + "isLeaf": true + }, { + "value": 360123, + "label": "安义县", + "isLeaf": true + }, { + "value": 360124, + "label": "进贤县", + "isLeaf": true + }] + }, { + "value": 360200, + "label": "景德镇市", + "children": [{ + "value": 360202, + "label": "昌江区", + "isLeaf": true + }, { + "value": 360203, + "label": "珠山区", + "isLeaf": true + }, { + "value": 360222, + "label": "浮梁县", + "isLeaf": true + }, { + "value": 360281, + "label": "乐平市", + "isLeaf": true + }] + }, { + "value": 360300, + "label": "萍乡市", + "children": [{ + "value": 360302, + "label": "安源区", + "isLeaf": true + }, { + "value": 360313, + "label": "湘东区", + "isLeaf": true + }, { + "value": 360321, + "label": "莲花县", + "isLeaf": true + }, { + "value": 360322, + "label": "上栗县", + "isLeaf": true + }, { + "value": 360323, + "label": "芦溪县", + "isLeaf": true + }] + }, { + "value": 360400, + "label": "九江市", + "children": [{ + "value": 360402, + "label": "濂溪区", + "isLeaf": true + }, { + "value": 360403, + "label": "浔阳区", + "isLeaf": true + }, { + "value": 360421, + "label": "九江县", + "isLeaf": true + }, { + "value": 360423, + "label": "武宁县", + "isLeaf": true + }, { + "value": 360424, + "label": "修水县", + "isLeaf": true + }, { + "value": 360425, + "label": "永修县", + "isLeaf": true + }, { + "value": 360426, + "label": "德安县", + "isLeaf": true + }, { + "value": 360428, + "label": "都昌县", + "isLeaf": true + }, { + "value": 360429, + "label": "湖口县", + "isLeaf": true + }, { + "value": 360430, + "label": "彭泽县", + "isLeaf": true + }, { + "value": 360481, + "label": "瑞昌市", + "isLeaf": true + }, { + "value": 360482, + "label": "共青城市", + "isLeaf": true + }, { + "value": 360483, + "label": "庐山市", + "isLeaf": true + }] + }, { + "value": 360500, + "label": "新余市", + "children": [{ + "value": 360502, + "label": "渝水区", + "isLeaf": true + }, { + "value": 360521, + "label": "分宜县", + "isLeaf": true + }] + }, { + "value": 360600, + "label": "鹰潭市", + "children": [{ + "value": 360602, + "label": "月湖区", + "isLeaf": true + }, { + "value": 360622, + "label": "余江县", + "isLeaf": true + }, { + "value": 360681, + "label": "贵溪市", + "isLeaf": true + }] + }, { + "value": 360700, + "label": "赣州市", + "children": [{ + "value": 360702, + "label": "章贡区", + "isLeaf": true + }, { + "value": 360703, + "label": "南康区", + "isLeaf": true + }, { + "value": 360721, + "label": "赣县", + "isLeaf": true + }, { + "value": 360722, + "label": "信丰县", + "isLeaf": true + }, { + "value": 360723, + "label": "大余县", + "isLeaf": true + }, { + "value": 360724, + "label": "上犹县", + "isLeaf": true + }, { + "value": 360725, + "label": "崇义县", + "isLeaf": true + }, { + "value": 360726, + "label": "安远县", + "isLeaf": true + }, { + "value": 360727, + "label": "龙南县", + "isLeaf": true + }, { + "value": 360728, + "label": "定南县", + "isLeaf": true + }, { + "value": 360729, + "label": "全南县", + "isLeaf": true + }, { + "value": 360730, + "label": "宁都县", + "isLeaf": true + }, { + "value": 360731, + "label": "于都县", + "isLeaf": true + }, { + "value": 360732, + "label": "兴国县", + "isLeaf": true + }, { + "value": 360733, + "label": "会昌县", + "isLeaf": true + }, { + "value": 360734, + "label": "寻乌县", + "isLeaf": true + }, { + "value": 360735, + "label": "石城县", + "isLeaf": true + }, { + "value": 360781, + "label": "瑞金市", + "isLeaf": true + }] + }, { + "value": 360800, + "label": "吉安市", + "children": [{ + "value": 360802, + "label": "吉州区", + "isLeaf": true + }, { + "value": 360803, + "label": "青原区", + "isLeaf": true + }, { + "value": 360821, + "label": "吉安县", + "isLeaf": true + }, { + "value": 360822, + "label": "吉水县", + "isLeaf": true + }, { + "value": 360823, + "label": "峡江县", + "isLeaf": true + }, { + "value": 360824, + "label": "新干县", + "isLeaf": true + }, { + "value": 360825, + "label": "永丰县", + "isLeaf": true + }, { + "value": 360826, + "label": "泰和县", + "isLeaf": true + }, { + "value": 360827, + "label": "遂川县", + "isLeaf": true + }, { + "value": 360828, + "label": "万安县", + "isLeaf": true + }, { + "value": 360829, + "label": "安福县", + "isLeaf": true + }, { + "value": 360830, + "label": "永新县", + "isLeaf": true + }, { + "value": 360881, + "label": "井冈山市", + "isLeaf": true + }] + }, { + "value": 360900, + "label": "宜春市", + "children": [{ + "value": 360902, + "label": "袁州区", + "isLeaf": true + }, { + "value": 360921, + "label": "奉新县", + "isLeaf": true + }, { + "value": 360922, + "label": "万载县", + "isLeaf": true + }, { + "value": 360923, + "label": "上高县", + "isLeaf": true + }, { + "value": 360924, + "label": "宜丰县", + "isLeaf": true + }, { + "value": 360925, + "label": "靖安县", + "isLeaf": true + }, { + "value": 360926, + "label": "铜鼓县", + "isLeaf": true + }, { + "value": 360981, + "label": "丰城市", + "isLeaf": true + }, { + "value": 360982, + "label": "樟树市", + "isLeaf": true + }, { + "value": 360983, + "label": "高安市", + "isLeaf": true + }] + }, { + "value": 361000, + "label": "抚州市", + "children": [{ + "value": 361002, + "label": "临川区", + "isLeaf": true + }, { + "value": 361021, + "label": "南城县", + "isLeaf": true + }, { + "value": 361022, + "label": "黎川县", + "isLeaf": true + }, { + "value": 361023, + "label": "南丰县", + "isLeaf": true + }, { + "value": 361024, + "label": "崇仁县", + "isLeaf": true + }, { + "value": 361025, + "label": "乐安县", + "isLeaf": true + }, { + "value": 361026, + "label": "宜黄县", + "isLeaf": true + }, { + "value": 361027, + "label": "金溪县", + "isLeaf": true + }, { + "value": 361028, + "label": "资溪县", + "isLeaf": true + }, { + "value": 361029, + "label": "东乡县", + "isLeaf": true + }, { + "value": 361030, + "label": "广昌县", + "isLeaf": true + }] + }, { + "value": 361100, + "label": "上饶市", + "children": [{ + "value": 361102, + "label": "信州区", + "isLeaf": true + }, { + "value": 361103, + "label": "广丰区", + "isLeaf": true + }, { + "value": 361121, + "label": "上饶县", + "isLeaf": true + }, { + "value": 361123, + "label": "玉山县", + "isLeaf": true + }, { + "value": 361124, + "label": "铅山县", + "isLeaf": true + }, { + "value": 361125, + "label": "横峰县", + "isLeaf": true + }, { + "value": 361126, + "label": "弋阳县", + "isLeaf": true + }, { + "value": 361127, + "label": "余干县", + "isLeaf": true + }, { + "value": 361128, + "label": "鄱阳县", + "isLeaf": true + }, { + "value": 361129, + "label": "万年县", + "isLeaf": true + }, { + "value": 361130, + "label": "婺源县", + "isLeaf": true + }, { + "value": 361181, + "label": "德兴市", + "isLeaf": true + }] + }] +}, { + "value": 370000, + "label": "山东省", + "children": [{ + "value": 370100, + "label": "济南市", + "children": [{ + "value": 370102, + "label": "历下区", + "isLeaf": true + }, { + "value": 370103, + "label": "市中区", + "isLeaf": true + }, { + "value": 370104, + "label": "槐荫区", + "isLeaf": true + }, { + "value": 370105, + "label": "天桥区", + "isLeaf": true + }, { + "value": 370112, + "label": "历城区", + "isLeaf": true + }, { + "value": 370113, + "label": "长清区", + "isLeaf": true + }, { + "value": 370124, + "label": "平阴县", + "isLeaf": true + }, { + "value": 370125, + "label": "济阳县", + "isLeaf": true + }, { + "value": 370126, + "label": "商河县", + "isLeaf": true + }, { + "value": 370181, + "label": "章丘市", + "isLeaf": true + }] + }, { + "value": 370200, + "label": "青岛市", + "children": [{ + "value": 370202, + "label": "市南区", + "isLeaf": true + }, { + "value": 370203, + "label": "市北区", + "isLeaf": true + }, { + "value": 370211, + "label": "黄岛区", + "isLeaf": true + }, { + "value": 370212, + "label": "崂山区", + "isLeaf": true + }, { + "value": 370213, + "label": "李沧区", + "isLeaf": true + }, { + "value": 370214, + "label": "城阳区", + "isLeaf": true + }, { + "value": 370281, + "label": "胶州市", + "isLeaf": true + }, { + "value": 370282, + "label": "即墨市", + "isLeaf": true + }, { + "value": 370283, + "label": "平度市", + "isLeaf": true + }, { + "value": 370285, + "label": "莱西市", + "isLeaf": true + }] + }, { + "value": 370300, + "label": "淄博市", + "children": [{ + "value": 370302, + "label": "淄川区", + "isLeaf": true + }, { + "value": 370303, + "label": "张店区", + "isLeaf": true + }, { + "value": 370304, + "label": "博山区", + "isLeaf": true + }, { + "value": 370305, + "label": "临淄区", + "isLeaf": true + }, { + "value": 370306, + "label": "周村区", + "isLeaf": true + }, { + "value": 370321, + "label": "桓台县", + "isLeaf": true + }, { + "value": 370322, + "label": "高青县", + "isLeaf": true + }, { + "value": 370323, + "label": "沂源县", + "isLeaf": true + }] + }, { + "value": 370400, + "label": "枣庄市", + "children": [{ + "value": 370402, + "label": "市中区", + "isLeaf": true + }, { + "value": 370403, + "label": "薛城区", + "isLeaf": true + }, { + "value": 370404, + "label": "峄城区", + "isLeaf": true + }, { + "value": 370405, + "label": "台儿庄区", + "isLeaf": true + }, { + "value": 370406, + "label": "山亭区", + "isLeaf": true + }, { + "value": 370481, + "label": "滕州市", + "isLeaf": true + }] + }, { + "value": 370500, + "label": "东营市", + "children": [{ + "value": 370502, + "label": "东营区", + "isLeaf": true + }, { + "value": 370503, + "label": "河口区", + "isLeaf": true + }, { + "value": 370505, + "label": "垦利区", + "isLeaf": true + }, { + "value": 370522, + "label": "利津县", + "isLeaf": true + }, { + "value": 370523, + "label": "广饶县", + "isLeaf": true + }] + }, { + "value": 370600, + "label": "烟台市", + "children": [{ + "value": 370602, + "label": "芝罘区", + "isLeaf": true + }, { + "value": 370611, + "label": "福山区", + "isLeaf": true + }, { + "value": 370612, + "label": "牟平区", + "isLeaf": true + }, { + "value": 370613, + "label": "莱山区", + "isLeaf": true + }, { + "value": 370634, + "label": "长岛县", + "isLeaf": true + }, { + "value": 370681, + "label": "龙口市", + "isLeaf": true + }, { + "value": 370682, + "label": "莱阳市", + "isLeaf": true + }, { + "value": 370683, + "label": "莱州市", + "isLeaf": true + }, { + "value": 370684, + "label": "蓬莱市", + "isLeaf": true + }, { + "value": 370685, + "label": "招远市", + "isLeaf": true + }, { + "value": 370686, + "label": "栖霞市", + "isLeaf": true + }, { + "value": 370687, + "label": "海阳市", + "isLeaf": true + }] + }, { + "value": 370700, + "label": "潍坊市", + "children": [{ + "value": 370702, + "label": "潍城区", + "isLeaf": true + }, { + "value": 370703, + "label": "寒亭区", + "isLeaf": true + }, { + "value": 370704, + "label": "坊子区", + "isLeaf": true + }, { + "value": 370705, + "label": "奎文区", + "isLeaf": true + }, { + "value": 370724, + "label": "临朐县", + "isLeaf": true + }, { + "value": 370725, + "label": "昌乐县", + "isLeaf": true + }, { + "value": 370781, + "label": "青州市", + "isLeaf": true + }, { + "value": 370782, + "label": "诸城市", + "isLeaf": true + }, { + "value": 370783, + "label": "寿光市", + "isLeaf": true + }, { + "value": 370784, + "label": "安丘市", + "isLeaf": true + }, { + "value": 370785, + "label": "高密市", + "isLeaf": true + }, { + "value": 370786, + "label": "昌邑市", + "isLeaf": true + }] + }, { + "value": 370800, + "label": "济宁市", + "children": [{ + "value": 370811, + "label": "任城区", + "isLeaf": true + }, { + "value": 370812, + "label": "兖州区", + "isLeaf": true + }, { + "value": 370826, + "label": "微山县", + "isLeaf": true + }, { + "value": 370827, + "label": "鱼台县", + "isLeaf": true + }, { + "value": 370828, + "label": "金乡县", + "isLeaf": true + }, { + "value": 370829, + "label": "嘉祥县", + "isLeaf": true + }, { + "value": 370830, + "label": "汶上县", + "isLeaf": true + }, { + "value": 370831, + "label": "泗水县", + "isLeaf": true + }, { + "value": 370832, + "label": "梁山县", + "isLeaf": true + }, { + "value": 370881, + "label": "曲阜市", + "isLeaf": true + }, { + "value": 370883, + "label": "邹城市", + "isLeaf": true + }] + }, { + "value": 370900, + "label": "泰安市", + "children": [{ + "value": 370902, + "label": "泰山区", + "isLeaf": true + }, { + "value": 370911, + "label": "岱岳区", + "isLeaf": true + }, { + "value": 370921, + "label": "宁阳县", + "isLeaf": true + }, { + "value": 370923, + "label": "东平县", + "isLeaf": true + }, { + "value": 370982, + "label": "新泰市", + "isLeaf": true + }, { + "value": 370983, + "label": "肥城市", + "isLeaf": true + }] + }, { + "value": 371000, + "label": "威海市", + "children": [{ + "value": 371002, + "label": "环翠区", + "isLeaf": true + }, { + "value": 371003, + "label": "文登区", + "isLeaf": true + }, { + "value": 371082, + "label": "荣成市", + "isLeaf": true + }, { + "value": 371083, + "label": "乳山市", + "isLeaf": true + }] + }, { + "value": 371100, + "label": "日照市", + "children": [{ + "value": 371102, + "label": "东港区", + "isLeaf": true + }, { + "value": 371103, + "label": "岚山区", + "isLeaf": true + }, { + "value": 371121, + "label": "五莲县", + "isLeaf": true + }, { + "value": 371122, + "label": "莒县", + "isLeaf": true + }] + }, { + "value": 371200, + "label": "莱芜市", + "children": [{ + "value": 371202, + "label": "莱城区", + "isLeaf": true + }, { + "value": 371203, + "label": "钢城区", + "isLeaf": true + }] + }, { + "value": 371300, + "label": "临沂市", + "children": [{ + "value": 371302, + "label": "兰山区", + "isLeaf": true + }, { + "value": 371311, + "label": "罗庄区", + "isLeaf": true + }, { + "value": 371312, + "label": "河东区", + "isLeaf": true + }, { + "value": 371321, + "label": "沂南县", + "isLeaf": true + }, { + "value": 371322, + "label": "郯城县", + "isLeaf": true + }, { + "value": 371323, + "label": "沂水县", + "isLeaf": true + }, { + "value": 371324, + "label": "兰陵县", + "isLeaf": true + }, { + "value": 371325, + "label": "费县", + "isLeaf": true + }, { + "value": 371326, + "label": "平邑县", + "isLeaf": true + }, { + "value": 371327, + "label": "莒南县", + "isLeaf": true + }, { + "value": 371328, + "label": "蒙阴县", + "isLeaf": true + }, { + "value": 371329, + "label": "临沭县", + "isLeaf": true + }] + }, { + "value": 371400, + "label": "德州市", + "children": [{ + "value": 371402, + "label": "德城区", + "isLeaf": true + }, { + "value": 371403, + "label": "陵城区", + "isLeaf": true + }, { + "value": 371422, + "label": "宁津县", + "isLeaf": true + }, { + "value": 371423, + "label": "庆云县", + "isLeaf": true + }, { + "value": 371424, + "label": "临邑县", + "isLeaf": true + }, { + "value": 371425, + "label": "齐河县", + "isLeaf": true + }, { + "value": 371426, + "label": "平原县", + "isLeaf": true + }, { + "value": 371427, + "label": "夏津县", + "isLeaf": true + }, { + "value": 371428, + "label": "武城县", + "isLeaf": true + }, { + "value": 371481, + "label": "乐陵市", + "isLeaf": true + }, { + "value": 371482, + "label": "禹城市", + "isLeaf": true + }] + }, { + "value": 371500, + "label": "聊城市", + "children": [{ + "value": 371502, + "label": "东昌府区", + "isLeaf": true + }, { + "value": 371521, + "label": "阳谷县", + "isLeaf": true + }, { + "value": 371522, + "label": "莘县", + "isLeaf": true + }, { + "value": 371523, + "label": "茌平县", + "isLeaf": true + }, { + "value": 371524, + "label": "东阿县", + "isLeaf": true + }, { + "value": 371525, + "label": "冠县", + "isLeaf": true + }, { + "value": 371526, + "label": "高唐县", + "isLeaf": true + }, { + "value": 371581, + "label": "临清市", + "isLeaf": true + }] + }, { + "value": 371600, + "label": "滨州市", + "children": [{ + "value": 371602, + "label": "滨城区", + "isLeaf": true + }, { + "value": 371603, + "label": "沾化区", + "isLeaf": true + }, { + "value": 371621, + "label": "惠民县", + "isLeaf": true + }, { + "value": 371622, + "label": "阳信县", + "isLeaf": true + }, { + "value": 371623, + "label": "无棣县", + "isLeaf": true + }, { + "value": 371625, + "label": "博兴县", + "isLeaf": true + }, { + "value": 371626, + "label": "邹平县", + "isLeaf": true + }] + }, { + "value": 371700, + "label": "菏泽市", + "children": [{ + "value": 371702, + "label": "牡丹区", + "isLeaf": true + }, { + "value": 371703, + "label": "定陶区", + "isLeaf": true + }, { + "value": 371721, + "label": "曹县", + "isLeaf": true + }, { + "value": 371722, + "label": "单县", + "isLeaf": true + }, { + "value": 371723, + "label": "成武县", + "isLeaf": true + }, { + "value": 371724, + "label": "巨野县", + "isLeaf": true + }, { + "value": 371725, + "label": "郓城县", + "isLeaf": true + }, { + "value": 371726, + "label": "鄄城县", + "isLeaf": true + }, { + "value": 371728, + "label": "东明县", + "isLeaf": true + }] + }] +}, { + "value": 410000, + "label": "河南省", + "children": [{ + "value": 410100, + "label": "郑州市", + "children": [{ + "value": 410102, + "label": "中原区", + "isLeaf": true + }, { + "value": 410103, + "label": "二七区", + "isLeaf": true + }, { + "value": 410104, + "label": "管城回族区", + "isLeaf": true + }, { + "value": 410105, + "label": "金水区", + "isLeaf": true + }, { + "value": 410106, + "label": "上街区", + "isLeaf": true + }, { + "value": 410108, + "label": "惠济区", + "isLeaf": true + }, { + "value": 410122, + "label": "中牟县", + "isLeaf": true + }, { + "value": 410181, + "label": "巩义市", + "isLeaf": true + }, { + "value": 410182, + "label": "荥阳市", + "isLeaf": true + }, { + "value": 410183, + "label": "新密市", + "isLeaf": true + }, { + "value": 410184, + "label": "新郑市", + "isLeaf": true + }, { + "value": 410185, + "label": "登封市", + "isLeaf": true + }] + }, { + "value": 410200, + "label": "开封市", + "children": [{ + "value": 410202, + "label": "龙亭区", + "isLeaf": true + }, { + "value": 410203, + "label": "顺河回族区", + "isLeaf": true + }, { + "value": 410204, + "label": "鼓楼区", + "isLeaf": true + }, { + "value": 410205, + "label": "禹王台区", + "isLeaf": true + }, { + "value": 410211, + "label": "金明区", + "isLeaf": true + }, { + "value": 410212, + "label": "祥符区", + "isLeaf": true + }, { + "value": 410221, + "label": "杞县", + "isLeaf": true + }, { + "value": 410222, + "label": "通许县", + "isLeaf": true + }, { + "value": 410223, + "label": "尉氏县", + "isLeaf": true + }, { + "value": 410225, + "label": "兰考县", + "isLeaf": true + }] + }, { + "value": 410300, + "label": "洛阳市", + "children": [{ + "value": 410302, + "label": "老城区", + "isLeaf": true + }, { + "value": 410303, + "label": "西工区", + "isLeaf": true + }, { + "value": 410304, + "label": "瀍河回族区", + "isLeaf": true + }, { + "value": 410305, + "label": "涧西区", + "isLeaf": true + }, { + "value": 410306, + "label": "吉利区", + "isLeaf": true + }, { + "value": 410311, + "label": "洛龙区", + "isLeaf": true + }, { + "value": 410322, + "label": "孟津县", + "isLeaf": true + }, { + "value": 410323, + "label": "新安县", + "isLeaf": true + }, { + "value": 410324, + "label": "栾川县", + "isLeaf": true + }, { + "value": 410325, + "label": "嵩县", + "isLeaf": true + }, { + "value": 410326, + "label": "汝阳县", + "isLeaf": true + }, { + "value": 410327, + "label": "宜阳县", + "isLeaf": true + }, { + "value": 410328, + "label": "洛宁县", + "isLeaf": true + }, { + "value": 410329, + "label": "伊川县", + "isLeaf": true + }, { + "value": 410381, + "label": "偃师市", + "isLeaf": true + }] + }, { + "value": 410400, + "label": "平顶山市", + "children": [{ + "value": 410402, + "label": "新华区", + "isLeaf": true + }, { + "value": 410403, + "label": "卫东区", + "isLeaf": true + }, { + "value": 410404, + "label": "石龙区", + "isLeaf": true + }, { + "value": 410411, + "label": "湛河区", + "isLeaf": true + }, { + "value": 410421, + "label": "宝丰县", + "isLeaf": true + }, { + "value": 410422, + "label": "叶县", + "isLeaf": true + }, { + "value": 410423, + "label": "鲁山县", + "isLeaf": true + }, { + "value": 410425, + "label": "郏县", + "isLeaf": true + }, { + "value": 410481, + "label": "舞钢市", + "isLeaf": true + }, { + "value": 410482, + "label": "汝州市", + "isLeaf": true + }] + }, { + "value": 410500, + "label": "安阳市", + "children": [{ + "value": 410502, + "label": "文峰区", + "isLeaf": true + }, { + "value": 410503, + "label": "北关区", + "isLeaf": true + }, { + "value": 410505, + "label": "殷都区", + "isLeaf": true + }, { + "value": 410506, + "label": "龙安区", + "isLeaf": true + }, { + "value": 410522, + "label": "安阳县", + "isLeaf": true + }, { + "value": 410523, + "label": "汤阴县", + "isLeaf": true + }, { + "value": 410526, + "label": "滑县", + "isLeaf": true + }, { + "value": 410527, + "label": "内黄县", + "isLeaf": true + }, { + "value": 410581, + "label": "林州市", + "isLeaf": true + }] + }, { + "value": 410600, + "label": "鹤壁市", + "children": [{ + "value": 410602, + "label": "鹤山区", + "isLeaf": true + }, { + "value": 410603, + "label": "山城区", + "isLeaf": true + }, { + "value": 410611, + "label": "淇滨区", + "isLeaf": true + }, { + "value": 410621, + "label": "浚县", + "isLeaf": true + }, { + "value": 410622, + "label": "淇县", + "isLeaf": true + }] + }, { + "value": 410700, + "label": "新乡市", + "children": [{ + "value": 410702, + "label": "红旗区", + "isLeaf": true + }, { + "value": 410703, + "label": "卫滨区", + "isLeaf": true + }, { + "value": 410704, + "label": "凤泉区", + "isLeaf": true + }, { + "value": 410711, + "label": "牧野区", + "isLeaf": true + }, { + "value": 410721, + "label": "新乡县", + "isLeaf": true + }, { + "value": 410724, + "label": "获嘉县", + "isLeaf": true + }, { + "value": 410725, + "label": "原阳县", + "isLeaf": true + }, { + "value": 410726, + "label": "延津县", + "isLeaf": true + }, { + "value": 410727, + "label": "封丘县", + "isLeaf": true + }, { + "value": 410728, + "label": "长垣县", + "isLeaf": true + }, { + "value": 410781, + "label": "卫辉市", + "isLeaf": true + }, { + "value": 410782, + "label": "辉县市", + "isLeaf": true + }] + }, { + "value": 410800, + "label": "焦作市", + "children": [{ + "value": 410802, + "label": "解放区", + "isLeaf": true + }, { + "value": 410803, + "label": "中站区", + "isLeaf": true + }, { + "value": 410804, + "label": "马村区", + "isLeaf": true + }, { + "value": 410811, + "label": "山阳区", + "isLeaf": true + }, { + "value": 410821, + "label": "修武县", + "isLeaf": true + }, { + "value": 410822, + "label": "博爱县", + "isLeaf": true + }, { + "value": 410823, + "label": "武陟县", + "isLeaf": true + }, { + "value": 410825, + "label": "温县", + "isLeaf": true + }, { + "value": 410882, + "label": "沁阳市", + "isLeaf": true + }, { + "value": 410883, + "label": "孟州市", + "isLeaf": true + }] + }, { + "value": 410900, + "label": "濮阳市", + "children": [{ + "value": 410902, + "label": "华龙区", + "isLeaf": true + }, { + "value": 410922, + "label": "清丰县", + "isLeaf": true + }, { + "value": 410923, + "label": "南乐县", + "isLeaf": true + }, { + "value": 410926, + "label": "范县", + "isLeaf": true + }, { + "value": 410927, + "label": "台前县", + "isLeaf": true + }, { + "value": 410928, + "label": "濮阳县", + "isLeaf": true + }] + }, { + "value": 411000, + "label": "许昌市", + "children": [{ + "value": 411002, + "label": "魏都区", + "isLeaf": true + }, { + "value": 411023, + "label": "许昌县", + "isLeaf": true + }, { + "value": 411024, + "label": "鄢陵县", + "isLeaf": true + }, { + "value": 411025, + "label": "襄城县", + "isLeaf": true + }, { + "value": 411081, + "label": "禹州市", + "isLeaf": true + }, { + "value": 411082, + "label": "长葛市", + "isLeaf": true + }] + }, { + "value": 411100, + "label": "漯河市", + "children": [{ + "value": 411102, + "label": "源汇区", + "isLeaf": true + }, { + "value": 411103, + "label": "郾城区", + "isLeaf": true + }, { + "value": 411104, + "label": "召陵区", + "isLeaf": true + }, { + "value": 411121, + "label": "舞阳县", + "isLeaf": true + }, { + "value": 411122, + "label": "临颍县", + "isLeaf": true + }] + }, { + "value": 411200, + "label": "三门峡市", + "children": [{ + "value": 411202, + "label": "湖滨区", + "isLeaf": true + }, { + "value": 411203, + "label": "陕州区", + "isLeaf": true + }, { + "value": 411221, + "label": "渑池县", + "isLeaf": true + }, { + "value": 411224, + "label": "卢氏县", + "isLeaf": true + }, { + "value": 411281, + "label": "义马市", + "isLeaf": true + }, { + "value": 411282, + "label": "灵宝市", + "isLeaf": true + }] + }, { + "value": 411300, + "label": "南阳市", + "children": [{ + "value": 411302, + "label": "宛城区", + "isLeaf": true + }, { + "value": 411303, + "label": "卧龙区", + "isLeaf": true + }, { + "value": 411321, + "label": "南召县", + "isLeaf": true + }, { + "value": 411322, + "label": "方城县", + "isLeaf": true + }, { + "value": 411323, + "label": "西峡县", + "isLeaf": true + }, { + "value": 411324, + "label": "镇平县", + "isLeaf": true + }, { + "value": 411325, + "label": "内乡县", + "isLeaf": true + }, { + "value": 411326, + "label": "淅川县", + "isLeaf": true + }, { + "value": 411327, + "label": "社旗县", + "isLeaf": true + }, { + "value": 411328, + "label": "唐河县", + "isLeaf": true + }, { + "value": 411329, + "label": "新野县", + "isLeaf": true + }, { + "value": 411330, + "label": "桐柏县", + "isLeaf": true + }, { + "value": 411381, + "label": "邓州市", + "isLeaf": true + }] + }, { + "value": 411400, + "label": "商丘市", + "children": [{ + "value": 411402, + "label": "梁园区", + "isLeaf": true + }, { + "value": 411403, + "label": "睢阳区", + "isLeaf": true + }, { + "value": 411421, + "label": "民权县", + "isLeaf": true + }, { + "value": 411422, + "label": "睢县", + "isLeaf": true + }, { + "value": 411423, + "label": "宁陵县", + "isLeaf": true + }, { + "value": 411424, + "label": "柘城县", + "isLeaf": true + }, { + "value": 411425, + "label": "虞城县", + "isLeaf": true + }, { + "value": 411426, + "label": "夏邑县", + "isLeaf": true + }, { + "value": 411481, + "label": "永城市", + "isLeaf": true + }] + }, { + "value": 411500, + "label": "信阳市", + "children": [{ + "value": 411502, + "label": "浉河区", + "isLeaf": true + }, { + "value": 411503, + "label": "平桥区", + "isLeaf": true + }, { + "value": 411521, + "label": "罗山县", + "isLeaf": true + }, { + "value": 411522, + "label": "光山县", + "isLeaf": true + }, { + "value": 411523, + "label": "新县", + "isLeaf": true + }, { + "value": 411524, + "label": "商城县", + "isLeaf": true + }, { + "value": 411525, + "label": "固始县", + "isLeaf": true + }, { + "value": 411526, + "label": "潢川县", + "isLeaf": true + }, { + "value": 411527, + "label": "淮滨县", + "isLeaf": true + }, { + "value": 411528, + "label": "息县", + "isLeaf": true + }] + }, { + "value": 411600, + "label": "周口市", + "children": [{ + "value": 411602, + "label": "川汇区", + "isLeaf": true + }, { + "value": 411621, + "label": "扶沟县", + "isLeaf": true + }, { + "value": 411622, + "label": "西华县", + "isLeaf": true + }, { + "value": 411623, + "label": "商水县", + "isLeaf": true + }, { + "value": 411624, + "label": "沈丘县", + "isLeaf": true + }, { + "value": 411625, + "label": "郸城县", + "isLeaf": true + }, { + "value": 411626, + "label": "淮阳县", + "isLeaf": true + }, { + "value": 411627, + "label": "太康县", + "isLeaf": true + }, { + "value": 411628, + "label": "鹿邑县", + "isLeaf": true + }, { + "value": 411681, + "label": "项城市", + "isLeaf": true + }] + }, { + "value": 411700, + "label": "驻马店市", + "children": [{ + "value": 411702, + "label": "驿城区", + "isLeaf": true + }, { + "value": 411721, + "label": "西平县", + "isLeaf": true + }, { + "value": 411722, + "label": "上蔡县", + "isLeaf": true + }, { + "value": 411723, + "label": "平舆县", + "isLeaf": true + }, { + "value": 411724, + "label": "正阳县", + "isLeaf": true + }, { + "value": 411725, + "label": "确山县", + "isLeaf": true + }, { + "value": 411726, + "label": "泌阳县", + "isLeaf": true + }, { + "value": 411727, + "label": "汝南县", + "isLeaf": true + }, { + "value": 411728, + "label": "遂平县", + "isLeaf": true + }, { + "value": 411729, + "label": "新蔡县", + "isLeaf": true + }] + }, { + "value": 419000, + "label": "省直辖县级行政区划", + "children": [{ + "value": 419001, + "label": "济源市", + "isLeaf": true + }] + }] +}, { + "value": 420000, + "label": "湖北省", + "children": [{ + "value": 420100, + "label": "武汉市", + "children": [{ + "value": 420102, + "label": "江岸区", + "isLeaf": true + }, { + "value": 420103, + "label": "江汉区", + "isLeaf": true + }, { + "value": 420104, + "label": "硚口区", + "isLeaf": true + }, { + "value": 420105, + "label": "汉阳区", + "isLeaf": true + }, { + "value": 420106, + "label": "武昌区", + "isLeaf": true + }, { + "value": 420107, + "label": "青山区", + "isLeaf": true + }, { + "value": 420111, + "label": "洪山区", + "isLeaf": true + }, { + "value": 420112, + "label": "东西湖区", + "isLeaf": true + }, { + "value": 420113, + "label": "汉南区", + "isLeaf": true + }, { + "value": 420114, + "label": "蔡甸区", + "isLeaf": true + }, { + "value": 420115, + "label": "江夏区", + "isLeaf": true + }, { + "value": 420116, + "label": "黄陂区", + "isLeaf": true + }, { + "value": 420117, + "label": "新洲区", + "isLeaf": true + }] + }, { + "value": 420200, + "label": "黄石市", + "children": [{ + "value": 420202, + "label": "黄石港区", + "isLeaf": true + }, { + "value": 420203, + "label": "西塞山区", + "isLeaf": true + }, { + "value": 420204, + "label": "下陆区", + "isLeaf": true + }, { + "value": 420205, + "label": "铁山区", + "isLeaf": true + }, { + "value": 420222, + "label": "阳新县", + "isLeaf": true + }, { + "value": 420281, + "label": "大冶市", + "isLeaf": true + }] + }, { + "value": 420300, + "label": "十堰市", + "children": [{ + "value": 420302, + "label": "茅箭区", + "isLeaf": true + }, { + "value": 420303, + "label": "张湾区", + "isLeaf": true + }, { + "value": 420304, + "label": "郧阳区", + "isLeaf": true + }, { + "value": 420322, + "label": "郧西县", + "isLeaf": true + }, { + "value": 420323, + "label": "竹山县", + "isLeaf": true + }, { + "value": 420324, + "label": "竹溪县", + "isLeaf": true + }, { + "value": 420325, + "label": "房县", + "isLeaf": true + }, { + "value": 420381, + "label": "丹江口市", + "isLeaf": true + }] + }, { + "value": 420500, + "label": "宜昌市", + "children": [{ + "value": 420502, + "label": "西陵区", + "isLeaf": true + }, { + "value": 420503, + "label": "伍家岗区", + "isLeaf": true + }, { + "value": 420504, + "label": "点军区", + "isLeaf": true + }, { + "value": 420505, + "label": "猇亭区", + "isLeaf": true + }, { + "value": 420506, + "label": "夷陵区", + "isLeaf": true + }, { + "value": 420525, + "label": "远安县", + "isLeaf": true + }, { + "value": 420526, + "label": "兴山县", + "isLeaf": true + }, { + "value": 420527, + "label": "秭归县", + "isLeaf": true + }, { + "value": 420528, + "label": "长阳土家族自治县", + "isLeaf": true + }, { + "value": 420529, + "label": "五峰土家族自治县", + "isLeaf": true + }, { + "value": 420581, + "label": "宜都市", + "isLeaf": true + }, { + "value": 420582, + "label": "当阳市", + "isLeaf": true + }, { + "value": 420583, + "label": "枝江市", + "isLeaf": true + }] + }, { + "value": 420600, + "label": "襄阳市", + "children": [{ + "value": 420602, + "label": "襄城区", + "isLeaf": true + }, { + "value": 420606, + "label": "樊城区", + "isLeaf": true + }, { + "value": 420607, + "label": "襄州区", + "isLeaf": true + }, { + "value": 420624, + "label": "南漳县", + "isLeaf": true + }, { + "value": 420625, + "label": "谷城县", + "isLeaf": true + }, { + "value": 420626, + "label": "保康县", + "isLeaf": true + }, { + "value": 420682, + "label": "老河口市", + "isLeaf": true + }, { + "value": 420683, + "label": "枣阳市", + "isLeaf": true + }, { + "value": 420684, + "label": "宜城市", + "isLeaf": true + }] + }, { + "value": 420700, + "label": "鄂州市", + "children": [{ + "value": 420702, + "label": "梁子湖区", + "isLeaf": true + }, { + "value": 420703, + "label": "华容区", + "isLeaf": true + }, { + "value": 420704, + "label": "鄂城区", + "isLeaf": true + }] + }, { + "value": 420800, + "label": "荆门市", + "children": [{ + "value": 420802, + "label": "东宝区", + "isLeaf": true + }, { + "value": 420804, + "label": "掇刀区", + "isLeaf": true + }, { + "value": 420821, + "label": "京山县", + "isLeaf": true + }, { + "value": 420822, + "label": "沙洋县", + "isLeaf": true + }, { + "value": 420881, + "label": "钟祥市", + "isLeaf": true + }] + }, { + "value": 420900, + "label": "孝感市", + "children": [{ + "value": 420902, + "label": "孝南区", + "isLeaf": true + }, { + "value": 420921, + "label": "孝昌县", + "isLeaf": true + }, { + "value": 420922, + "label": "大悟县", + "isLeaf": true + }, { + "value": 420923, + "label": "云梦县", + "isLeaf": true + }, { + "value": 420981, + "label": "应城市", + "isLeaf": true + }, { + "value": 420982, + "label": "安陆市", + "isLeaf": true + }, { + "value": 420984, + "label": "汉川市", + "isLeaf": true + }] + }, { + "value": 421000, + "label": "荆州市", + "children": [{ + "value": 421002, + "label": "沙市区", + "isLeaf": true + }, { + "value": 421003, + "label": "荆州区", + "isLeaf": true + }, { + "value": 421022, + "label": "公安县", + "isLeaf": true + }, { + "value": 421023, + "label": "监利县", + "isLeaf": true + }, { + "value": 421024, + "label": "江陵县", + "isLeaf": true + }, { + "value": 421081, + "label": "石首市", + "isLeaf": true + }, { + "value": 421083, + "label": "洪湖市", + "isLeaf": true + }, { + "value": 421087, + "label": "松滋市", + "isLeaf": true + }] + }, { + "value": 421100, + "label": "黄冈市", + "children": [{ + "value": 421102, + "label": "黄州区", + "isLeaf": true + }, { + "value": 421121, + "label": "团风县", + "isLeaf": true + }, { + "value": 421122, + "label": "红安县", + "isLeaf": true + }, { + "value": 421123, + "label": "罗田县", + "isLeaf": true + }, { + "value": 421124, + "label": "英山县", + "isLeaf": true + }, { + "value": 421125, + "label": "浠水县", + "isLeaf": true + }, { + "value": 421126, + "label": "蕲春县", + "isLeaf": true + }, { + "value": 421127, + "label": "黄梅县", + "isLeaf": true + }, { + "value": 421181, + "label": "麻城市", + "isLeaf": true + }, { + "value": 421182, + "label": "武穴市", + "isLeaf": true + }] + }, { + "value": 421200, + "label": "咸宁市", + "children": [{ + "value": 421202, + "label": "咸安区", + "isLeaf": true + }, { + "value": 421221, + "label": "嘉鱼县", + "isLeaf": true + }, { + "value": 421222, + "label": "通城县", + "isLeaf": true + }, { + "value": 421223, + "label": "崇阳县", + "isLeaf": true + }, { + "value": 421224, + "label": "通山县", + "isLeaf": true + }, { + "value": 421281, + "label": "赤壁市", + "isLeaf": true + }] + }, { + "value": 421300, + "label": "随州市", + "children": [{ + "value": 421303, + "label": "曾都区", + "isLeaf": true + }, { + "value": 421321, + "label": "随县", + "isLeaf": true + }, { + "value": 421381, + "label": "广水市", + "isLeaf": true + }] + }, { + "value": 422800, + "label": "恩施土家族苗族自治州", + "children": [{ + "value": 422801, + "label": "恩施市", + "isLeaf": true + }, { + "value": 422802, + "label": "利川市", + "isLeaf": true + }, { + "value": 422822, + "label": "建始县", + "isLeaf": true + }, { + "value": 422823, + "label": "巴东县", + "isLeaf": true + }, { + "value": 422825, + "label": "宣恩县", + "isLeaf": true + }, { + "value": 422826, + "label": "咸丰县", + "isLeaf": true + }, { + "value": 422827, + "label": "来凤县", + "isLeaf": true + }, { + "value": 422828, + "label": "鹤峰县", + "isLeaf": true + }] + }, { + "value": 429000, + "label": "省直辖县级行政区划", + "children": [{ + "value": 429004, + "label": "仙桃市", + "isLeaf": true + }, { + "value": 429005, + "label": "潜江市", + "isLeaf": true + }, { + "value": 429006, + "label": "天门市", + "isLeaf": true + }, { + "value": 429021, + "label": "神农架林区", + "isLeaf": true + }] + }] +}, { + "value": 430000, + "label": "湖南省", + "children": [{ + "value": 430100, + "label": "长沙市", + "children": [{ + "value": 430102, + "label": "芙蓉区", + "isLeaf": true + }, { + "value": 430103, + "label": "天心区", + "isLeaf": true + }, { + "value": 430104, + "label": "岳麓区", + "isLeaf": true + }, { + "value": 430105, + "label": "开福区", + "isLeaf": true + }, { + "value": 430111, + "label": "雨花区", + "isLeaf": true + }, { + "value": 430112, + "label": "望城区", + "isLeaf": true + }, { + "value": 430121, + "label": "长沙县", + "isLeaf": true + }, { + "value": 430124, + "label": "宁乡县", + "isLeaf": true + }, { + "value": 430181, + "label": "浏阳市", + "isLeaf": true + }] + }, { + "value": 430200, + "label": "株洲市", + "children": [{ + "value": 430202, + "label": "荷塘区", + "isLeaf": true + }, { + "value": 430203, + "label": "芦淞区", + "isLeaf": true + }, { + "value": 430204, + "label": "石峰区", + "isLeaf": true + }, { + "value": 430211, + "label": "天元区", + "isLeaf": true + }, { + "value": 430221, + "label": "株洲县", + "isLeaf": true + }, { + "value": 430223, + "label": "攸县", + "isLeaf": true + }, { + "value": 430224, + "label": "茶陵县", + "isLeaf": true + }, { + "value": 430225, + "label": "炎陵县", + "isLeaf": true + }, { + "value": 430281, + "label": "醴陵市", + "isLeaf": true + }] + }, { + "value": 430300, + "label": "湘潭市", + "children": [{ + "value": 430302, + "label": "雨湖区", + "isLeaf": true + }, { + "value": 430304, + "label": "岳塘区", + "isLeaf": true + }, { + "value": 430321, + "label": "湘潭县", + "isLeaf": true + }, { + "value": 430381, + "label": "湘乡市", + "isLeaf": true + }, { + "value": 430382, + "label": "韶山市", + "isLeaf": true + }] + }, { + "value": 430400, + "label": "衡阳市", + "children": [{ + "value": 430405, + "label": "珠晖区", + "isLeaf": true + }, { + "value": 430406, + "label": "雁峰区", + "isLeaf": true + }, { + "value": 430407, + "label": "石鼓区", + "isLeaf": true + }, { + "value": 430408, + "label": "蒸湘区", + "isLeaf": true + }, { + "value": 430412, + "label": "南岳区", + "isLeaf": true + }, { + "value": 430421, + "label": "衡阳县", + "isLeaf": true + }, { + "value": 430422, + "label": "衡南县", + "isLeaf": true + }, { + "value": 430423, + "label": "衡山县", + "isLeaf": true + }, { + "value": 430424, + "label": "衡东县", + "isLeaf": true + }, { + "value": 430426, + "label": "祁东县", + "isLeaf": true + }, { + "value": 430481, + "label": "耒阳市", + "isLeaf": true + }, { + "value": 430482, + "label": "常宁市", + "isLeaf": true + }] + }, { + "value": 430500, + "label": "邵阳市", + "children": [{ + "value": 430502, + "label": "双清区", + "isLeaf": true + }, { + "value": 430503, + "label": "大祥区", + "isLeaf": true + }, { + "value": 430511, + "label": "北塔区", + "isLeaf": true + }, { + "value": 430521, + "label": "邵东县", + "isLeaf": true + }, { + "value": 430522, + "label": "新邵县", + "isLeaf": true + }, { + "value": 430523, + "label": "邵阳县", + "isLeaf": true + }, { + "value": 430524, + "label": "隆回县", + "isLeaf": true + }, { + "value": 430525, + "label": "洞口县", + "isLeaf": true + }, { + "value": 430527, + "label": "绥宁县", + "isLeaf": true + }, { + "value": 430528, + "label": "新宁县", + "isLeaf": true + }, { + "value": 430529, + "label": "城步苗族自治县", + "isLeaf": true + }, { + "value": 430581, + "label": "武冈市", + "isLeaf": true + }] + }, { + "value": 430600, + "label": "岳阳市", + "children": [{ + "value": 430602, + "label": "岳阳楼区", + "isLeaf": true + }, { + "value": 430603, + "label": "云溪区", + "isLeaf": true + }, { + "value": 430611, + "label": "君山区", + "isLeaf": true + }, { + "value": 430621, + "label": "岳阳县", + "isLeaf": true + }, { + "value": 430623, + "label": "华容县", + "isLeaf": true + }, { + "value": 430624, + "label": "湘阴县", + "isLeaf": true + }, { + "value": 430626, + "label": "平江县", + "isLeaf": true + }, { + "value": 430681, + "label": "汨罗市", + "isLeaf": true + }, { + "value": 430682, + "label": "临湘市", + "isLeaf": true + }] + }, { + "value": 430700, + "label": "常德市", + "children": [{ + "value": 430702, + "label": "武陵区", + "isLeaf": true + }, { + "value": 430703, + "label": "鼎城区", + "isLeaf": true + }, { + "value": 430721, + "label": "安乡县", + "isLeaf": true + }, { + "value": 430722, + "label": "汉寿县", + "isLeaf": true + }, { + "value": 430723, + "label": "澧县", + "isLeaf": true + }, { + "value": 430724, + "label": "临澧县", + "isLeaf": true + }, { + "value": 430725, + "label": "桃源县", + "isLeaf": true + }, { + "value": 430726, + "label": "石门县", + "isLeaf": true + }, { + "value": 430781, + "label": "津市市", + "isLeaf": true + }] + }, { + "value": 430800, + "label": "张家界市", + "children": [{ + "value": 430802, + "label": "永定区", + "isLeaf": true + }, { + "value": 430811, + "label": "武陵源区", + "isLeaf": true + }, { + "value": 430821, + "label": "慈利县", + "isLeaf": true + }, { + "value": 430822, + "label": "桑植县", + "isLeaf": true + }] + }, { + "value": 430900, + "label": "益阳市", + "children": [{ + "value": 430902, + "label": "资阳区", + "isLeaf": true + }, { + "value": 430903, + "label": "赫山区", + "isLeaf": true + }, { + "value": 430921, + "label": "南县", + "isLeaf": true + }, { + "value": 430922, + "label": "桃江县", + "isLeaf": true + }, { + "value": 430923, + "label": "安化县", + "isLeaf": true + }, { + "value": 430981, + "label": "沅江市", + "isLeaf": true + }] + }, { + "value": 431000, + "label": "郴州市", + "children": [{ + "value": 431002, + "label": "北湖区", + "isLeaf": true + }, { + "value": 431003, + "label": "苏仙区", + "isLeaf": true + }, { + "value": 431021, + "label": "桂阳县", + "isLeaf": true + }, { + "value": 431022, + "label": "宜章县", + "isLeaf": true + }, { + "value": 431023, + "label": "永兴县", + "isLeaf": true + }, { + "value": 431024, + "label": "嘉禾县", + "isLeaf": true + }, { + "value": 431025, + "label": "临武县", + "isLeaf": true + }, { + "value": 431026, + "label": "汝城县", + "isLeaf": true + }, { + "value": 431027, + "label": "桂东县", + "isLeaf": true + }, { + "value": 431028, + "label": "安仁县", + "isLeaf": true + }, { + "value": 431081, + "label": "资兴市", + "isLeaf": true + }] + }, { + "value": 431100, + "label": "永州市", + "children": [{ + "value": 431102, + "label": "零陵区", + "isLeaf": true + }, { + "value": 431103, + "label": "冷水滩区", + "isLeaf": true + }, { + "value": 431121, + "label": "祁阳县", + "isLeaf": true + }, { + "value": 431122, + "label": "东安县", + "isLeaf": true + }, { + "value": 431123, + "label": "双牌县", + "isLeaf": true + }, { + "value": 431124, + "label": "道县", + "isLeaf": true + }, { + "value": 431125, + "label": "江永县", + "isLeaf": true + }, { + "value": 431126, + "label": "宁远县", + "isLeaf": true + }, { + "value": 431127, + "label": "蓝山县", + "isLeaf": true + }, { + "value": 431128, + "label": "新田县", + "isLeaf": true + }, { + "value": 431129, + "label": "江华瑶族自治县", + "isLeaf": true + }] + }, { + "value": 431200, + "label": "怀化市", + "children": [{ + "value": 431202, + "label": "鹤城区", + "isLeaf": true + }, { + "value": 431221, + "label": "中方县", + "isLeaf": true + }, { + "value": 431222, + "label": "沅陵县", + "isLeaf": true + }, { + "value": 431223, + "label": "辰溪县", + "isLeaf": true + }, { + "value": 431224, + "label": "溆浦县", + "isLeaf": true + }, { + "value": 431225, + "label": "会同县", + "isLeaf": true + }, { + "value": 431226, + "label": "麻阳苗族自治县", + "isLeaf": true + }, { + "value": 431227, + "label": "新晃侗族自治县", + "isLeaf": true + }, { + "value": 431228, + "label": "芷江侗族自治县", + "isLeaf": true + }, { + "value": 431229, + "label": "靖州苗族侗族自治县", + "isLeaf": true + }, { + "value": 431230, + "label": "通道侗族自治县", + "isLeaf": true + }, { + "value": 431281, + "label": "洪江市", + "isLeaf": true + }] + }, { + "value": 431300, + "label": "娄底市", + "children": [{ + "value": 431302, + "label": "娄星区", + "isLeaf": true + }, { + "value": 431321, + "label": "双峰县", + "isLeaf": true + }, { + "value": 431322, + "label": "新化县", + "isLeaf": true + }, { + "value": 431381, + "label": "冷水江市", + "isLeaf": true + }, { + "value": 431382, + "label": "涟源市", + "isLeaf": true + }] + }, { + "value": 433100, + "label": "湘西土家族苗族自治州", + "children": [{ + "value": 433101, + "label": "吉首市", + "isLeaf": true + }, { + "value": 433122, + "label": "泸溪县", + "isLeaf": true + }, { + "value": 433123, + "label": "凤凰县", + "isLeaf": true + }, { + "value": 433124, + "label": "花垣县", + "isLeaf": true + }, { + "value": 433125, + "label": "保靖县", + "isLeaf": true + }, { + "value": 433126, + "label": "古丈县", + "isLeaf": true + }, { + "value": 433127, + "label": "永顺县", + "isLeaf": true + }, { + "value": 433130, + "label": "龙山县", + "isLeaf": true + }] + }] +}, { + "value": 440000, + "label": "广东省", + "children": [{ + "value": 440100, + "label": "广州市", + "children": [{ + "value": 440103, + "label": "荔湾区", + "isLeaf": true + }, { + "value": 440104, + "label": "越秀区", + "isLeaf": true + }, { + "value": 440105, + "label": "海珠区", + "isLeaf": true + }, { + "value": 440106, + "label": "天河区", + "isLeaf": true + }, { + "value": 440111, + "label": "白云区", + "isLeaf": true + }, { + "value": 440112, + "label": "黄埔区", + "isLeaf": true + }, { + "value": 440113, + "label": "番禺区", + "isLeaf": true + }, { + "value": 440114, + "label": "花都区", + "isLeaf": true + }, { + "value": 440115, + "label": "南沙区", + "isLeaf": true + }, { + "value": 440117, + "label": "从化区", + "isLeaf": true + }, { + "value": 440118, + "label": "增城区", + "isLeaf": true + }] + }, { + "value": 440200, + "label": "韶关市", + "children": [{ + "value": 440203, + "label": "武江区", + "isLeaf": true + }, { + "value": 440204, + "label": "浈江区", + "isLeaf": true + }, { + "value": 440205, + "label": "曲江区", + "isLeaf": true + }, { + "value": 440222, + "label": "始兴县", + "isLeaf": true + }, { + "value": 440224, + "label": "仁化县", + "isLeaf": true + }, { + "value": 440229, + "label": "翁源县", + "isLeaf": true + }, { + "value": 440232, + "label": "乳源瑶族自治县", + "isLeaf": true + }, { + "value": 440233, + "label": "新丰县", + "isLeaf": true + }, { + "value": 440281, + "label": "乐昌市", + "isLeaf": true + }, { + "value": 440282, + "label": "南雄市", + "isLeaf": true + }] + }, { + "value": 440300, + "label": "深圳市", + "children": [{ + "value": 440303, + "label": "罗湖区", + "isLeaf": true + }, { + "value": 440304, + "label": "福田区", + "isLeaf": true + }, { + "value": 440305, + "label": "南山区", + "isLeaf": true + }, { + "value": 440306, + "label": "宝安区", + "isLeaf": true + }, { + "value": 440307, + "label": "龙岗区", + "isLeaf": true + }, { + "value": 440308, + "label": "盐田区", + "isLeaf": true + }] + }, { + "value": 440400, + "label": "珠海市", + "children": [{ + "value": 440402, + "label": "香洲区", + "isLeaf": true + }, { + "value": 440403, + "label": "斗门区", + "isLeaf": true + }, { + "value": 440404, + "label": "金湾区", + "isLeaf": true + }] + }, { + "value": 440500, + "label": "汕头市", + "children": [{ + "value": 440507, + "label": "龙湖区", + "isLeaf": true + }, { + "value": 440511, + "label": "金平区", + "isLeaf": true + }, { + "value": 440512, + "label": "濠江区", + "isLeaf": true + }, { + "value": 440513, + "label": "潮阳区", + "isLeaf": true + }, { + "value": 440514, + "label": "潮南区", + "isLeaf": true + }, { + "value": 440515, + "label": "澄海区", + "isLeaf": true + }, { + "value": 440523, + "label": "南澳县", + "isLeaf": true + }] + }, { + "value": 440600, + "label": "佛山市", + "children": [{ + "value": 440604, + "label": "禅城区", + "isLeaf": true + }, { + "value": 440605, + "label": "南海区", + "isLeaf": true + }, { + "value": 440606, + "label": "顺德区", + "isLeaf": true + }, { + "value": 440607, + "label": "三水区", + "isLeaf": true + }, { + "value": 440608, + "label": "高明区", + "isLeaf": true + }] + }, { + "value": 440700, + "label": "江门市", + "children": [{ + "value": 440703, + "label": "蓬江区", + "isLeaf": true + }, { + "value": 440704, + "label": "江海区", + "isLeaf": true + }, { + "value": 440705, + "label": "新会区", + "isLeaf": true + }, { + "value": 440781, + "label": "台山市", + "isLeaf": true + }, { + "value": 440783, + "label": "开平市", + "isLeaf": true + }, { + "value": 440784, + "label": "鹤山市", + "isLeaf": true + }, { + "value": 440785, + "label": "恩平市", + "isLeaf": true + }] + }, { + "value": 440800, + "label": "湛江市", + "children": [{ + "value": 440802, + "label": "赤坎区", + "isLeaf": true + }, { + "value": 440803, + "label": "霞山区", + "isLeaf": true + }, { + "value": 440804, + "label": "坡头区", + "isLeaf": true + }, { + "value": 440811, + "label": "麻章区", + "isLeaf": true + }, { + "value": 440823, + "label": "遂溪县", + "isLeaf": true + }, { + "value": 440825, + "label": "徐闻县", + "isLeaf": true + }, { + "value": 440881, + "label": "廉江市", + "isLeaf": true + }, { + "value": 440882, + "label": "雷州市", + "isLeaf": true + }, { + "value": 440883, + "label": "吴川市", + "isLeaf": true + }] + }, { + "value": 440900, + "label": "茂名市", + "children": [{ + "value": 440902, + "label": "茂南区", + "isLeaf": true + }, { + "value": 440904, + "label": "电白区", + "isLeaf": true + }, { + "value": 440981, + "label": "高州市", + "isLeaf": true + }, { + "value": 440982, + "label": "化州市", + "isLeaf": true + }, { + "value": 440983, + "label": "信宜市", + "isLeaf": true + }] + }, { + "value": 441200, + "label": "肇庆市", + "children": [{ + "value": 441202, + "label": "端州区", + "isLeaf": true + }, { + "value": 441203, + "label": "鼎湖区", + "isLeaf": true + }, { + "value": 441204, + "label": "高要区", + "isLeaf": true + }, { + "value": 441223, + "label": "广宁县", + "isLeaf": true + }, { + "value": 441224, + "label": "怀集县", + "isLeaf": true + }, { + "value": 441225, + "label": "封开县", + "isLeaf": true + }, { + "value": 441226, + "label": "德庆县", + "isLeaf": true + }, { + "value": 441284, + "label": "四会市", + "isLeaf": true + }] + }, { + "value": 441300, + "label": "惠州市", + "children": [{ + "value": 441302, + "label": "惠城区", + "isLeaf": true + }, { + "value": 441303, + "label": "惠阳区", + "isLeaf": true + }, { + "value": 441322, + "label": "博罗县", + "isLeaf": true + }, { + "value": 441323, + "label": "惠东县", + "isLeaf": true + }, { + "value": 441324, + "label": "龙门县", + "isLeaf": true + }] + }, { + "value": 441400, + "label": "梅州市", + "children": [{ + "value": 441402, + "label": "梅江区", + "isLeaf": true + }, { + "value": 441403, + "label": "梅县区", + "isLeaf": true + }, { + "value": 441422, + "label": "大埔县", + "isLeaf": true + }, { + "value": 441423, + "label": "丰顺县", + "isLeaf": true + }, { + "value": 441424, + "label": "五华县", + "isLeaf": true + }, { + "value": 441426, + "label": "平远县", + "isLeaf": true + }, { + "value": 441427, + "label": "蕉岭县", + "isLeaf": true + }, { + "value": 441481, + "label": "兴宁市", + "isLeaf": true + }] + }, { + "value": 441500, + "label": "汕尾市", + "children": [{ + "value": 441502, + "label": "城区", + "isLeaf": true + }, { + "value": 441521, + "label": "海丰县", + "isLeaf": true + }, { + "value": 441523, + "label": "陆河县", + "isLeaf": true + }, { + "value": 441581, + "label": "陆丰市", + "isLeaf": true + }] + }, { + "value": 441600, + "label": "河源市", + "children": [{ + "value": 441602, + "label": "源城区", + "isLeaf": true + }, { + "value": 441621, + "label": "紫金县", + "isLeaf": true + }, { + "value": 441622, + "label": "龙川县", + "isLeaf": true + }, { + "value": 441623, + "label": "连平县", + "isLeaf": true + }, { + "value": 441624, + "label": "和平县", + "isLeaf": true + }, { + "value": 441625, + "label": "东源县", + "isLeaf": true + }] + }, { + "value": 441700, + "label": "阳江市", + "children": [{ + "value": 441702, + "label": "江城区", + "isLeaf": true + }, { + "value": 441704, + "label": "阳东区", + "isLeaf": true + }, { + "value": 441721, + "label": "阳西县", + "isLeaf": true + }, { + "value": 441781, + "label": "阳春市", + "isLeaf": true + }] + }, { + "value": 441800, + "label": "清远市", + "children": [{ + "value": 441802, + "label": "清城区", + "isLeaf": true + }, { + "value": 441803, + "label": "清新区", + "isLeaf": true + }, { + "value": 441821, + "label": "佛冈县", + "isLeaf": true + }, { + "value": 441823, + "label": "阳山县", + "isLeaf": true + }, { + "value": 441825, + "label": "连山壮族瑶族自治县", + "isLeaf": true + }, { + "value": 441826, + "label": "连南瑶族自治县", + "isLeaf": true + }, { + "value": 441881, + "label": "英德市", + "isLeaf": true + }, { + "value": 441882, + "label": "连州市", + "isLeaf": true + }] + }, { + "value": 441900, + "label": "东莞市", + "children": [{ + "value": 441900003, + "label": "东城街道办事处", + "isLeaf": true + }, { + "value": 441900004, + "label": "南城街道办事处", + "isLeaf": true + }, { + "value": 441900005, + "label": "万江街道办事处", + "isLeaf": true + }, { + "value": 441900006, + "label": "莞城街道办事处", + "isLeaf": true + }, { + "value": 441900101, + "label": "石碣镇", + "isLeaf": true + }, { + "value": 441900102, + "label": "石龙镇", + "isLeaf": true + }, { + "value": 441900103, + "label": "茶山镇", + "isLeaf": true + }, { + "value": 441900104, + "label": "石排镇", + "isLeaf": true + }, { + "value": 441900105, + "label": "企石镇", + "isLeaf": true + }, { + "value": 441900106, + "label": "横沥镇", + "isLeaf": true + }, { + "value": 441900107, + "label": "桥头镇", + "isLeaf": true + }, { + "value": 441900108, + "label": "谢岗镇", + "isLeaf": true + }, { + "value": 441900109, + "label": "东坑镇", + "isLeaf": true + }, { + "value": 441900110, + "label": "常平镇", + "isLeaf": true + }, { + "value": 441900111, + "label": "寮步镇", + "isLeaf": true + }, { + "value": 441900112, + "label": "樟木头镇", + "isLeaf": true + }, { + "value": 441900113, + "label": "大朗镇", + "isLeaf": true + }, { + "value": 441900114, + "label": "黄江镇", + "isLeaf": true + }, { + "value": 441900115, + "label": "清溪镇", + "isLeaf": true + }, { + "value": 441900116, + "label": "塘厦镇", + "isLeaf": true + }, { + "value": 441900117, + "label": "凤岗镇", + "isLeaf": true + }, { + "value": 441900118, + "label": "大岭山镇", + "isLeaf": true + }, { + "value": 441900119, + "label": "长安镇", + "isLeaf": true + }, { + "value": 441900121, + "label": "虎门镇", + "isLeaf": true + }, { + "value": 441900122, + "label": "厚街镇", + "isLeaf": true + }, { + "value": 441900123, + "label": "沙田镇", + "isLeaf": true + }, { + "value": 441900124, + "label": "道滘镇", + "isLeaf": true + }, { + "value": 441900125, + "label": "洪梅镇", + "isLeaf": true + }, { + "value": 441900126, + "label": "麻涌镇", + "isLeaf": true + }, { + "value": 441900127, + "label": "望牛墩镇", + "isLeaf": true + }, { + "value": 441900128, + "label": "中堂镇", + "isLeaf": true + }, { + "value": 441900129, + "label": "高埗镇", + "isLeaf": true + }, { + "value": 441900401, + "label": "松山湖管委会", + "isLeaf": true + }, { + "value": 441900402, + "label": "虎门港管委会", + "isLeaf": true + }, { + "value": 441900403, + "label": "东莞生态园", + "isLeaf": true + }] + }, { + "value": 442000, + "label": "中山市", + "children": [{ + "value": 442000001, + "label": "石岐区街道办事处", + "isLeaf": true + }, { + "value": 442000002, + "label": "东区街道办事处", + "isLeaf": true + }, { + "value": 442000003, + "label": "火炬开发区街道办事处", + "isLeaf": true + }, { + "value": 442000004, + "label": "西区街道办事处", + "isLeaf": true + }, { + "value": 442000005, + "label": "南区街道办事处", + "isLeaf": true + }, { + "value": 442000006, + "label": "五桂山街道办事处", + "isLeaf": true + }, { + "value": 442000100, + "label": "小榄镇", + "isLeaf": true + }, { + "value": 442000101, + "label": "黄圃镇", + "isLeaf": true + }, { + "value": 442000102, + "label": "民众镇", + "isLeaf": true + }, { + "value": 442000103, + "label": "东凤镇", + "isLeaf": true + }, { + "value": 442000104, + "label": "东升镇", + "isLeaf": true + }, { + "value": 442000105, + "label": "古镇镇", + "isLeaf": true + }, { + "value": 442000106, + "label": "沙溪镇", + "isLeaf": true + }, { + "value": 442000107, + "label": "坦洲镇", + "isLeaf": true + }, { + "value": 442000108, + "label": "港口镇", + "isLeaf": true + }, { + "value": 442000109, + "label": "三角镇", + "isLeaf": true + }, { + "value": 442000110, + "label": "横栏镇", + "isLeaf": true + }, { + "value": 442000111, + "label": "南头镇", + "isLeaf": true + }, { + "value": 442000112, + "label": "阜沙镇", + "isLeaf": true + }, { + "value": 442000113, + "label": "南朗镇", + "isLeaf": true + }, { + "value": 442000114, + "label": "三乡镇", + "isLeaf": true + }, { + "value": 442000115, + "label": "板芙镇", + "isLeaf": true + }, { + "value": 442000116, + "label": "大涌镇", + "isLeaf": true + }, { + "value": 442000117, + "label": "神湾镇", + "isLeaf": true + }] + }, { + "value": 445100, + "label": "潮州市", + "children": [{ + "value": 445102, + "label": "湘桥区", + "isLeaf": true + }, { + "value": 445103, + "label": "潮安区", + "isLeaf": true + }, { + "value": 445122, + "label": "饶平县", + "isLeaf": true + }] + }, { + "value": 445200, + "label": "揭阳市", + "children": [{ + "value": 445202, + "label": "榕城区", + "isLeaf": true + }, { + "value": 445203, + "label": "揭东区", + "isLeaf": true + }, { + "value": 445222, + "label": "揭西县", + "isLeaf": true + }, { + "value": 445224, + "label": "惠来县", + "isLeaf": true + }, { + "value": 445281, + "label": "普宁市", + "isLeaf": true + }] + }, { + "value": 445300, + "label": "云浮市", + "children": [{ + "value": 445302, + "label": "云城区", + "isLeaf": true + }, { + "value": 445303, + "label": "云安区", + "isLeaf": true + }, { + "value": 445321, + "label": "新兴县", + "isLeaf": true + }, { + "value": 445322, + "label": "郁南县", + "isLeaf": true + }, { + "value": 445381, + "label": "罗定市", + "isLeaf": true + }] + }] +}, { + "value": 450000, + "label": "广西壮族自治区", + "children": [{ + "value": 450100, + "label": "南宁市", + "children": [{ + "value": 450102, + "label": "兴宁区", + "isLeaf": true + }, { + "value": 450103, + "label": "青秀区", + "isLeaf": true + }, { + "value": 450105, + "label": "江南区", + "isLeaf": true + }, { + "value": 450107, + "label": "西乡塘区", + "isLeaf": true + }, { + "value": 450108, + "label": "良庆区", + "isLeaf": true + }, { + "value": 450109, + "label": "邕宁区", + "isLeaf": true + }, { + "value": 450110, + "label": "武鸣区", + "isLeaf": true + }, { + "value": 450123, + "label": "隆安县", + "isLeaf": true + }, { + "value": 450124, + "label": "马山县", + "isLeaf": true + }, { + "value": 450125, + "label": "上林县", + "isLeaf": true + }, { + "value": 450126, + "label": "宾阳县", + "isLeaf": true + }, { + "value": 450127, + "label": "横县", + "isLeaf": true + }] + }, { + "value": 450200, + "label": "柳州市", + "children": [{ + "value": 450202, + "label": "城中区", + "isLeaf": true + }, { + "value": 450203, + "label": "鱼峰区", + "isLeaf": true + }, { + "value": 450204, + "label": "柳南区", + "isLeaf": true + }, { + "value": 450205, + "label": "柳北区", + "isLeaf": true + }, { + "value": 450206, + "label": "柳江区", + "isLeaf": true + }, { + "value": 450222, + "label": "柳城县", + "isLeaf": true + }, { + "value": 450223, + "label": "鹿寨县", + "isLeaf": true + }, { + "value": 450224, + "label": "融安县", + "isLeaf": true + }, { + "value": 450225, + "label": "融水苗族自治县", + "isLeaf": true + }, { + "value": 450226, + "label": "三江侗族自治县", + "isLeaf": true + }] + }, { + "value": 450300, + "label": "桂林市", + "children": [{ + "value": 450302, + "label": "秀峰区", + "isLeaf": true + }, { + "value": 450303, + "label": "叠彩区", + "isLeaf": true + }, { + "value": 450304, + "label": "象山区", + "isLeaf": true + }, { + "value": 450305, + "label": "七星区", + "isLeaf": true + }, { + "value": 450311, + "label": "雁山区", + "isLeaf": true + }, { + "value": 450312, + "label": "临桂区", + "isLeaf": true + }, { + "value": 450321, + "label": "阳朔县", + "isLeaf": true + }, { + "value": 450323, + "label": "灵川县", + "isLeaf": true + }, { + "value": 450324, + "label": "全州县", + "isLeaf": true + }, { + "value": 450325, + "label": "兴安县", + "isLeaf": true + }, { + "value": 450326, + "label": "永福县", + "isLeaf": true + }, { + "value": 450327, + "label": "灌阳县", + "isLeaf": true + }, { + "value": 450328, + "label": "龙胜各族自治县", + "isLeaf": true + }, { + "value": 450329, + "label": "资源县", + "isLeaf": true + }, { + "value": 450330, + "label": "平乐县", + "isLeaf": true + }, { + "value": 450331, + "label": "荔浦县", + "isLeaf": true + }, { + "value": 450332, + "label": "恭城瑶族自治县", + "isLeaf": true + }] + }, { + "value": 450400, + "label": "梧州市", + "children": [{ + "value": 450403, + "label": "万秀区", + "isLeaf": true + }, { + "value": 450405, + "label": "长洲区", + "isLeaf": true + }, { + "value": 450406, + "label": "龙圩区", + "isLeaf": true + }, { + "value": 450421, + "label": "苍梧县", + "isLeaf": true + }, { + "value": 450422, + "label": "藤县", + "isLeaf": true + }, { + "value": 450423, + "label": "蒙山县", + "isLeaf": true + }, { + "value": 450481, + "label": "岑溪市", + "isLeaf": true + }] + }, { + "value": 450500, + "label": "北海市", + "children": [{ + "value": 450502, + "label": "海城区", + "isLeaf": true + }, { + "value": 450503, + "label": "银海区", + "isLeaf": true + }, { + "value": 450512, + "label": "铁山港区", + "isLeaf": true + }, { + "value": 450521, + "label": "合浦县", + "isLeaf": true + }] + }, { + "value": 450600, + "label": "防城港市", + "children": [{ + "value": 450602, + "label": "港口区", + "isLeaf": true + }, { + "value": 450603, + "label": "防城区", + "isLeaf": true + }, { + "value": 450621, + "label": "上思县", + "isLeaf": true + }, { + "value": 450681, + "label": "东兴市", + "isLeaf": true + }] + }, { + "value": 450700, + "label": "钦州市", + "children": [{ + "value": 450702, + "label": "钦南区", + "isLeaf": true + }, { + "value": 450703, + "label": "钦北区", + "isLeaf": true + }, { + "value": 450721, + "label": "灵山县", + "isLeaf": true + }, { + "value": 450722, + "label": "浦北县", + "isLeaf": true + }] + }, { + "value": 450800, + "label": "贵港市", + "children": [{ + "value": 450802, + "label": "港北区", + "isLeaf": true + }, { + "value": 450803, + "label": "港南区", + "isLeaf": true + }, { + "value": 450804, + "label": "覃塘区", + "isLeaf": true + }, { + "value": 450821, + "label": "平南县", + "isLeaf": true + }, { + "value": 450881, + "label": "桂平市", + "isLeaf": true + }] + }, { + "value": 450900, + "label": "玉林市", + "children": [{ + "value": 450902, + "label": "玉州区", + "isLeaf": true + }, { + "value": 450903, + "label": "福绵区", + "isLeaf": true + }, { + "value": 450921, + "label": "容县", + "isLeaf": true + }, { + "value": 450922, + "label": "陆川县", + "isLeaf": true + }, { + "value": 450923, + "label": "博白县", + "isLeaf": true + }, { + "value": 450924, + "label": "兴业县", + "isLeaf": true + }, { + "value": 450981, + "label": "北流市", + "isLeaf": true + }] + }, { + "value": 451000, + "label": "百色市", + "children": [{ + "value": 451002, + "label": "右江区", + "isLeaf": true + }, { + "value": 451021, + "label": "田阳县", + "isLeaf": true + }, { + "value": 451022, + "label": "田东县", + "isLeaf": true + }, { + "value": 451023, + "label": "平果县", + "isLeaf": true + }, { + "value": 451024, + "label": "德保县", + "isLeaf": true + }, { + "value": 451026, + "label": "那坡县", + "isLeaf": true + }, { + "value": 451027, + "label": "凌云县", + "isLeaf": true + }, { + "value": 451028, + "label": "乐业县", + "isLeaf": true + }, { + "value": 451029, + "label": "田林县", + "isLeaf": true + }, { + "value": 451030, + "label": "西林县", + "isLeaf": true + }, { + "value": 451031, + "label": "隆林各族自治县", + "isLeaf": true + }, { + "value": 451081, + "label": "靖西市", + "isLeaf": true + }] + }, { + "value": 451100, + "label": "贺州市", + "children": [{ + "value": 451102, + "label": "八步区", + "isLeaf": true + }, { + "value": 451103, + "label": "平桂区", + "isLeaf": true + }, { + "value": 451121, + "label": "昭平县", + "isLeaf": true + }, { + "value": 451122, + "label": "钟山县", + "isLeaf": true + }, { + "value": 451123, + "label": "富川瑶族自治县", + "isLeaf": true + }] + }, { + "value": 451200, + "label": "河池市", + "children": [{ + "value": 451202, + "label": "金城江区", + "isLeaf": true + }, { + "value": 451221, + "label": "南丹县", + "isLeaf": true + }, { + "value": 451222, + "label": "天峨县", + "isLeaf": true + }, { + "value": 451223, + "label": "凤山县", + "isLeaf": true + }, { + "value": 451224, + "label": "东兰县", + "isLeaf": true + }, { + "value": 451225, + "label": "罗城仫佬族自治县", + "isLeaf": true + }, { + "value": 451226, + "label": "环江毛南族自治县", + "isLeaf": true + }, { + "value": 451227, + "label": "巴马瑶族自治县", + "isLeaf": true + }, { + "value": 451228, + "label": "都安瑶族自治县", + "isLeaf": true + }, { + "value": 451229, + "label": "大化瑶族自治县", + "isLeaf": true + }, { + "value": 451281, + "label": "宜州市", + "isLeaf": true + }] + }, { + "value": 451300, + "label": "来宾市", + "children": [{ + "value": 451302, + "label": "兴宾区", + "isLeaf": true + }, { + "value": 451321, + "label": "忻城县", + "isLeaf": true + }, { + "value": 451322, + "label": "象州县", + "isLeaf": true + }, { + "value": 451323, + "label": "武宣县", + "isLeaf": true + }, { + "value": 451324, + "label": "金秀瑶族自治县", + "isLeaf": true + }, { + "value": 451381, + "label": "合山市", + "isLeaf": true + }] + }, { + "value": 451400, + "label": "崇左市", + "children": [{ + "value": 451402, + "label": "江州区", + "isLeaf": true + }, { + "value": 451421, + "label": "扶绥县", + "isLeaf": true + }, { + "value": 451422, + "label": "宁明县", + "isLeaf": true + }, { + "value": 451423, + "label": "龙州县", + "isLeaf": true + }, { + "value": 451424, + "label": "大新县", + "isLeaf": true + }, { + "value": 451425, + "label": "天等县", + "isLeaf": true + }, { + "value": 451481, + "label": "凭祥市", + "isLeaf": true + }] + }] +}, { + "value": 460000, + "label": "海南省", + "children": [{ + "value": 460100, + "label": "海口市", + "children": [{ + "value": 460105, + "label": "秀英区", + "isLeaf": true + }, { + "value": 460106, + "label": "龙华区", + "isLeaf": true + }, { + "value": 460107, + "label": "琼山区", + "isLeaf": true + }, { + "value": 460108, + "label": "美兰区", + "isLeaf": true + }] + }, { + "value": 460200, + "label": "三亚市", + "children": [{ + "value": 460202, + "label": "海棠区", + "isLeaf": true + }, { + "value": 460203, + "label": "吉阳区", + "isLeaf": true + }, { + "value": 460204, + "label": "天涯区", + "isLeaf": true + }, { + "value": 460205, + "label": "崖州区", + "isLeaf": true + }] + }, { + "value": 460300, + "label": "三沙市", + "children": [{ + "value": 460321, + "label": "西沙群岛", + "isLeaf": true + }, { + "value": 460322, + "label": "南沙群岛", + "isLeaf": true + }, { + "value": 460323, + "label": "中沙群岛的岛礁及其海域", + "isLeaf": true + }] + }, { + "value": 460400, + "label": "儋州市", + "children": [{ + "value": 460400100, + "label": "那大镇", + "isLeaf": true + }, { + "value": 460400101, + "label": "和庆镇", + "isLeaf": true + }, { + "value": 460400102, + "label": "南丰镇", + "isLeaf": true + }, { + "value": 460400103, + "label": "大成镇", + "isLeaf": true + }, { + "value": 460400104, + "label": "雅星镇", + "isLeaf": true + }, { + "value": 460400105, + "label": "兰洋镇", + "isLeaf": true + }, { + "value": 460400106, + "label": "光村镇", + "isLeaf": true + }, { + "value": 460400107, + "label": "木棠镇", + "isLeaf": true + }, { + "value": 460400108, + "label": "海头镇", + "isLeaf": true + }, { + "value": 460400109, + "label": "峨蔓镇", + "isLeaf": true + }, { + "value": 460400110, + "label": "三都镇", + "isLeaf": true + }, { + "value": 460400111, + "label": "王五镇", + "isLeaf": true + }, { + "value": 460400112, + "label": "白马井镇", + "isLeaf": true + }, { + "value": 460400113, + "label": "中和镇", + "isLeaf": true + }, { + "value": 460400114, + "label": "排浦镇", + "isLeaf": true + }, { + "value": 460400115, + "label": "东成镇", + "isLeaf": true + }, { + "value": 460400116, + "label": "新州镇", + "isLeaf": true + }, { + "value": 460400400, + "label": "国营西培农场", + "isLeaf": true + }, { + "value": 460400404, + "label": "国营西联农场", + "isLeaf": true + }, { + "value": 460400405, + "label": "国营蓝洋农场", + "isLeaf": true + }, { + "value": 460400407, + "label": "国营八一农场", + "isLeaf": true + }, { + "value": 460400499, + "label": "洋浦经济开发区", + "isLeaf": true + }, { + "value": 460400500, + "label": "华南热作学院", + "isLeaf": true + }] + }, { + "value": 469000, + "label": "省直辖县级行政区划", + "children": [{ + "value": 469001, + "label": "五指山市", + "isLeaf": true + }, { + "value": 469002, + "label": "琼海市", + "isLeaf": true + }, { + "value": 469005, + "label": "文昌市", + "isLeaf": true + }, { + "value": 469006, + "label": "万宁市", + "isLeaf": true + }, { + "value": 469007, + "label": "东方市", + "isLeaf": true + }, { + "value": 469021, + "label": "定安县", + "isLeaf": true + }, { + "value": 469022, + "label": "屯昌县", + "isLeaf": true + }, { + "value": 469023, + "label": "澄迈县", + "isLeaf": true + }, { + "value": 469024, + "label": "临高县", + "isLeaf": true + }, { + "value": 469025, + "label": "白沙黎族自治县", + "isLeaf": true + }, { + "value": 469026, + "label": "昌江黎族自治县", + "isLeaf": true + }, { + "value": 469027, + "label": "乐东黎族自治县", + "isLeaf": true + }, { + "value": 469028, + "label": "陵水黎族自治县", + "isLeaf": true + }, { + "value": 469029, + "label": "保亭黎族苗族自治县", + "isLeaf": true + }, { + "value": 469030, + "label": "琼中黎族苗族自治县", + "isLeaf": true + }] + }] +}, { + "value": 500000, + "label": "重庆市", + "children": [{ + "value": 500100, + "label": "市辖区", + "children": [{ + "value": 500101, + "label": "万州区", + "isLeaf": true + }, { + "value": 500102, + "label": "涪陵区", + "isLeaf": true + }, { + "value": 500103, + "label": "渝中区", + "isLeaf": true + }, { + "value": 500104, + "label": "大渡口区", + "isLeaf": true + }, { + "value": 500105, + "label": "江北区", + "isLeaf": true + }, { + "value": 500106, + "label": "沙坪坝区", + "isLeaf": true + }, { + "value": 500107, + "label": "九龙坡区", + "isLeaf": true + }, { + "value": 500108, + "label": "南岸区", + "isLeaf": true + }, { + "value": 500109, + "label": "北碚区", + "isLeaf": true + }, { + "value": 500110, + "label": "綦江区", + "isLeaf": true + }, { + "value": 500111, + "label": "大足区", + "isLeaf": true + }, { + "value": 500112, + "label": "渝北区", + "isLeaf": true + }, { + "value": 500113, + "label": "巴南区", + "isLeaf": true + }, { + "value": 500114, + "label": "黔江区", + "isLeaf": true + }, { + "value": 500115, + "label": "长寿区", + "isLeaf": true + }, { + "value": 500116, + "label": "江津区", + "isLeaf": true + }, { + "value": 500117, + "label": "合川区", + "isLeaf": true + }, { + "value": 500118, + "label": "永川区", + "isLeaf": true + }, { + "value": 500119, + "label": "南川区", + "isLeaf": true + }, { + "value": 500120, + "label": "璧山区", + "isLeaf": true + }, { + "value": 500151, + "label": "铜梁区", + "isLeaf": true + }, { + "value": 500152, + "label": "潼南区", + "isLeaf": true + }, { + "value": 500153, + "label": "荣昌区", + "isLeaf": true + }, { + "value": 500154, + "label": "开州区", + "isLeaf": true + }, { + "value": 500228, + "label": "梁平区", + "isLeaf": true + }, { + "value": 500232, + "label": "武隆区", + "isLeaf": true + }] + }, { + "value": 500200, + "label": "县", + "children": [{ + "value": 500229, + "label": "城口县", + "isLeaf": true + }, { + "value": 500230, + "label": "丰都县", + "isLeaf": true + }, { + "value": 500231, + "label": "垫江县", + "isLeaf": true + }, { + "value": 500233, + "label": "忠县", + "isLeaf": true + }, { + "value": 500235, + "label": "云阳县", + "isLeaf": true + }, { + "value": 500236, + "label": "奉节县", + "isLeaf": true + }, { + "value": 500237, + "label": "巫山县", + "isLeaf": true + }, { + "value": 500238, + "label": "巫溪县", + "isLeaf": true + }, { + "value": 500240, + "label": "石柱土家族自治县", + "isLeaf": true + }, { + "value": 500241, + "label": "秀山土家族苗族自治县", + "isLeaf": true + }, { + "value": 500242, + "label": "酉阳土家族苗族自治县", + "isLeaf": true + }, { + "value": 500243, + "label": "彭水苗族土家族自治县", + "isLeaf": true + }] + }] +}, { + "value": 510000, + "label": "四川省", + "children": [{ + "value": 510100, + "label": "成都市", + "children": [{ + "value": 510104, + "label": "锦江区", + "isLeaf": true + }, { + "value": 510105, + "label": "青羊区", + "isLeaf": true + }, { + "value": 510106, + "label": "金牛区", + "isLeaf": true + }, { + "value": 510107, + "label": "武侯区", + "isLeaf": true + }, { + "value": 510108, + "label": "成华区", + "isLeaf": true + }, { + "value": 510112, + "label": "龙泉驿区", + "isLeaf": true + }, { + "value": 510113, + "label": "青白江区", + "isLeaf": true + }, { + "value": 510114, + "label": "新都区", + "isLeaf": true + }, { + "value": 510115, + "label": "温江区", + "isLeaf": true + }, { + "value": 510116, + "label": "双流区", + "isLeaf": true + }, { + "value": 510121, + "label": "金堂县", + "isLeaf": true + }, { + "value": 510124, + "label": "郫县", + "isLeaf": true + }, { + "value": 510129, + "label": "大邑县", + "isLeaf": true + }, { + "value": 510131, + "label": "蒲江县", + "isLeaf": true + }, { + "value": 510132, + "label": "新津县", + "isLeaf": true + }, { + "value": 510181, + "label": "都江堰市", + "isLeaf": true + }, { + "value": 510182, + "label": "彭州市", + "isLeaf": true + }, { + "value": 510183, + "label": "邛崃市", + "isLeaf": true + }, { + "value": 510184, + "label": "崇州市", + "isLeaf": true + }, { + "value": 510185, + "label": "简阳市", + "isLeaf": true + }] + }, { + "value": 510300, + "label": "自贡市", + "children": [{ + "value": 510302, + "label": "自流井区", + "isLeaf": true + }, { + "value": 510303, + "label": "贡井区", + "isLeaf": true + }, { + "value": 510304, + "label": "大安区", + "isLeaf": true + }, { + "value": 510311, + "label": "沿滩区", + "isLeaf": true + }, { + "value": 510321, + "label": "荣县", + "isLeaf": true + }, { + "value": 510322, + "label": "富顺县", + "isLeaf": true + }] + }, { + "value": 510400, + "label": "攀枝花市", + "children": [{ + "value": 510402, + "label": "东区", + "isLeaf": true + }, { + "value": 510403, + "label": "西区", + "isLeaf": true + }, { + "value": 510411, + "label": "仁和区", + "isLeaf": true + }, { + "value": 510421, + "label": "米易县", + "isLeaf": true + }, { + "value": 510422, + "label": "盐边县", + "isLeaf": true + }] + }, { + "value": 510500, + "label": "泸州市", + "children": [{ + "value": 510502, + "label": "江阳区", + "isLeaf": true + }, { + "value": 510503, + "label": "纳溪区", + "isLeaf": true + }, { + "value": 510504, + "label": "龙马潭区", + "isLeaf": true + }, { + "value": 510521, + "label": "泸县", + "isLeaf": true + }, { + "value": 510522, + "label": "合江县", + "isLeaf": true + }, { + "value": 510524, + "label": "叙永县", + "isLeaf": true + }, { + "value": 510525, + "label": "古蔺县", + "isLeaf": true + }] + }, { + "value": 510600, + "label": "德阳市", + "children": [{ + "value": 510603, + "label": "旌阳区", + "isLeaf": true + }, { + "value": 510623, + "label": "中江县", + "isLeaf": true + }, { + "value": 510626, + "label": "罗江县", + "isLeaf": true + }, { + "value": 510681, + "label": "广汉市", + "isLeaf": true + }, { + "value": 510682, + "label": "什邡市", + "isLeaf": true + }, { + "value": 510683, + "label": "绵竹市", + "isLeaf": true + }] + }, { + "value": 510700, + "label": "绵阳市", + "children": [{ + "value": 510703, + "label": "涪城区", + "isLeaf": true + }, { + "value": 510704, + "label": "游仙区", + "isLeaf": true + }, { + "value": 510705, + "label": "安州区", + "isLeaf": true + }, { + "value": 510722, + "label": "三台县", + "isLeaf": true + }, { + "value": 510723, + "label": "盐亭县", + "isLeaf": true + }, { + "value": 510725, + "label": "梓潼县", + "isLeaf": true + }, { + "value": 510726, + "label": "北川羌族自治县", + "isLeaf": true + }, { + "value": 510727, + "label": "平武县", + "isLeaf": true + }, { + "value": 510781, + "label": "江油市", + "isLeaf": true + }] + }, { + "value": 510800, + "label": "广元市", + "children": [{ + "value": 510802, + "label": "利州区", + "isLeaf": true + }, { + "value": 510811, + "label": "昭化区", + "isLeaf": true + }, { + "value": 510812, + "label": "朝天区", + "isLeaf": true + }, { + "value": 510821, + "label": "旺苍县", + "isLeaf": true + }, { + "value": 510822, + "label": "青川县", + "isLeaf": true + }, { + "value": 510823, + "label": "剑阁县", + "isLeaf": true + }, { + "value": 510824, + "label": "苍溪县", + "isLeaf": true + }] + }, { + "value": 510900, + "label": "遂宁市", + "children": [{ + "value": 510903, + "label": "船山区", + "isLeaf": true + }, { + "value": 510904, + "label": "安居区", + "isLeaf": true + }, { + "value": 510921, + "label": "蓬溪县", + "isLeaf": true + }, { + "value": 510922, + "label": "射洪县", + "isLeaf": true + }, { + "value": 510923, + "label": "大英县", + "isLeaf": true + }] + }, { + "value": 511000, + "label": "内江市", + "children": [{ + "value": 511002, + "label": "市中区", + "isLeaf": true + }, { + "value": 511011, + "label": "东兴区", + "isLeaf": true + }, { + "value": 511024, + "label": "威远县", + "isLeaf": true + }, { + "value": 511025, + "label": "资中县", + "isLeaf": true + }, { + "value": 511028, + "label": "隆昌县", + "isLeaf": true + }] + }, { + "value": 511100, + "label": "乐山市", + "children": [{ + "value": 511102, + "label": "市中区", + "isLeaf": true + }, { + "value": 511111, + "label": "沙湾区", + "isLeaf": true + }, { + "value": 511112, + "label": "五通桥区", + "isLeaf": true + }, { + "value": 511113, + "label": "金口河区", + "isLeaf": true + }, { + "value": 511123, + "label": "犍为县", + "isLeaf": true + }, { + "value": 511124, + "label": "井研县", + "isLeaf": true + }, { + "value": 511126, + "label": "夹江县", + "isLeaf": true + }, { + "value": 511129, + "label": "沐川县", + "isLeaf": true + }, { + "value": 511132, + "label": "峨边彝族自治县", + "isLeaf": true + }, { + "value": 511133, + "label": "马边彝族自治县", + "isLeaf": true + }, { + "value": 511181, + "label": "峨眉山市", + "isLeaf": true + }] + }, { + "value": 511300, + "label": "南充市", + "children": [{ + "value": 511302, + "label": "顺庆区", + "isLeaf": true + }, { + "value": 511303, + "label": "高坪区", + "isLeaf": true + }, { + "value": 511304, + "label": "嘉陵区", + "isLeaf": true + }, { + "value": 511321, + "label": "南部县", + "isLeaf": true + }, { + "value": 511322, + "label": "营山县", + "isLeaf": true + }, { + "value": 511323, + "label": "蓬安县", + "isLeaf": true + }, { + "value": 511324, + "label": "仪陇县", + "isLeaf": true + }, { + "value": 511325, + "label": "西充县", + "isLeaf": true + }, { + "value": 511381, + "label": "阆中市", + "isLeaf": true + }] + }, { + "value": 511400, + "label": "眉山市", + "children": [{ + "value": 511402, + "label": "东坡区", + "isLeaf": true + }, { + "value": 511403, + "label": "彭山区", + "isLeaf": true + }, { + "value": 511421, + "label": "仁寿县", + "isLeaf": true + }, { + "value": 511423, + "label": "洪雅县", + "isLeaf": true + }, { + "value": 511424, + "label": "丹棱县", + "isLeaf": true + }, { + "value": 511425, + "label": "青神县", + "isLeaf": true + }] + }, { + "value": 511500, + "label": "宜宾市", + "children": [{ + "value": 511502, + "label": "翠屏区", + "isLeaf": true + }, { + "value": 511503, + "label": "南溪区", + "isLeaf": true + }, { + "value": 511521, + "label": "宜宾县", + "isLeaf": true + }, { + "value": 511523, + "label": "江安县", + "isLeaf": true + }, { + "value": 511524, + "label": "长宁县", + "isLeaf": true + }, { + "value": 511525, + "label": "高县", + "isLeaf": true + }, { + "value": 511526, + "label": "珙县", + "isLeaf": true + }, { + "value": 511527, + "label": "筠连县", + "isLeaf": true + }, { + "value": 511528, + "label": "兴文县", + "isLeaf": true + }, { + "value": 511529, + "label": "屏山县", + "isLeaf": true + }] + }, { + "value": 511600, + "label": "广安市", + "children": [{ + "value": 511602, + "label": "广安区", + "isLeaf": true + }, { + "value": 511603, + "label": "前锋区", + "isLeaf": true + }, { + "value": 511621, + "label": "岳池县", + "isLeaf": true + }, { + "value": 511622, + "label": "武胜县", + "isLeaf": true + }, { + "value": 511623, + "label": "邻水县", + "isLeaf": true + }, { + "value": 511681, + "label": "华蓥市", + "isLeaf": true + }] + }, { + "value": 511700, + "label": "达州市", + "children": [{ + "value": 511702, + "label": "通川区", + "isLeaf": true + }, { + "value": 511703, + "label": "达川区", + "isLeaf": true + }, { + "value": 511722, + "label": "宣汉县", + "isLeaf": true + }, { + "value": 511723, + "label": "开江县", + "isLeaf": true + }, { + "value": 511724, + "label": "大竹县", + "isLeaf": true + }, { + "value": 511725, + "label": "渠县", + "isLeaf": true + }, { + "value": 511781, + "label": "万源市", + "isLeaf": true + }] + }, { + "value": 511800, + "label": "雅安市", + "children": [{ + "value": 511802, + "label": "雨城区", + "isLeaf": true + }, { + "value": 511803, + "label": "名山区", + "isLeaf": true + }, { + "value": 511822, + "label": "荥经县", + "isLeaf": true + }, { + "value": 511823, + "label": "汉源县", + "isLeaf": true + }, { + "value": 511824, + "label": "石棉县", + "isLeaf": true + }, { + "value": 511825, + "label": "天全县", + "isLeaf": true + }, { + "value": 511826, + "label": "芦山县", + "isLeaf": true + }, { + "value": 511827, + "label": "宝兴县", + "isLeaf": true + }] + }, { + "value": 511900, + "label": "巴中市", + "children": [{ + "value": 511902, + "label": "巴州区", + "isLeaf": true + }, { + "value": 511903, + "label": "恩阳区", + "isLeaf": true + }, { + "value": 511921, + "label": "通江县", + "isLeaf": true + }, { + "value": 511922, + "label": "南江县", + "isLeaf": true + }, { + "value": 511923, + "label": "平昌县", + "isLeaf": true + }] + }, { + "value": 512000, + "label": "资阳市", + "children": [{ + "value": 512002, + "label": "雁江区", + "isLeaf": true + }, { + "value": 512021, + "label": "安岳县", + "isLeaf": true + }, { + "value": 512022, + "label": "乐至县", + "isLeaf": true + }] + }, { + "value": 513200, + "label": "阿坝藏族羌族自治州", + "children": [{ + "value": 513201, + "label": "马尔康市", + "isLeaf": true + }, { + "value": 513221, + "label": "汶川县", + "isLeaf": true + }, { + "value": 513222, + "label": "理县", + "isLeaf": true + }, { + "value": 513223, + "label": "茂县", + "isLeaf": true + }, { + "value": 513224, + "label": "松潘县", + "isLeaf": true + }, { + "value": 513225, + "label": "九寨沟县", + "isLeaf": true + }, { + "value": 513226, + "label": "金川县", + "isLeaf": true + }, { + "value": 513227, + "label": "小金县", + "isLeaf": true + }, { + "value": 513228, + "label": "黑水县", + "isLeaf": true + }, { + "value": 513230, + "label": "壤塘县", + "isLeaf": true + }, { + "value": 513231, + "label": "阿坝县", + "isLeaf": true + }, { + "value": 513232, + "label": "若尔盖县", + "isLeaf": true + }, { + "value": 513233, + "label": "红原县", + "isLeaf": true + }] + }, { + "value": 513300, + "label": "甘孜藏族自治州", + "children": [{ + "value": 513301, + "label": "康定市", + "isLeaf": true + }, { + "value": 513322, + "label": "泸定县", + "isLeaf": true + }, { + "value": 513323, + "label": "丹巴县", + "isLeaf": true + }, { + "value": 513324, + "label": "九龙县", + "isLeaf": true + }, { + "value": 513325, + "label": "雅江县", + "isLeaf": true + }, { + "value": 513326, + "label": "道孚县", + "isLeaf": true + }, { + "value": 513327, + "label": "炉霍县", + "isLeaf": true + }, { + "value": 513328, + "label": "甘孜县", + "isLeaf": true + }, { + "value": 513329, + "label": "新龙县", + "isLeaf": true + }, { + "value": 513330, + "label": "德格县", + "isLeaf": true + }, { + "value": 513331, + "label": "白玉县", + "isLeaf": true + }, { + "value": 513332, + "label": "石渠县", + "isLeaf": true + }, { + "value": 513333, + "label": "色达县", + "isLeaf": true + }, { + "value": 513334, + "label": "理塘县", + "isLeaf": true + }, { + "value": 513335, + "label": "巴塘县", + "isLeaf": true + }, { + "value": 513336, + "label": "乡城县", + "isLeaf": true + }, { + "value": 513337, + "label": "稻城县", + "isLeaf": true + }, { + "value": 513338, + "label": "得荣县", + "isLeaf": true + }] + }, { + "value": 513400, + "label": "凉山彝族自治州", + "children": [{ + "value": 513401, + "label": "西昌市", + "isLeaf": true + }, { + "value": 513422, + "label": "木里藏族自治县", + "isLeaf": true + }, { + "value": 513423, + "label": "盐源县", + "isLeaf": true + }, { + "value": 513424, + "label": "德昌县", + "isLeaf": true + }, { + "value": 513425, + "label": "会理县", + "isLeaf": true + }, { + "value": 513426, + "label": "会东县", + "isLeaf": true + }, { + "value": 513427, + "label": "宁南县", + "isLeaf": true + }, { + "value": 513428, + "label": "普格县", + "isLeaf": true + }, { + "value": 513429, + "label": "布拖县", + "isLeaf": true + }, { + "value": 513430, + "label": "金阳县", + "isLeaf": true + }, { + "value": 513431, + "label": "昭觉县", + "isLeaf": true + }, { + "value": 513432, + "label": "喜德县", + "isLeaf": true + }, { + "value": 513433, + "label": "冕宁县", + "isLeaf": true + }, { + "value": 513434, + "label": "越西县", + "isLeaf": true + }, { + "value": 513435, + "label": "甘洛县", + "isLeaf": true + }, { + "value": 513436, + "label": "美姑县", + "isLeaf": true + }, { + "value": 513437, + "label": "雷波县", + "isLeaf": true + }] + }] +}, { + "value": 520000, + "label": "贵州省", + "children": [{ + "value": 520100, + "label": "贵阳市", + "children": [{ + "value": 520102, + "label": "南明区", + "isLeaf": true + }, { + "value": 520103, + "label": "云岩区", + "isLeaf": true + }, { + "value": 520111, + "label": "花溪区", + "isLeaf": true + }, { + "value": 520112, + "label": "乌当区", + "isLeaf": true + }, { + "value": 520113, + "label": "白云区", + "isLeaf": true + }, { + "value": 520115, + "label": "观山湖区", + "isLeaf": true + }, { + "value": 520121, + "label": "开阳县", + "isLeaf": true + }, { + "value": 520122, + "label": "息烽县", + "isLeaf": true + }, { + "value": 520123, + "label": "修文县", + "isLeaf": true + }, { + "value": 520181, + "label": "清镇市", + "isLeaf": true + }] + }, { + "value": 520200, + "label": "六盘水市", + "children": [{ + "value": 520201, + "label": "钟山区", + "isLeaf": true + }, { + "value": 520203, + "label": "六枝特区", + "isLeaf": true + }, { + "value": 520221, + "label": "水城县", + "isLeaf": true + }, { + "value": 520222, + "label": "盘县", + "isLeaf": true + }] + }, { + "value": 520300, + "label": "遵义市", + "children": [{ + "value": 520302, + "label": "红花岗区", + "isLeaf": true + }, { + "value": 520303, + "label": "汇川区", + "isLeaf": true + }, { + "value": 520304, + "label": "播州区", + "isLeaf": true + }, { + "value": 520322, + "label": "桐梓县", + "isLeaf": true + }, { + "value": 520323, + "label": "绥阳县", + "isLeaf": true + }, { + "value": 520324, + "label": "正安县", + "isLeaf": true + }, { + "value": 520325, + "label": "道真仡佬族苗族自治县", + "isLeaf": true + }, { + "value": 520326, + "label": "务川仡佬族苗族自治县", + "isLeaf": true + }, { + "value": 520327, + "label": "凤冈县", + "isLeaf": true + }, { + "value": 520328, + "label": "湄潭县", + "isLeaf": true + }, { + "value": 520329, + "label": "余庆县", + "isLeaf": true + }, { + "value": 520330, + "label": "习水县", + "isLeaf": true + }, { + "value": 520381, + "label": "赤水市", + "isLeaf": true + }, { + "value": 520382, + "label": "仁怀市", + "isLeaf": true + }] + }, { + "value": 520400, + "label": "安顺市", + "children": [{ + "value": 520402, + "label": "西秀区", + "isLeaf": true + }, { + "value": 520403, + "label": "平坝区", + "isLeaf": true + }, { + "value": 520422, + "label": "普定县", + "isLeaf": true + }, { + "value": 520423, + "label": "镇宁布依族苗族自治县", + "isLeaf": true + }, { + "value": 520424, + "label": "关岭布依族苗族自治县", + "isLeaf": true + }, { + "value": 520425, + "label": "紫云苗族布依族自治县", + "isLeaf": true + }] + }, { + "value": 520500, + "label": "毕节市", + "children": [{ + "value": 520502, + "label": "七星关区", + "isLeaf": true + }, { + "value": 520521, + "label": "大方县", + "isLeaf": true + }, { + "value": 520522, + "label": "黔西县", + "isLeaf": true + }, { + "value": 520523, + "label": "金沙县", + "isLeaf": true + }, { + "value": 520524, + "label": "织金县", + "isLeaf": true + }, { + "value": 520525, + "label": "纳雍县", + "isLeaf": true + }, { + "value": 520526, + "label": "威宁彝族回族苗族自治县", + "isLeaf": true + }, { + "value": 520527, + "label": "赫章县", + "isLeaf": true + }] + }, { + "value": 520600, + "label": "铜仁市", + "children": [{ + "value": 520602, + "label": "碧江区", + "isLeaf": true + }, { + "value": 520603, + "label": "万山区", + "isLeaf": true + }, { + "value": 520621, + "label": "江口县", + "isLeaf": true + }, { + "value": 520622, + "label": "玉屏侗族自治县", + "isLeaf": true + }, { + "value": 520623, + "label": "石阡县", + "isLeaf": true + }, { + "value": 520624, + "label": "思南县", + "isLeaf": true + }, { + "value": 520625, + "label": "印江土家族苗族自治县", + "isLeaf": true + }, { + "value": 520626, + "label": "德江县", + "isLeaf": true + }, { + "value": 520627, + "label": "沿河土家族自治县", + "isLeaf": true + }, { + "value": 520628, + "label": "松桃苗族自治县", + "isLeaf": true + }] + }, { + "value": 522300, + "label": "黔西南布依族苗族自治州", + "children": [{ + "value": 522301, + "label": "兴义市", + "isLeaf": true + }, { + "value": 522322, + "label": "兴仁县", + "isLeaf": true + }, { + "value": 522323, + "label": "普安县", + "isLeaf": true + }, { + "value": 522324, + "label": "晴隆县", + "isLeaf": true + }, { + "value": 522325, + "label": "贞丰县", + "isLeaf": true + }, { + "value": 522326, + "label": "望谟县", + "isLeaf": true + }, { + "value": 522327, + "label": "册亨县", + "isLeaf": true + }, { + "value": 522328, + "label": "安龙县", + "isLeaf": true + }] + }, { + "value": 522600, + "label": "黔东南苗族侗族自治州", + "children": [{ + "value": 522601, + "label": "凯里市", + "isLeaf": true + }, { + "value": 522622, + "label": "黄平县", + "isLeaf": true + }, { + "value": 522623, + "label": "施秉县", + "isLeaf": true + }, { + "value": 522624, + "label": "三穗县", + "isLeaf": true + }, { + "value": 522625, + "label": "镇远县", + "isLeaf": true + }, { + "value": 522626, + "label": "岑巩县", + "isLeaf": true + }, { + "value": 522627, + "label": "天柱县", + "isLeaf": true + }, { + "value": 522628, + "label": "锦屏县", + "isLeaf": true + }, { + "value": 522629, + "label": "剑河县", + "isLeaf": true + }, { + "value": 522630, + "label": "台江县", + "isLeaf": true + }, { + "value": 522631, + "label": "黎平县", + "isLeaf": true + }, { + "value": 522632, + "label": "榕江县", + "isLeaf": true + }, { + "value": 522633, + "label": "从江县", + "isLeaf": true + }, { + "value": 522634, + "label": "雷山县", + "isLeaf": true + }, { + "value": 522635, + "label": "麻江县", + "isLeaf": true + }, { + "value": 522636, + "label": "丹寨县", + "isLeaf": true + }] + }, { + "value": 522700, + "label": "黔南布依族苗族自治州", + "children": [{ + "value": 522701, + "label": "都匀市", + "isLeaf": true + }, { + "value": 522702, + "label": "福泉市", + "isLeaf": true + }, { + "value": 522722, + "label": "荔波县", + "isLeaf": true + }, { + "value": 522723, + "label": "贵定县", + "isLeaf": true + }, { + "value": 522725, + "label": "瓮安县", + "isLeaf": true + }, { + "value": 522726, + "label": "独山县", + "isLeaf": true + }, { + "value": 522727, + "label": "平塘县", + "isLeaf": true + }, { + "value": 522728, + "label": "罗甸县", + "isLeaf": true + }, { + "value": 522729, + "label": "长顺县", + "isLeaf": true + }, { + "value": 522730, + "label": "龙里县", + "isLeaf": true + }, { + "value": 522731, + "label": "惠水县", + "isLeaf": true + }, { + "value": 522732, + "label": "三都水族自治县", + "isLeaf": true + }] + }] +}, { + "value": 530000, + "label": "云南省", + "children": [{ + "value": 530100, + "label": "昆明市", + "children": [{ + "value": 530102, + "label": "五华区", + "isLeaf": true + }, { + "value": 530103, + "label": "盘龙区", + "isLeaf": true + }, { + "value": 530111, + "label": "官渡区", + "isLeaf": true + }, { + "value": 530112, + "label": "西山区", + "isLeaf": true + }, { + "value": 530113, + "label": "东川区", + "isLeaf": true + }, { + "value": 530114, + "label": "呈贡区", + "isLeaf": true + }, { + "value": 530122, + "label": "晋宁县", + "isLeaf": true + }, { + "value": 530124, + "label": "富民县", + "isLeaf": true + }, { + "value": 530125, + "label": "宜良县", + "isLeaf": true + }, { + "value": 530126, + "label": "石林彝族自治县", + "isLeaf": true + }, { + "value": 530127, + "label": "嵩明县", + "isLeaf": true + }, { + "value": 530128, + "label": "禄劝彝族苗族自治县", + "isLeaf": true + }, { + "value": 530129, + "label": "寻甸回族彝族自治县", + "isLeaf": true + }, { + "value": 530181, + "label": "安宁市", + "isLeaf": true + }] + }, { + "value": 530300, + "label": "曲靖市", + "children": [{ + "value": 530302, + "label": "麒麟区", + "isLeaf": true + }, { + "value": 530303, + "label": "沾益区", + "isLeaf": true + }, { + "value": 530321, + "label": "马龙县", + "isLeaf": true + }, { + "value": 530322, + "label": "陆良县", + "isLeaf": true + }, { + "value": 530323, + "label": "师宗县", + "isLeaf": true + }, { + "value": 530324, + "label": "罗平县", + "isLeaf": true + }, { + "value": 530325, + "label": "富源县", + "isLeaf": true + }, { + "value": 530326, + "label": "会泽县", + "isLeaf": true + }, { + "value": 530381, + "label": "宣威市", + "isLeaf": true + }] + }, { + "value": 530400, + "label": "玉溪市", + "children": [{ + "value": 530402, + "label": "红塔区", + "isLeaf": true + }, { + "value": 530403, + "label": "江川区", + "isLeaf": true + }, { + "value": 530422, + "label": "澄江县", + "isLeaf": true + }, { + "value": 530423, + "label": "通海县", + "isLeaf": true + }, { + "value": 530424, + "label": "华宁县", + "isLeaf": true + }, { + "value": 530425, + "label": "易门县", + "isLeaf": true + }, { + "value": 530426, + "label": "峨山彝族自治县", + "isLeaf": true + }, { + "value": 530427, + "label": "新平彝族傣族自治县", + "isLeaf": true + }, { + "value": 530428, + "label": "元江哈尼族彝族傣族自治县", + "isLeaf": true + }] + }, { + "value": 530500, + "label": "保山市", + "children": [{ + "value": 530502, + "label": "隆阳区", + "isLeaf": true + }, { + "value": 530521, + "label": "施甸县", + "isLeaf": true + }, { + "value": 530523, + "label": "龙陵县", + "isLeaf": true + }, { + "value": 530524, + "label": "昌宁县", + "isLeaf": true + }, { + "value": 530581, + "label": "腾冲市", + "isLeaf": true + }] + }, { + "value": 530600, + "label": "昭通市", + "children": [{ + "value": 530602, + "label": "昭阳区", + "isLeaf": true + }, { + "value": 530621, + "label": "鲁甸县", + "isLeaf": true + }, { + "value": 530622, + "label": "巧家县", + "isLeaf": true + }, { + "value": 530623, + "label": "盐津县", + "isLeaf": true + }, { + "value": 530624, + "label": "大关县", + "isLeaf": true + }, { + "value": 530625, + "label": "永善县", + "isLeaf": true + }, { + "value": 530626, + "label": "绥江县", + "isLeaf": true + }, { + "value": 530627, + "label": "镇雄县", + "isLeaf": true + }, { + "value": 530628, + "label": "彝良县", + "isLeaf": true + }, { + "value": 530629, + "label": "威信县", + "isLeaf": true + }, { + "value": 530630, + "label": "水富县", + "isLeaf": true + }] + }, { + "value": 530700, + "label": "丽江市", + "children": [{ + "value": 530702, + "label": "古城区", + "isLeaf": true + }, { + "value": 530721, + "label": "玉龙纳西族自治县", + "isLeaf": true + }, { + "value": 530722, + "label": "永胜县", + "isLeaf": true + }, { + "value": 530723, + "label": "华坪县", + "isLeaf": true + }, { + "value": 530724, + "label": "宁蒗彝族自治县", + "isLeaf": true + }] + }, { + "value": 530800, + "label": "普洱市", + "children": [{ + "value": 530802, + "label": "思茅区", + "isLeaf": true + }, { + "value": 530821, + "label": "宁洱哈尼族彝族自治县", + "isLeaf": true + }, { + "value": 530822, + "label": "墨江哈尼族自治县", + "isLeaf": true + }, { + "value": 530823, + "label": "景东彝族自治县", + "isLeaf": true + }, { + "value": 530824, + "label": "景谷傣族彝族自治县", + "isLeaf": true + }, { + "value": 530825, + "label": "镇沅彝族哈尼族拉祜族自治县", + "isLeaf": true + }, { + "value": 530826, + "label": "江城哈尼族彝族自治县", + "isLeaf": true + }, { + "value": 530827, + "label": "孟连傣族拉祜族佤族自治县", + "isLeaf": true + }, { + "value": 530828, + "label": "澜沧拉祜族自治县", + "isLeaf": true + }, { + "value": 530829, + "label": "西盟佤族自治县", + "isLeaf": true + }] + }, { + "value": 530900, + "label": "临沧市", + "children": [{ + "value": 530902, + "label": "临翔区", + "isLeaf": true + }, { + "value": 530921, + "label": "凤庆县", + "isLeaf": true + }, { + "value": 530922, + "label": "云县", + "isLeaf": true + }, { + "value": 530923, + "label": "永德县", + "isLeaf": true + }, { + "value": 530924, + "label": "镇康县", + "isLeaf": true + }, { + "value": 530925, + "label": "双江拉祜族佤族布朗族傣族自治县", + "isLeaf": true + }, { + "value": 530926, + "label": "耿马傣族佤族自治县", + "isLeaf": true + }, { + "value": 530927, + "label": "沧源佤族自治县", + "isLeaf": true + }] + }, { + "value": 532300, + "label": "楚雄彝族自治州", + "children": [{ + "value": 532301, + "label": "楚雄市", + "isLeaf": true + }, { + "value": 532322, + "label": "双柏县", + "isLeaf": true + }, { + "value": 532323, + "label": "牟定县", + "isLeaf": true + }, { + "value": 532324, + "label": "南华县", + "isLeaf": true + }, { + "value": 532325, + "label": "姚安县", + "isLeaf": true + }, { + "value": 532326, + "label": "大姚县", + "isLeaf": true + }, { + "value": 532327, + "label": "永仁县", + "isLeaf": true + }, { + "value": 532328, + "label": "元谋县", + "isLeaf": true + }, { + "value": 532329, + "label": "武定县", + "isLeaf": true + }, { + "value": 532331, + "label": "禄丰县", + "isLeaf": true + }] + }, { + "value": 532500, + "label": "红河哈尼族彝族自治州", + "children": [{ + "value": 532501, + "label": "个旧市", + "isLeaf": true + }, { + "value": 532502, + "label": "开远市", + "isLeaf": true + }, { + "value": 532503, + "label": "蒙自市", + "isLeaf": true + }, { + "value": 532504, + "label": "弥勒市", + "isLeaf": true + }, { + "value": 532523, + "label": "屏边苗族自治县", + "isLeaf": true + }, { + "value": 532524, + "label": "建水县", + "isLeaf": true + }, { + "value": 532525, + "label": "石屏县", + "isLeaf": true + }, { + "value": 532527, + "label": "泸西县", + "isLeaf": true + }, { + "value": 532528, + "label": "元阳县", + "isLeaf": true + }, { + "value": 532529, + "label": "红河县", + "isLeaf": true + }, { + "value": 532530, + "label": "金平苗族瑶族傣族自治县", + "isLeaf": true + }, { + "value": 532531, + "label": "绿春县", + "isLeaf": true + }, { + "value": 532532, + "label": "河口瑶族自治县", + "isLeaf": true + }] + }, { + "value": 532600, + "label": "文山壮族苗族自治州", + "children": [{ + "value": 532601, + "label": "文山市", + "isLeaf": true + }, { + "value": 532622, + "label": "砚山县", + "isLeaf": true + }, { + "value": 532623, + "label": "西畴县", + "isLeaf": true + }, { + "value": 532624, + "label": "麻栗坡县", + "isLeaf": true + }, { + "value": 532625, + "label": "马关县", + "isLeaf": true + }, { + "value": 532626, + "label": "丘北县", + "isLeaf": true + }, { + "value": 532627, + "label": "广南县", + "isLeaf": true + }, { + "value": 532628, + "label": "富宁县", + "isLeaf": true + }] + }, { + "value": 532800, + "label": "西双版纳傣族自治州", + "children": [{ + "value": 532801, + "label": "景洪市", + "isLeaf": true + }, { + "value": 532822, + "label": "勐海县", + "isLeaf": true + }, { + "value": 532823, + "label": "勐腊县", + "isLeaf": true + }] + }, { + "value": 532900, + "label": "大理白族自治州", + "children": [{ + "value": 532901, + "label": "大理市", + "isLeaf": true + }, { + "value": 532922, + "label": "漾濞彝族自治县", + "isLeaf": true + }, { + "value": 532923, + "label": "祥云县", + "isLeaf": true + }, { + "value": 532924, + "label": "宾川县", + "isLeaf": true + }, { + "value": 532925, + "label": "弥渡县", + "isLeaf": true + }, { + "value": 532926, + "label": "南涧彝族自治县", + "isLeaf": true + }, { + "value": 532927, + "label": "巍山彝族回族自治县", + "isLeaf": true + }, { + "value": 532928, + "label": "永平县", + "isLeaf": true + }, { + "value": 532929, + "label": "云龙县", + "isLeaf": true + }, { + "value": 532930, + "label": "洱源县", + "isLeaf": true + }, { + "value": 532931, + "label": "剑川县", + "isLeaf": true + }, { + "value": 532932, + "label": "鹤庆县", + "isLeaf": true + }] + }, { + "value": 533100, + "label": "德宏傣族景颇族自治州", + "children": [{ + "value": 533102, + "label": "瑞丽市", + "isLeaf": true + }, { + "value": 533103, + "label": "芒市", + "isLeaf": true + }, { + "value": 533122, + "label": "梁河县", + "isLeaf": true + }, { + "value": 533123, + "label": "盈江县", + "isLeaf": true + }, { + "value": 533124, + "label": "陇川县", + "isLeaf": true + }] + }, { + "value": 533300, + "label": "怒江傈僳族自治州", + "children": [{ + "value": 533301, + "label": "泸水市", + "isLeaf": true + }, { + "value": 533323, + "label": "福贡县", + "isLeaf": true + }, { + "value": 533324, + "label": "贡山独龙族怒族自治县", + "isLeaf": true + }, { + "value": 533325, + "label": "兰坪白族普米族自治县", + "isLeaf": true + }] + }, { + "value": 533400, + "label": "迪庆藏族自治州", + "children": [{ + "value": 533401, + "label": "香格里拉市", + "isLeaf": true + }, { + "value": 533422, + "label": "德钦县", + "isLeaf": true + }, { + "value": 533423, + "label": "维西傈僳族自治县", + "isLeaf": true + }] + }] +}, { + "value": 540000, + "label": "西藏自治区", + "children": [{ + "value": 540100, + "label": "拉萨市", + "children": [{ + "value": 540102, + "label": "城关区", + "isLeaf": true + }, { + "value": 540103, + "label": "堆龙德庆区", + "isLeaf": true + }, { + "value": 540121, + "label": "林周县", + "isLeaf": true + }, { + "value": 540122, + "label": "当雄县", + "isLeaf": true + }, { + "value": 540123, + "label": "尼木县", + "isLeaf": true + }, { + "value": 540124, + "label": "曲水县", + "isLeaf": true + }, { + "value": 540126, + "label": "达孜县", + "isLeaf": true + }, { + "value": 540127, + "label": "墨竹工卡县", + "isLeaf": true + }] + }, { + "value": 540200, + "label": "日喀则市", + "children": [{ + "value": 540202, + "label": "桑珠孜区", + "isLeaf": true + }, { + "value": 540221, + "label": "南木林县", + "isLeaf": true + }, { + "value": 540222, + "label": "江孜县", + "isLeaf": true + }, { + "value": 540223, + "label": "定日县", + "isLeaf": true + }, { + "value": 540224, + "label": "萨迦县", + "isLeaf": true + }, { + "value": 540225, + "label": "拉孜县", + "isLeaf": true + }, { + "value": 540226, + "label": "昂仁县", + "isLeaf": true + }, { + "value": 540227, + "label": "谢通门县", + "isLeaf": true + }, { + "value": 540228, + "label": "白朗县", + "isLeaf": true + }, { + "value": 540229, + "label": "仁布县", + "isLeaf": true + }, { + "value": 540230, + "label": "康马县", + "isLeaf": true + }, { + "value": 540231, + "label": "定结县", + "isLeaf": true + }, { + "value": 540232, + "label": "仲巴县", + "isLeaf": true + }, { + "value": 540233, + "label": "亚东县", + "isLeaf": true + }, { + "value": 540234, + "label": "吉隆县", + "isLeaf": true + }, { + "value": 540235, + "label": "聂拉木县", + "isLeaf": true + }, { + "value": 540236, + "label": "萨嘎县", + "isLeaf": true + }, { + "value": 540237, + "label": "岗巴县", + "isLeaf": true + }] + }, { + "value": 540300, + "label": "昌都市", + "children": [{ + "value": 540302, + "label": "卡若区", + "isLeaf": true + }, { + "value": 540321, + "label": "江达县", + "isLeaf": true + }, { + "value": 540322, + "label": "贡觉县", + "isLeaf": true + }, { + "value": 540323, + "label": "类乌齐县", + "isLeaf": true + }, { + "value": 540324, + "label": "丁青县", + "isLeaf": true + }, { + "value": 540325, + "label": "察雅县", + "isLeaf": true + }, { + "value": 540326, + "label": "八宿县", + "isLeaf": true + }, { + "value": 540327, + "label": "左贡县", + "isLeaf": true + }, { + "value": 540328, + "label": "芒康县", + "isLeaf": true + }, { + "value": 540329, + "label": "洛隆县", + "isLeaf": true + }, { + "value": 540330, + "label": "边坝县", + "isLeaf": true + }] + }, { + "value": 540400, + "label": "林芝市", + "children": [{ + "value": 540402, + "label": "巴宜区", + "isLeaf": true + }, { + "value": 540421, + "label": "工布江达县", + "isLeaf": true + }, { + "value": 540422, + "label": "米林县", + "isLeaf": true + }, { + "value": 540423, + "label": "墨脱县", + "isLeaf": true + }, { + "value": 540424, + "label": "波密县", + "isLeaf": true + }, { + "value": 540425, + "label": "察隅县", + "isLeaf": true + }, { + "value": 540426, + "label": "朗县", + "isLeaf": true + }] + }, { + "value": 540500, + "label": "山南市", + "children": [{ + "value": 540502, + "label": "乃东区", + "isLeaf": true + }, { + "value": 540521, + "label": "扎囊县", + "isLeaf": true + }, { + "value": 540522, + "label": "贡嘎县", + "isLeaf": true + }, { + "value": 540523, + "label": "桑日县", + "isLeaf": true + }, { + "value": 540524, + "label": "琼结县", + "isLeaf": true + }, { + "value": 540525, + "label": "曲松县", + "isLeaf": true + }, { + "value": 540526, + "label": "措美县", + "isLeaf": true + }, { + "value": 540527, + "label": "洛扎县", + "isLeaf": true + }, { + "value": 540528, + "label": "加查县", + "isLeaf": true + }, { + "value": 540529, + "label": "隆子县", + "isLeaf": true + }, { + "value": 540530, + "label": "错那县", + "isLeaf": true + }, { + "value": 540531, + "label": "浪卡子县", + "isLeaf": true + }] + }, { + "value": 542400, + "label": "那曲地区", + "children": [{ + "value": 542421, + "label": "那曲县", + "isLeaf": true + }, { + "value": 542422, + "label": "嘉黎县", + "isLeaf": true + }, { + "value": 542423, + "label": "比如县", + "isLeaf": true + }, { + "value": 542424, + "label": "聂荣县", + "isLeaf": true + }, { + "value": 542425, + "label": "安多县", + "isLeaf": true + }, { + "value": 542426, + "label": "申扎县", + "isLeaf": true + }, { + "value": 542427, + "label": "索县", + "isLeaf": true + }, { + "value": 542428, + "label": "班戈县", + "isLeaf": true + }, { + "value": 542429, + "label": "巴青县", + "isLeaf": true + }, { + "value": 542430, + "label": "尼玛县", + "isLeaf": true + }, { + "value": 542431, + "label": "双湖县", + "isLeaf": true + }] + }, { + "value": 542500, + "label": "阿里地区", + "children": [{ + "value": 542521, + "label": "普兰县", + "isLeaf": true + }, { + "value": 542522, + "label": "札达县", + "isLeaf": true + }, { + "value": 542523, + "label": "噶尔县", + "isLeaf": true + }, { + "value": 542524, + "label": "日土县", + "isLeaf": true + }, { + "value": 542525, + "label": "革吉县", + "isLeaf": true + }, { + "value": 542526, + "label": "改则县", + "isLeaf": true + }, { + "value": 542527, + "label": "措勤县", + "isLeaf": true + }] + }] +}, { + "value": 610000, + "label": "陕西省", + "children": [{ + "value": 610100, + "label": "西安市", + "children": [{ + "value": 610102, + "label": "新城区", + "isLeaf": true + }, { + "value": 610103, + "label": "碑林区", + "isLeaf": true + }, { + "value": 610104, + "label": "莲湖区", + "isLeaf": true + }, { + "value": 610111, + "label": "灞桥区", + "isLeaf": true + }, { + "value": 610112, + "label": "未央区", + "isLeaf": true + }, { + "value": 610113, + "label": "雁塔区", + "isLeaf": true + }, { + "value": 610114, + "label": "阎良区", + "isLeaf": true + }, { + "value": 610115, + "label": "临潼区", + "isLeaf": true + }, { + "value": 610116, + "label": "长安区", + "isLeaf": true + }, { + "value": 610117, + "label": "高陵区", + "isLeaf": true + }, { + "value": 610122, + "label": "蓝田县", + "isLeaf": true + }, { + "value": 610124, + "label": "周至县", + "isLeaf": true + }, { + "value": 610125, + "label": "户县", + "isLeaf": true + }] + }, { + "value": 610200, + "label": "铜川市", + "children": [{ + "value": 610202, + "label": "王益区", + "isLeaf": true + }, { + "value": 610203, + "label": "印台区", + "isLeaf": true + }, { + "value": 610204, + "label": "耀州区", + "isLeaf": true + }, { + "value": 610222, + "label": "宜君县", + "isLeaf": true + }] + }, { + "value": 610300, + "label": "宝鸡市", + "children": [{ + "value": 610302, + "label": "渭滨区", + "isLeaf": true + }, { + "value": 610303, + "label": "金台区", + "isLeaf": true + }, { + "value": 610304, + "label": "陈仓区", + "isLeaf": true + }, { + "value": 610322, + "label": "凤翔县", + "isLeaf": true + }, { + "value": 610323, + "label": "岐山县", + "isLeaf": true + }, { + "value": 610324, + "label": "扶风县", + "isLeaf": true + }, { + "value": 610326, + "label": "眉县", + "isLeaf": true + }, { + "value": 610327, + "label": "陇县", + "isLeaf": true + }, { + "value": 610328, + "label": "千阳县", + "isLeaf": true + }, { + "value": 610329, + "label": "麟游县", + "isLeaf": true + }, { + "value": 610330, + "label": "凤县", + "isLeaf": true + }, { + "value": 610331, + "label": "太白县", + "isLeaf": true + }] + }, { + "value": 610400, + "label": "咸阳市", + "children": [{ + "value": 610402, + "label": "秦都区", + "isLeaf": true + }, { + "value": 610403, + "label": "杨陵区", + "isLeaf": true + }, { + "value": 610404, + "label": "渭城区", + "isLeaf": true + }, { + "value": 610422, + "label": "三原县", + "isLeaf": true + }, { + "value": 610423, + "label": "泾阳县", + "isLeaf": true + }, { + "value": 610424, + "label": "乾县", + "isLeaf": true + }, { + "value": 610425, + "label": "礼泉县", + "isLeaf": true + }, { + "value": 610426, + "label": "永寿县", + "isLeaf": true + }, { + "value": 610427, + "label": "彬县", + "isLeaf": true + }, { + "value": 610428, + "label": "长武县", + "isLeaf": true + }, { + "value": 610429, + "label": "旬邑县", + "isLeaf": true + }, { + "value": 610430, + "label": "淳化县", + "isLeaf": true + }, { + "value": 610431, + "label": "武功县", + "isLeaf": true + }, { + "value": 610481, + "label": "兴平市", + "isLeaf": true + }] + }, { + "value": 610500, + "label": "渭南市", + "children": [{ + "value": 610502, + "label": "临渭区", + "isLeaf": true + }, { + "value": 610503, + "label": "华州区", + "isLeaf": true + }, { + "value": 610522, + "label": "潼关县", + "isLeaf": true + }, { + "value": 610523, + "label": "大荔县", + "isLeaf": true + }, { + "value": 610524, + "label": "合阳县", + "isLeaf": true + }, { + "value": 610525, + "label": "澄城县", + "isLeaf": true + }, { + "value": 610526, + "label": "蒲城县", + "isLeaf": true + }, { + "value": 610527, + "label": "白水县", + "isLeaf": true + }, { + "value": 610528, + "label": "富平县", + "isLeaf": true + }, { + "value": 610581, + "label": "韩城市", + "isLeaf": true + }, { + "value": 610582, + "label": "华阴市", + "isLeaf": true + }] + }, { + "value": 610600, + "label": "延安市", + "children": [{ + "value": 610602, + "label": "宝塔区", + "isLeaf": true + }, { + "value": 610603, + "label": "安塞区", + "isLeaf": true + }, { + "value": 610621, + "label": "延长县", + "isLeaf": true + }, { + "value": 610622, + "label": "延川县", + "isLeaf": true + }, { + "value": 610623, + "label": "子长县", + "isLeaf": true + }, { + "value": 610625, + "label": "志丹县", + "isLeaf": true + }, { + "value": 610626, + "label": "吴起县", + "isLeaf": true + }, { + "value": 610627, + "label": "甘泉县", + "isLeaf": true + }, { + "value": 610628, + "label": "富县", + "isLeaf": true + }, { + "value": 610629, + "label": "洛川县", + "isLeaf": true + }, { + "value": 610630, + "label": "宜川县", + "isLeaf": true + }, { + "value": 610631, + "label": "黄龙县", + "isLeaf": true + }, { + "value": 610632, + "label": "黄陵县", + "isLeaf": true + }] + }, { + "value": 610700, + "label": "汉中市", + "children": [{ + "value": 610702, + "label": "汉台区", + "isLeaf": true + }, { + "value": 610721, + "label": "南郑县", + "isLeaf": true + }, { + "value": 610722, + "label": "城固县", + "isLeaf": true + }, { + "value": 610723, + "label": "洋县", + "isLeaf": true + }, { + "value": 610724, + "label": "西乡县", + "isLeaf": true + }, { + "value": 610725, + "label": "勉县", + "isLeaf": true + }, { + "value": 610726, + "label": "宁强县", + "isLeaf": true + }, { + "value": 610727, + "label": "略阳县", + "isLeaf": true + }, { + "value": 610728, + "label": "镇巴县", + "isLeaf": true + }, { + "value": 610729, + "label": "留坝县", + "isLeaf": true + }, { + "value": 610730, + "label": "佛坪县", + "isLeaf": true + }] + }, { + "value": 610800, + "label": "榆林市", + "children": [{ + "value": 610802, + "label": "榆阳区", + "isLeaf": true + }, { + "value": 610803, + "label": "横山区", + "isLeaf": true + }, { + "value": 610821, + "label": "神木县", + "isLeaf": true + }, { + "value": 610822, + "label": "府谷县", + "isLeaf": true + }, { + "value": 610824, + "label": "靖边县", + "isLeaf": true + }, { + "value": 610825, + "label": "定边县", + "isLeaf": true + }, { + "value": 610826, + "label": "绥德县", + "isLeaf": true + }, { + "value": 610827, + "label": "米脂县", + "isLeaf": true + }, { + "value": 610828, + "label": "佳县", + "isLeaf": true + }, { + "value": 610829, + "label": "吴堡县", + "isLeaf": true + }, { + "value": 610830, + "label": "清涧县", + "isLeaf": true + }, { + "value": 610831, + "label": "子洲县", + "isLeaf": true + }] + }, { + "value": 610900, + "label": "安康市", + "children": [{ + "value": 610902, + "label": "汉滨区", + "isLeaf": true + }, { + "value": 610921, + "label": "汉阴县", + "isLeaf": true + }, { + "value": 610922, + "label": "石泉县", + "isLeaf": true + }, { + "value": 610923, + "label": "宁陕县", + "isLeaf": true + }, { + "value": 610924, + "label": "紫阳县", + "isLeaf": true + }, { + "value": 610925, + "label": "岚皋县", + "isLeaf": true + }, { + "value": 610926, + "label": "平利县", + "isLeaf": true + }, { + "value": 610927, + "label": "镇坪县", + "isLeaf": true + }, { + "value": 610928, + "label": "旬阳县", + "isLeaf": true + }, { + "value": 610929, + "label": "白河县", + "isLeaf": true + }] + }, { + "value": 611000, + "label": "商洛市", + "children": [{ + "value": 611002, + "label": "商州区", + "isLeaf": true + }, { + "value": 611021, + "label": "洛南县", + "isLeaf": true + }, { + "value": 611022, + "label": "丹凤县", + "isLeaf": true + }, { + "value": 611023, + "label": "商南县", + "isLeaf": true + }, { + "value": 611024, + "label": "山阳县", + "isLeaf": true + }, { + "value": 611025, + "label": "镇安县", + "isLeaf": true + }, { + "value": 611026, + "label": "柞水县", + "isLeaf": true + }] + }] +}, { + "value": 620000, + "label": "甘肃省", + "children": [{ + "value": 620100, + "label": "兰州市", + "children": [{ + "value": 620102, + "label": "城关区", + "isLeaf": true + }, { + "value": 620103, + "label": "七里河区", + "isLeaf": true + }, { + "value": 620104, + "label": "西固区", + "isLeaf": true + }, { + "value": 620105, + "label": "安宁区", + "isLeaf": true + }, { + "value": 620111, + "label": "红古区", + "isLeaf": true + }, { + "value": 620121, + "label": "永登县", + "isLeaf": true + }, { + "value": 620122, + "label": "皋兰县", + "isLeaf": true + }, { + "value": 620123, + "label": "榆中县", + "isLeaf": true + }] + }, { + "value": 620201, + "label": "嘉峪关市", + "children": [{ + "value": 620201100, + "label": "新城镇", + "isLeaf": true + }, { + "value": 620201101, + "label": "峪泉镇", + "isLeaf": true + }, { + "value": 620201102, + "label": "文殊镇", + "isLeaf": true + }, { + "value": 620201401, + "label": "雄关区", + "isLeaf": true + }, { + "value": 620201402, + "label": "镜铁区", + "isLeaf": true + }, { + "value": 620201403, + "label": "长城区", + "isLeaf": true + }] + }, { + "value": 620300, + "label": "金昌市", + "children": [{ + "value": 620302, + "label": "金川区", + "isLeaf": true + }, { + "value": 620321, + "label": "永昌县", + "isLeaf": true + }] + }, { + "value": 620400, + "label": "白银市", + "children": [{ + "value": 620402, + "label": "白银区", + "isLeaf": true + }, { + "value": 620403, + "label": "平川区", + "isLeaf": true + }, { + "value": 620421, + "label": "靖远县", + "isLeaf": true + }, { + "value": 620422, + "label": "会宁县", + "isLeaf": true + }, { + "value": 620423, + "label": "景泰县", + "isLeaf": true + }] + }, { + "value": 620500, + "label": "天水市", + "children": [{ + "value": 620502, + "label": "秦州区", + "isLeaf": true + }, { + "value": 620503, + "label": "麦积区", + "isLeaf": true + }, { + "value": 620521, + "label": "清水县", + "isLeaf": true + }, { + "value": 620522, + "label": "秦安县", + "isLeaf": true + }, { + "value": 620523, + "label": "甘谷县", + "isLeaf": true + }, { + "value": 620524, + "label": "武山县", + "isLeaf": true + }, { + "value": 620525, + "label": "张家川回族自治县", + "isLeaf": true + }] + }, { + "value": 620600, + "label": "武威市", + "children": [{ + "value": 620602, + "label": "凉州区", + "isLeaf": true + }, { + "value": 620621, + "label": "民勤县", + "isLeaf": true + }, { + "value": 620622, + "label": "古浪县", + "isLeaf": true + }, { + "value": 620623, + "label": "天祝藏族自治县", + "isLeaf": true + }] + }, { + "value": 620700, + "label": "张掖市", + "children": [{ + "value": 620702, + "label": "甘州区", + "isLeaf": true + }, { + "value": 620721, + "label": "肃南裕固族自治县", + "isLeaf": true + }, { + "value": 620722, + "label": "民乐县", + "isLeaf": true + }, { + "value": 620723, + "label": "临泽县", + "isLeaf": true + }, { + "value": 620724, + "label": "高台县", + "isLeaf": true + }, { + "value": 620725, + "label": "山丹县", + "isLeaf": true + }] + }, { + "value": 620800, + "label": "平凉市", + "children": [{ + "value": 620802, + "label": "崆峒区", + "isLeaf": true + }, { + "value": 620821, + "label": "泾川县", + "isLeaf": true + }, { + "value": 620822, + "label": "灵台县", + "isLeaf": true + }, { + "value": 620823, + "label": "崇信县", + "isLeaf": true + }, { + "value": 620824, + "label": "华亭县", + "isLeaf": true + }, { + "value": 620825, + "label": "庄浪县", + "isLeaf": true + }, { + "value": 620826, + "label": "静宁县", + "isLeaf": true + }] + }, { + "value": 620900, + "label": "酒泉市", + "children": [{ + "value": 620902, + "label": "肃州区", + "isLeaf": true + }, { + "value": 620921, + "label": "金塔县", + "isLeaf": true + }, { + "value": 620922, + "label": "瓜州县", + "isLeaf": true + }, { + "value": 620923, + "label": "肃北蒙古族自治县", + "isLeaf": true + }, { + "value": 620924, + "label": "阿克塞哈萨克族自治县", + "isLeaf": true + }, { + "value": 620981, + "label": "玉门市", + "isLeaf": true + }, { + "value": 620982, + "label": "敦煌市", + "isLeaf": true + }] + }, { + "value": 621000, + "label": "庆阳市", + "children": [{ + "value": 621002, + "label": "西峰区", + "isLeaf": true + }, { + "value": 621021, + "label": "庆城县", + "isLeaf": true + }, { + "value": 621022, + "label": "环县", + "isLeaf": true + }, { + "value": 621023, + "label": "华池县", + "isLeaf": true + }, { + "value": 621024, + "label": "合水县", + "isLeaf": true + }, { + "value": 621025, + "label": "正宁县", + "isLeaf": true + }, { + "value": 621026, + "label": "宁县", + "isLeaf": true + }, { + "value": 621027, + "label": "镇原县", + "isLeaf": true + }] + }, { + "value": 621100, + "label": "定西市", + "children": [{ + "value": 621102, + "label": "安定区", + "isLeaf": true + }, { + "value": 621121, + "label": "通渭县", + "isLeaf": true + }, { + "value": 621122, + "label": "陇西县", + "isLeaf": true + }, { + "value": 621123, + "label": "渭源县", + "isLeaf": true + }, { + "value": 621124, + "label": "临洮县", + "isLeaf": true + }, { + "value": 621125, + "label": "漳县", + "isLeaf": true + }, { + "value": 621126, + "label": "岷县", + "isLeaf": true + }] + }, { + "value": 621200, + "label": "陇南市", + "children": [{ + "value": 621202, + "label": "武都区", + "isLeaf": true + }, { + "value": 621221, + "label": "成县", + "isLeaf": true + }, { + "value": 621222, + "label": "文县", + "isLeaf": true + }, { + "value": 621223, + "label": "宕昌县", + "isLeaf": true + }, { + "value": 621224, + "label": "康县", + "isLeaf": true + }, { + "value": 621225, + "label": "西和县", + "isLeaf": true + }, { + "value": 621226, + "label": "礼县", + "isLeaf": true + }, { + "value": 621227, + "label": "徽县", + "isLeaf": true + }, { + "value": 621228, + "label": "两当县", + "isLeaf": true + }] + }, { + "value": 622900, + "label": "临夏回族自治州", + "children": [{ + "value": 622901, + "label": "临夏市", + "isLeaf": true + }, { + "value": 622921, + "label": "临夏县", + "isLeaf": true + }, { + "value": 622922, + "label": "康乐县", + "isLeaf": true + }, { + "value": 622923, + "label": "永靖县", + "isLeaf": true + }, { + "value": 622924, + "label": "广河县", + "isLeaf": true + }, { + "value": 622925, + "label": "和政县", + "isLeaf": true + }, { + "value": 622926, + "label": "东乡族自治县", + "isLeaf": true + }, { + "value": 622927, + "label": "积石山保安族东乡族撒拉族自治县", + "isLeaf": true + }] + }, { + "value": 623000, + "label": "甘南藏族自治州", + "children": [{ + "value": 623001, + "label": "合作市", + "isLeaf": true + }, { + "value": 623021, + "label": "临潭县", + "isLeaf": true + }, { + "value": 623022, + "label": "卓尼县", + "isLeaf": true + }, { + "value": 623023, + "label": "舟曲县", + "isLeaf": true + }, { + "value": 623024, + "label": "迭部县", + "isLeaf": true + }, { + "value": 623025, + "label": "玛曲县", + "isLeaf": true + }, { + "value": 623026, + "label": "碌曲县", + "isLeaf": true + }, { + "value": 623027, + "label": "夏河县", + "isLeaf": true + }] + }] +}, { + "value": 630000, + "label": "青海省", + "children": [{ + "value": 630100, + "label": "西宁市", + "children": [{ + "value": 630102, + "label": "城东区", + "isLeaf": true + }, { + "value": 630103, + "label": "城中区", + "isLeaf": true + }, { + "value": 630104, + "label": "城西区", + "isLeaf": true + }, { + "value": 630105, + "label": "城北区", + "isLeaf": true + }, { + "value": 630121, + "label": "大通回族土族自治县", + "isLeaf": true + }, { + "value": 630122, + "label": "湟中县", + "isLeaf": true + }, { + "value": 630123, + "label": "湟源县", + "isLeaf": true + }] + }, { + "value": 630200, + "label": "海东市", + "children": [{ + "value": 630202, + "label": "乐都区", + "isLeaf": true + }, { + "value": 630203, + "label": "平安区", + "isLeaf": true + }, { + "value": 630222, + "label": "民和回族土族自治县", + "isLeaf": true + }, { + "value": 630223, + "label": "互助土族自治县", + "isLeaf": true + }, { + "value": 630224, + "label": "化隆回族自治县", + "isLeaf": true + }, { + "value": 630225, + "label": "循化撒拉族自治县", + "isLeaf": true + }] + }, { + "value": 632200, + "label": "海北藏族自治州", + "children": [{ + "value": 632221, + "label": "门源回族自治县", + "isLeaf": true + }, { + "value": 632222, + "label": "祁连县", + "isLeaf": true + }, { + "value": 632223, + "label": "海晏县", + "isLeaf": true + }, { + "value": 632224, + "label": "刚察县", + "isLeaf": true + }] + }, { + "value": 632300, + "label": "黄南藏族自治州", + "children": [{ + "value": 632321, + "label": "同仁县", + "isLeaf": true + }, { + "value": 632322, + "label": "尖扎县", + "isLeaf": true + }, { + "value": 632323, + "label": "泽库县", + "isLeaf": true + }, { + "value": 632324, + "label": "河南蒙古族自治县", + "isLeaf": true + }] + }, { + "value": 632500, + "label": "海南藏族自治州", + "children": [{ + "value": 632521, + "label": "共和县", + "isLeaf": true + }, { + "value": 632522, + "label": "同德县", + "isLeaf": true + }, { + "value": 632523, + "label": "贵德县", + "isLeaf": true + }, { + "value": 632524, + "label": "兴海县", + "isLeaf": true + }, { + "value": 632525, + "label": "贵南县", + "isLeaf": true + }] + }, { + "value": 632600, + "label": "果洛藏族自治州", + "children": [{ + "value": 632621, + "label": "玛沁县", + "isLeaf": true + }, { + "value": 632622, + "label": "班玛县", + "isLeaf": true + }, { + "value": 632623, + "label": "甘德县", + "isLeaf": true + }, { + "value": 632624, + "label": "达日县", + "isLeaf": true + }, { + "value": 632625, + "label": "久治县", + "isLeaf": true + }, { + "value": 632626, + "label": "玛多县", + "isLeaf": true + }] + }, { + "value": 632700, + "label": "玉树藏族自治州", + "children": [{ + "value": 632701, + "label": "玉树市", + "isLeaf": true + }, { + "value": 632722, + "label": "杂多县", + "isLeaf": true + }, { + "value": 632723, + "label": "称多县", + "isLeaf": true + }, { + "value": 632724, + "label": "治多县", + "isLeaf": true + }, { + "value": 632725, + "label": "囊谦县", + "isLeaf": true + }, { + "value": 632726, + "label": "曲麻莱县", + "isLeaf": true + }] + }, { + "value": 632800, + "label": "海西蒙古族藏族自治州", + "children": [{ + "value": 632801, + "label": "格尔木市", + "isLeaf": true + }, { + "value": 632802, + "label": "德令哈市", + "isLeaf": true + }, { + "value": 632821, + "label": "乌兰县", + "isLeaf": true + }, { + "value": 632822, + "label": "都兰县", + "isLeaf": true + }, { + "value": 632823, + "label": "天峻县", + "isLeaf": true + }] + }] +}, { + "value": 640000, + "label": "宁夏回族自治区", + "children": [{ + "value": 640100, + "label": "银川市", + "children": [{ + "value": 640104, + "label": "兴庆区", + "isLeaf": true + }, { + "value": 640105, + "label": "西夏区", + "isLeaf": true + }, { + "value": 640106, + "label": "金凤区", + "isLeaf": true + }, { + "value": 640121, + "label": "永宁县", + "isLeaf": true + }, { + "value": 640122, + "label": "贺兰县", + "isLeaf": true + }, { + "value": 640181, + "label": "灵武市", + "isLeaf": true + }] + }, { + "value": 640200, + "label": "石嘴山市", + "children": [{ + "value": 640202, + "label": "大武口区", + "isLeaf": true + }, { + "value": 640205, + "label": "惠农区", + "isLeaf": true + }, { + "value": 640221, + "label": "平罗县", + "isLeaf": true + }] + }, { + "value": 640300, + "label": "吴忠市", + "children": [{ + "value": 640302, + "label": "利通区", + "isLeaf": true + }, { + "value": 640303, + "label": "红寺堡区", + "isLeaf": true + }, { + "value": 640323, + "label": "盐池县", + "isLeaf": true + }, { + "value": 640324, + "label": "同心县", + "isLeaf": true + }, { + "value": 640381, + "label": "青铜峡市", + "isLeaf": true + }] + }, { + "value": 640400, + "label": "固原市", + "children": [{ + "value": 640402, + "label": "原州区", + "isLeaf": true + }, { + "value": 640422, + "label": "西吉县", + "isLeaf": true + }, { + "value": 640423, + "label": "隆德县", + "isLeaf": true + }, { + "value": 640424, + "label": "泾源县", + "isLeaf": true + }, { + "value": 640425, + "label": "彭阳县", + "isLeaf": true + }] + }, { + "value": 640500, + "label": "中卫市", + "children": [{ + "value": 640502, + "label": "沙坡头区", + "isLeaf": true + }, { + "value": 640521, + "label": "中宁县", + "isLeaf": true + }, { + "value": 640522, + "label": "海原县", + "isLeaf": true + }] + }] +}, { + "value": 650000, + "label": "新疆维吾尔自治区", + "children": [{ + "value": 650100, + "label": "乌鲁木齐市", + "children": [{ + "value": 650102, + "label": "天山区", + "isLeaf": true + }, { + "value": 650103, + "label": "沙依巴克区", + "isLeaf": true + }, { + "value": 650104, + "label": "新市区", + "isLeaf": true + }, { + "value": 650105, + "label": "水磨沟区", + "isLeaf": true + }, { + "value": 650106, + "label": "头屯河区", + "isLeaf": true + }, { + "value": 650107, + "label": "达坂城区", + "isLeaf": true + }, { + "value": 650109, + "label": "米东区", + "isLeaf": true + }, { + "value": 650121, + "label": "乌鲁木齐县", + "isLeaf": true + }] + }, { + "value": 650200, + "label": "克拉玛依市", + "children": [{ + "value": 650202, + "label": "独山子区", + "isLeaf": true + }, { + "value": 650203, + "label": "克拉玛依区", + "isLeaf": true + }, { + "value": 650204, + "label": "白碱滩区", + "isLeaf": true + }, { + "value": 650205, + "label": "乌尔禾区", + "isLeaf": true + }] + }, { + "value": 650400, + "label": "吐鲁番市", + "children": [{ + "value": 650402, + "label": "高昌区", + "isLeaf": true + }, { + "value": 650421, + "label": "鄯善县", + "isLeaf": true + }, { + "value": 650422, + "label": "托克逊县", + "isLeaf": true + }] + }, { + "value": 650500, + "label": "哈密市", + "children": [{ + "value": 650502, + "label": "伊州区", + "isLeaf": true + }, { + "value": 650521, + "label": "巴里坤哈萨克自治县", + "isLeaf": true + }, { + "value": 650522, + "label": "伊吾县", + "isLeaf": true + }] + }, { + "value": 652300, + "label": "昌吉回族自治州", + "children": [{ + "value": 652301, + "label": "昌吉市", + "isLeaf": true + }, { + "value": 652302, + "label": "阜康市", + "isLeaf": true + }, { + "value": 652323, + "label": "呼图壁县", + "isLeaf": true + }, { + "value": 652324, + "label": "玛纳斯县", + "isLeaf": true + }, { + "value": 652325, + "label": "奇台县", + "isLeaf": true + }, { + "value": 652327, + "label": "吉木萨尔县", + "isLeaf": true + }, { + "value": 652328, + "label": "木垒哈萨克自治县", + "isLeaf": true + }] + }, { + "value": 652700, + "label": "博尔塔拉蒙古自治州", + "children": [{ + "value": 652701, + "label": "博乐市", + "isLeaf": true + }, { + "value": 652702, + "label": "阿拉山口市", + "isLeaf": true + }, { + "value": 652722, + "label": "精河县", + "isLeaf": true + }, { + "value": 652723, + "label": "温泉县", + "isLeaf": true + }] + }, { + "value": 652800, + "label": "巴音郭楞蒙古自治州", + "children": [{ + "value": 652801, + "label": "库尔勒市", + "isLeaf": true + }, { + "value": 652822, + "label": "轮台县", + "isLeaf": true + }, { + "value": 652823, + "label": "尉犁县", + "isLeaf": true + }, { + "value": 652824, + "label": "若羌县", + "isLeaf": true + }, { + "value": 652825, + "label": "且末县", + "isLeaf": true + }, { + "value": 652826, + "label": "焉耆回族自治县", + "isLeaf": true + }, { + "value": 652827, + "label": "和静县", + "isLeaf": true + }, { + "value": 652828, + "label": "和硕县", + "isLeaf": true + }, { + "value": 652829, + "label": "博湖县", + "isLeaf": true + }] + }, { + "value": 652900, + "label": "阿克苏地区", + "children": [{ + "value": 652901, + "label": "阿克苏市", + "isLeaf": true + }, { + "value": 652922, + "label": "温宿县", + "isLeaf": true + }, { + "value": 652923, + "label": "库车县", + "isLeaf": true + }, { + "value": 652924, + "label": "沙雅县", + "isLeaf": true + }, { + "value": 652925, + "label": "新和县", + "isLeaf": true + }, { + "value": 652926, + "label": "拜城县", + "isLeaf": true + }, { + "value": 652927, + "label": "乌什县", + "isLeaf": true + }, { + "value": 652928, + "label": "阿瓦提县", + "isLeaf": true + }, { + "value": 652929, + "label": "柯坪县", + "isLeaf": true + }] + }, { + "value": 653000, + "label": "克孜勒苏柯尔克孜自治州", + "children": [{ + "value": 653001, + "label": "阿图什市", + "isLeaf": true + }, { + "value": 653022, + "label": "阿克陶县", + "isLeaf": true + }, { + "value": 653023, + "label": "阿合奇县", + "isLeaf": true + }, { + "value": 653024, + "label": "乌恰县", + "isLeaf": true + }] + }, { + "value": 653100, + "label": "喀什地区", + "children": [{ + "value": 653101, + "label": "喀什市", + "isLeaf": true + }, { + "value": 653121, + "label": "疏附县", + "isLeaf": true + }, { + "value": 653122, + "label": "疏勒县", + "isLeaf": true + }, { + "value": 653123, + "label": "英吉沙县", + "isLeaf": true + }, { + "value": 653124, + "label": "泽普县", + "isLeaf": true + }, { + "value": 653125, + "label": "莎车县", + "isLeaf": true + }, { + "value": 653126, + "label": "叶城县", + "isLeaf": true + }, { + "value": 653127, + "label": "麦盖提县", + "isLeaf": true + }, { + "value": 653128, + "label": "岳普湖县", + "isLeaf": true + }, { + "value": 653129, + "label": "伽师县", + "isLeaf": true + }, { + "value": 653130, + "label": "巴楚县", + "isLeaf": true + }, { + "value": 653131, + "label": "塔什库尔干塔吉克自治县", + "isLeaf": true + }] + }, { + "value": 653200, + "label": "和田地区", + "children": [{ + "value": 653201, + "label": "和田市", + "isLeaf": true + }, { + "value": 653221, + "label": "和田县", + "isLeaf": true + }, { + "value": 653222, + "label": "墨玉县", + "isLeaf": true + }, { + "value": 653223, + "label": "皮山县", + "isLeaf": true + }, { + "value": 653224, + "label": "洛浦县", + "isLeaf": true + }, { + "value": 653225, + "label": "策勒县", + "isLeaf": true + }, { + "value": 653226, + "label": "于田县", + "isLeaf": true + }, { + "value": 653227, + "label": "民丰县", + "isLeaf": true + }] + }, { + "value": 654000, + "label": "伊犁哈萨克自治州", + "children": [{ + "value": 654002, + "label": "伊宁市", + "isLeaf": true + }, { + "value": 654003, + "label": "奎屯市", + "isLeaf": true + }, { + "value": 654004, + "label": "霍尔果斯市", + "isLeaf": true + }, { + "value": 654021, + "label": "伊宁县", + "isLeaf": true + }, { + "value": 654022, + "label": "察布查尔锡伯自治县", + "isLeaf": true + }, { + "value": 654023, + "label": "霍城县", + "isLeaf": true + }, { + "value": 654024, + "label": "巩留县", + "isLeaf": true + }, { + "value": 654025, + "label": "新源县", + "isLeaf": true + }, { + "value": 654026, + "label": "昭苏县", + "isLeaf": true + }, { + "value": 654027, + "label": "特克斯县", + "isLeaf": true + }, { + "value": 654028, + "label": "尼勒克县", + "isLeaf": true + }] + }, { + "value": 654200, + "label": "塔城地区", + "children": [{ + "value": 654201, + "label": "塔城市", + "isLeaf": true + }, { + "value": 654202, + "label": "乌苏市", + "isLeaf": true + }, { + "value": 654221, + "label": "额敏县", + "isLeaf": true + }, { + "value": 654223, + "label": "沙湾县", + "isLeaf": true + }, { + "value": 654224, + "label": "托里县", + "isLeaf": true + }, { + "value": 654225, + "label": "裕民县", + "isLeaf": true + }, { + "value": 654226, + "label": "和布克赛尔蒙古自治县", + "isLeaf": true + }] + }, { + "value": 654300, + "label": "阿勒泰地区", + "children": [{ + "value": 654301, + "label": "阿勒泰市", + "isLeaf": true + }, { + "value": 654321, + "label": "布尔津县", + "isLeaf": true + }, { + "value": 654322, + "label": "富蕴县", + "isLeaf": true + }, { + "value": 654323, + "label": "福海县", + "isLeaf": true + }, { + "value": 654324, + "label": "哈巴河县", + "isLeaf": true + }, { + "value": 654325, + "label": "青河县", + "isLeaf": true + }, { + "value": 654326, + "label": "吉木乃县", + "isLeaf": true + }] + }, { + "value": 659000, + "label": "自治区直辖县级行政区划", + "children": [{ + "value": 659001, + "label": "石河子市", + "isLeaf": true + }, { + "value": 659002, + "label": "阿拉尔市", + "isLeaf": true + }, { + "value": 659003, + "label": "图木舒克市", + "isLeaf": true + }, { + "value": 659004, + "label": "五家渠市", + "isLeaf": true + }, { + "value": 659006, + "label": "铁门关市", + "isLeaf": true + }] + }] +}, { + "value": 710000, + "label": "台湾省" +}, { + "value": 810000, + "label": "香港特别行政区" +}, { + "value": 820000, + "label": "澳门特别行政区" +}] diff --git a/src/assets/login/1.png b/src/assets/login/1.png new file mode 100644 index 0000000..100f395 Binary files /dev/null and b/src/assets/login/1.png differ diff --git a/src/assets/login/2.png b/src/assets/login/2.png new file mode 100644 index 0000000..919adc6 Binary files /dev/null and b/src/assets/login/2.png differ diff --git a/src/assets/login/3.png b/src/assets/login/3.png new file mode 100644 index 0000000..867a4c6 Binary files /dev/null and b/src/assets/login/3.png differ diff --git a/src/assets/logo.jpg b/src/assets/logo.jpg new file mode 100644 index 0000000..b922491 Binary files /dev/null and b/src/assets/logo.jpg differ diff --git a/src/environments/environment.dev.ts b/src/environments/environment.dev.ts new file mode 100644 index 0000000..ef9caa8 --- /dev/null +++ b/src/environments/environment.dev.ts @@ -0,0 +1,5 @@ +export const environment = { + production: false, + baseUrl: 'https://test-oil.dctpay.com/brest/', // 测试环境服务器地址(请求数据地址) + imageUrl: 'https://test-oil.dctpay.com/filesystem/', +}; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100644 index 0000000..ee8153d --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,5 @@ +export const environment = { + production: true, + baseUrl: 'https://oil.dctpay.com/brest/', // 测试环境服务器地址(请求数据地址) + imageUrl: 'https://oil.dctpay.com/filesystem/', +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 0000000..a5759c2 --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,18 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false, + baseUrl: 'http://localhost:9850/server/', // 测试环境服务器地址(请求数据地址) + imageUrl: 'https://oa.dctpay.com/filesystem/', +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack fram es such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/src/favicon.ico b/src/favicon.ico new file mode 100644 index 0000000..30ce999 Binary files /dev/null and b/src/favicon.ico differ diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..c15ce14 --- /dev/null +++ b/src/index.html @@ -0,0 +1,13 @@ + + + + + OA审批 + + + + + + + + diff --git a/src/main.server.ts b/src/main.server.ts new file mode 100644 index 0000000..4b9d4d1 --- /dev/null +++ b/src/main.server.ts @@ -0,0 +1,7 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { AppComponent } from './app/app.component'; +import { config } from './app/app.config.server'; + +const bootstrap = () => bootstrapApplication(AppComponent, config); + +export default bootstrap; diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..35b00f3 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/src/styles.less b/src/styles.less new file mode 100644 index 0000000..c1f862f --- /dev/null +++ b/src/styles.less @@ -0,0 +1,15 @@ + +// Custom Theming for NG-ZORRO +// For more information: https://ng.ant.design/docs/customize-theme/en +@import "../node_modules/ng-zorro-antd/ng-zorro-antd.less"; +body, html { + margin: 0; + padding: 0; + height: 100%; + overflow: hidden; +} +// Override less variables to here +// View all variables: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/components/style/themes/default.less + +// @primary-color: #1890ff; +/* You can add global styles to this file, and also import other style files */ diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..7dc7284 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [ + "node" + ] + }, + "files": [ + "src/main.ts", + "src/main.server.ts", + "server.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..f37b67f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,33 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": [ + "ES2022", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/tsconfig.spec.json b/tsconfig.spec.json new file mode 100644 index 0000000..be7e9da --- /dev/null +++ b/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +}