diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 5444332..48040e9 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -30,7 +30,7 @@ jobs: username: ${{ secrets.SSH_USERNAME }} password: ${{ secrets.SSH_PASSWORD }} port: ${{ secrets.SSH_PORT }} - source: "admin.tar,index.tar" + source: "index.tar" target: "/www/wwwroot/celess.cn" - name: Run SSH command diff --git a/admin/README.md b/admin/README.md deleted file mode 100644 index e6f3f98..0000000 --- a/admin/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Admin - -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.0.4. - -## Development server - -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. - -## Code scaffolding - -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. - -## Build - -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. - -## Running unit tests - -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/admin/angular.json b/admin/angular.json deleted file mode 100644 index 7ba79cb..0000000 --- a/admin/angular.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "version": 1, - "newProjectRoot": "projects", - "projects": { - "admin": { - "projectType": "application", - "schematics": {}, - "root": "", - "sourceRoot": "src", - "prefix": "app", - "architect": { - "build": { - "builder": "@angular-devkit/build-angular:browser", - "options": { - "outputPath": "dist/admin/", - "index": "src/index.html", - "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "tsconfig.app.json", - "aot": false, - "assets": [ - "src/favicon.ico", - "src/assets", - { - "glob": "**/*", - "input": "./node_modules/@ant-design/icons-angular/src/inline-svg/", - "output": "/assets/" - } - ], - "styles": [ - "./node_modules/ng-zorro-antd/ng-zorro-antd.min.css", - "src/styles.css" - ], - "scripts": [] - }, - "configurations": { - "production": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "extractCss": true, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, - "budgets": [ - { - "type": "initial", - "maximumWarning": "2mb", - "maximumError": "5mb" - } - ] - } - } - }, - "serve": { - "builder": "@angular-devkit/build-angular:dev-server", - "options": { - "browserTarget": "admin:build" - }, - "configurations": { - "production": { - "browserTarget": "admin:build:production" - } - } - }, - "extract-i18n": { - "builder": "@angular-devkit/build-angular:extract-i18n", - "options": { - "browserTarget": "admin:build" - } - }, - "test": { - "builder": "@angular-devkit/build-angular:karma", - "options": { - "main": "src/test.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "tsconfig.spec.json", - "karmaConfig": "karma.conf.js", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "./node_modules/ng-zorro-antd/ng-zorro-antd.min.css", - "src/styles.css" - ], - "scripts": [] - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": [ - "tsconfig.app.json", - "tsconfig.spec.json", - "e2e/tsconfig.json" - ], - "exclude": [ - "**/node_modules/**" - ] - } - }, - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "admin:serve" - }, - "configurations": { - "production": { - "devServerTarget": "admin:serve:production" - } - } - } - } - } - }, - "defaultProject": "admin", - "cli": { - "analytics": false - } -} \ No newline at end of file diff --git a/admin/browserslist b/admin/browserslist deleted file mode 100644 index 76c8736..0000000 --- a/admin/browserslist +++ /dev/null @@ -1,12 +0,0 @@ -# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. -# For additional information regarding the format and rule options, please see: -# https://github.com/browserslist/browserslist#queries - -# You can see what browsers were selected by your queries by running: -# npx browserslist - -> 0.5% -last 2 versions -Firefox ESR -not dead -not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/admin/e2e/protractor.conf.js b/admin/e2e/protractor.conf.js deleted file mode 100644 index 0c3d4ba..0000000 --- a/admin/e2e/protractor.conf.js +++ /dev/null @@ -1,32 +0,0 @@ -// @ts-check -// Protractor configuration file, see link for more information -// https://github.com/angular/protractor/blob/master/lib/config.ts - -const { SpecReporter } = require('jasmine-spec-reporter'); - -/** - * @type { import("protractor").Config } - */ -exports.config = { - allScriptsTimeout: 11000, - specs: [ - './src/**/*.e2e-spec.ts' - ], - capabilities: { - 'browserName': 'chrome' - }, - directConnect: true, - baseUrl: 'http://localhost:4200/', - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 30000, - print: function() {} - }, - onPrepare() { - require('ts-node').register({ - project: require('path').join(__dirname, './tsconfig.json') - }); - jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); - } -}; \ No newline at end of file diff --git a/admin/e2e/src/app.e2e-spec.ts b/admin/e2e/src/app.e2e-spec.ts deleted file mode 100644 index 01ebc2e..0000000 --- a/admin/e2e/src/app.e2e-spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { AppPage } from './app.po'; -import { browser, logging } from 'protractor'; - -describe('workspace-project App', () => { - let page: AppPage; - - beforeEach(() => { - page = new AppPage(); - }); - - it('should display welcome message', () => { - page.navigateTo(); - expect(page.getTitleText()).toEqual('Welcome to admin!'); - }); - - afterEach(async () => { - // Assert that there are no errors emitted from the browser - const logs = await browser.manage().logs().get(logging.Type.BROWSER); - expect(logs).not.toContain(jasmine.objectContaining({ - level: logging.Level.SEVERE, - } as logging.Entry)); - }); -}); diff --git a/admin/e2e/src/app.po.ts b/admin/e2e/src/app.po.ts deleted file mode 100644 index a8d0609..0000000 --- a/admin/e2e/src/app.po.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { browser, by, element } from 'protractor'; - -export class AppPage { - navigateTo() { - return browser.get(browser.baseUrl) as Promise; - } - - getTitleText() { - return element(by.css('app-root h1')).getText() as Promise; - } -} diff --git a/admin/e2e/tsconfig.json b/admin/e2e/tsconfig.json deleted file mode 100644 index 42987cd..0000000 --- a/admin/e2e/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "outDir": "../out-tsc/e2e", - "module": "commonjs", - "target": "es5", - "types": [ - "jasmine", - "jasminewd2", - "node" - ] - } -} diff --git a/admin/karma.conf.js b/admin/karma.conf.js deleted file mode 100644 index e47b22a..0000000 --- a/admin/karma.conf.js +++ /dev/null @@ -1,32 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), - require('@angular-devkit/build-angular/plugins/karma') - ], - client: { - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - coverageIstanbulReporter: { - dir: require('path').join(__dirname, './coverage/admin'), - reports: ['html', 'lcovonly', 'text-summary'], - fixWebpackSourcePaths: true - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false, - restartOnFileChange: true - }); -}; diff --git a/admin/package-lock.json b/admin/package-lock.json deleted file mode 100644 index c35db0f..0000000 --- a/admin/package-lock.json +++ /dev/null @@ -1,14126 +0,0 @@ -{ - "name": "admin", - "version": "0.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.901.1", - "resolved": "https://registry.npm.taobao.org/@angular-devkit/architect/download/@angular-devkit/architect-0.901.1.tgz", - "integrity": "sha1-tgv9KIiSYS46+Y6hYhpY07bvJos=", - "dev": true, - "requires": { - "@angular-devkit/core": "9.1.1", - "rxjs": "6.5.4" - }, - "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", - "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/build-angular": { - "version": "0.901.1", - "resolved": "https://registry.npm.taobao.org/@angular-devkit/build-angular/download/@angular-devkit/build-angular-0.901.1.tgz", - "integrity": "sha1-RvQWgofFvJlpqR0aKrBMlZad8Es=", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.901.1", - "@angular-devkit/build-optimizer": "0.901.1", - "@angular-devkit/build-webpack": "0.901.1", - "@angular-devkit/core": "9.1.1", - "@babel/core": "7.9.0", - "@babel/generator": "7.9.3", - "@babel/preset-env": "7.9.0", - "@babel/template": "7.8.6", - "@jsdevtools/coverage-istanbul-loader": "3.0.3", - "@ngtools/webpack": "9.1.1", - "ajv": "6.12.0", - "autoprefixer": "9.7.4", - "babel-loader": "8.0.6", - "browserslist": "^4.9.1", - "cacache": "15.0.0", - "caniuse-lite": "^1.0.30001032", - "circular-dependency-plugin": "5.2.0", - "copy-webpack-plugin": "5.1.1", - "core-js": "3.6.4", - "cssnano": "4.1.10", - "file-loader": "6.0.0", - "find-cache-dir": "3.3.1", - "glob": "7.1.6", - "jest-worker": "25.1.0", - "karma-source-map-support": "1.4.0", - "less": "3.11.1", - "less-loader": "5.0.0", - "license-webpack-plugin": "2.1.4", - "loader-utils": "2.0.0", - "mini-css-extract-plugin": "0.9.0", - "minimatch": "3.0.4", - "open": "7.0.3", - "parse5": "4.0.0", - "postcss": "7.0.27", - "postcss-import": "12.0.1", - "postcss-loader": "3.0.0", - "raw-loader": "4.0.0", - "regenerator-runtime": "0.13.5", - "rimraf": "3.0.2", - "rollup": "2.1.0", - "rxjs": "6.5.4", - "sass": "1.26.3", - "sass-loader": "8.0.2", - "semver": "7.1.3", - "source-map": "0.7.3", - "source-map-loader": "0.2.4", - "source-map-support": "0.5.16", - "speed-measure-webpack-plugin": "1.3.1", - "style-loader": "1.1.3", - "stylus": "0.54.7", - "stylus-loader": "3.0.2", - "terser": "4.6.10", - "terser-webpack-plugin": "2.3.5", - "tree-kill": "1.2.2", - "webpack": "4.42.0", - "webpack-dev-middleware": "3.7.2", - "webpack-dev-server": "3.10.3", - "webpack-merge": "4.2.2", - "webpack-sources": "1.4.3", - "webpack-subresource-integrity": "1.4.0", - "worker-plugin": "4.0.2" - }, - "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", - "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/build-optimizer": { - "version": "0.901.1", - "resolved": "https://registry.npm.taobao.org/@angular-devkit/build-optimizer/download/@angular-devkit/build-optimizer-0.901.1.tgz", - "integrity": "sha1-Sdc4XBj0mqzKslRasoKcTVLimxg=", - "dev": true, - "requires": { - "loader-utils": "2.0.0", - "source-map": "0.7.3", - "tslib": "1.11.1", - "typescript": "3.6.5", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "typescript": { - "version": "3.6.5", - "resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.6.5.tgz", - "integrity": "sha1-2uIBFKe0/0vWQtucjGmfKVPou9s=", - "dev": true - } - } - }, - "@angular-devkit/build-webpack": { - "version": "0.901.1", - "resolved": "https://registry.npm.taobao.org/@angular-devkit/build-webpack/download/@angular-devkit/build-webpack-0.901.1.tgz", - "integrity": "sha1-aVvsZi0EqMgy+4auE7Zk2FGE9Co=", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.901.1", - "@angular-devkit/core": "9.1.1", - "rxjs": "6.5.4" - }, - "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", - "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/core": { - "version": "9.1.1", - "resolved": "https://registry.npm.taobao.org/@angular-devkit/core/download/@angular-devkit/core-9.1.1.tgz?cache=0&sync_timestamp=1586377462210&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular-devkit%2Fcore%2Fdownload%2F%40angular-devkit%2Fcore-9.1.1.tgz", - "integrity": "sha1-atsEwX0Bq+pQa48r0EGqzdVp3E8=", - "dev": true, - "requires": { - "ajv": "6.12.0", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.5.4", - "source-map": "0.7.3" - }, - "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", - "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/schematics": { - "version": "9.1.1", - "resolved": "https://registry.npm.taobao.org/@angular-devkit/schematics/download/@angular-devkit/schematics-9.1.1.tgz", - "integrity": "sha1-juk6YpdBYnEAKYbb9I8IrQkRpH4=", - "dev": true, - "requires": { - "@angular-devkit/core": "9.1.1", - "ora": "4.0.3", - "rxjs": "6.5.4" - }, - "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", - "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular/animations": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/animations/download/@angular/animations-9.1.2.tgz?cache=0&sync_timestamp=1586994052489&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular%2Fanimations%2Fdownload%2F%40angular%2Fanimations-9.1.2.tgz", - "integrity": "sha1-AbtS1aiBNwG/rLupkzjYjPwNqbQ=" - }, - "@angular/cdk": { - "version": "9.2.1", - "resolved": "https://registry.npm.taobao.org/@angular/cdk/download/@angular/cdk-9.2.1.tgz", - "integrity": "sha1-mlkLjUZx/i+kdkgpe16jciZ9I48=", - "requires": { - "parse5": "^5.0.0" - }, - "dependencies": { - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz", - "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", - "optional": true - } - } - }, - "@angular/cli": { - "version": "9.1.1", - "resolved": "https://registry.npm.taobao.org/@angular/cli/download/@angular/cli-9.1.1.tgz", - "integrity": "sha1-W3EzGERvExXMKJ/tKOgICJG+dx0=", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.901.1", - "@angular-devkit/core": "9.1.1", - "@angular-devkit/schematics": "9.1.1", - "@schematics/angular": "9.1.1", - "@schematics/update": "0.901.1", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "4.1.1", - "ini": "1.3.5", - "inquirer": "7.1.0", - "npm-package-arg": "8.0.1", - "npm-pick-manifest": "6.0.0", - "open": "7.0.3", - "pacote": "9.5.12", - "read-package-tree": "5.3.1", - "rimraf": "3.0.2", - "semver": "7.1.3", - "symbol-observable": "1.2.0", - "universal-analytics": "0.4.20", - "uuid": "7.0.2" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-4.1.1.tgz", - "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", - "dev": true - }, - "uuid": { - "version": "7.0.2", - "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-7.0.2.tgz?cache=0&sync_timestamp=1585683718911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-7.0.2.tgz", - "integrity": "sha1-f/XCA0Z+kfXg2Fz8uq99LrvKm+Y=", - "dev": true - } - } - }, - "@angular/common": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/common/download/@angular/common-9.1.2.tgz?cache=0&sync_timestamp=1586994052015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular%2Fcommon%2Fdownload%2F%40angular%2Fcommon-9.1.2.tgz", - "integrity": "sha1-zsn7/FcrvPcV6ZRSOwSsSHAMGyw=" - }, - "@angular/compiler": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/compiler/download/@angular/compiler-9.1.2.tgz?cache=0&sync_timestamp=1586994051450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular%2Fcompiler%2Fdownload%2F%40angular%2Fcompiler-9.1.2.tgz", - "integrity": "sha1-UrIhIMo8fSfcz0I5yEkVitZPtDU=" - }, - "@angular/compiler-cli": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/compiler-cli/download/@angular/compiler-cli-9.1.2.tgz", - "integrity": "sha1-K43hSKrc1Y/NMdDxrTuYT0EvTII=", - "dev": true, - "requires": { - "canonical-path": "1.0.0", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.7.2", - "fs-extra": "4.0.2", - "magic-string": "^0.25.0", - "minimist": "^1.2.0", - "reflect-metadata": "^0.1.2", - "semver": "^6.3.0", - "source-map": "^0.6.1", - "sourcemap-codec": "^1.4.8", - "yargs": "15.3.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz", - "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1573488536792&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "15.3.0", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.3.0.tgz?cache=0&sync_timestamp=1584344069946&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.3.0.tgz", - "integrity": "sha1-QDr27cdbOuBL9myUICIouhGfCXY=", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.0" - } - }, - "yargs-parser": { - "version": "18.1.2", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.2.tgz", - "integrity": "sha1-L0gr6iE2294IYWg6vqd1bTC1BPE=", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "@angular/core": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/core/download/@angular/core-9.1.2.tgz?cache=0&sync_timestamp=1586994050075&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular%2Fcore%2Fdownload%2F%40angular%2Fcore-9.1.2.tgz", - "integrity": "sha1-MJcNSdw7U8DcaM1128LJavx/7mI=" - }, - "@angular/forms": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/forms/download/@angular/forms-9.1.2.tgz?cache=0&sync_timestamp=1586994049672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular%2Fforms%2Fdownload%2F%40angular%2Fforms-9.1.2.tgz", - "integrity": "sha1-hLfEKfrYHHgRCPxx1pSuduq0yAg=" - }, - "@angular/language-service": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/language-service/download/@angular/language-service-9.1.2.tgz", - "integrity": "sha1-AbbiicQxSDeKVKYWaB8k2ei4cYM=", - "dev": true - }, - "@angular/platform-browser": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/platform-browser/download/@angular/platform-browser-9.1.2.tgz?cache=0&sync_timestamp=1586994048249&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular%2Fplatform-browser%2Fdownload%2F%40angular%2Fplatform-browser-9.1.2.tgz", - "integrity": "sha1-rlKgqQh+aC5iwzci19f4GBPPSZo=" - }, - "@angular/platform-browser-dynamic": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/platform-browser-dynamic/download/@angular/platform-browser-dynamic-9.1.2.tgz?cache=0&sync_timestamp=1586994047647&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular%2Fplatform-browser-dynamic%2Fdownload%2F%40angular%2Fplatform-browser-dynamic-9.1.2.tgz", - "integrity": "sha1-VYfVNhhOHJJJjZAAR13YmY3xsRA=" - }, - "@angular/router": { - "version": "9.1.2", - "resolved": "https://registry.npm.taobao.org/@angular/router/download/@angular/router-9.1.2.tgz?cache=0&sync_timestamp=1586994046502&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40angular%2Frouter%2Fdownload%2F%40angular%2Frouter-9.1.2.tgz", - "integrity": "sha1-8juhkcRAfEvOC36n98pe3UetoBA=" - }, - "@ant-design/colors": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-3.2.2.tgz", - "integrity": "sha1-WtQ9YZ6RHzSI66wwPWBuZqhCOQM=", - "requires": { - "tinycolor2": "^1.4.1" - } - }, - "@ant-design/icons-angular": { - "version": "9.0.1", - "resolved": "https://registry.npm.taobao.org/@ant-design/icons-angular/download/@ant-design/icons-angular-9.0.1.tgz?cache=0&sync_timestamp=1586316149004&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Ficons-angular%2Fdownload%2F%40ant-design%2Ficons-angular-9.0.1.tgz", - "integrity": "sha1-Wsi+xbw00jEgggyT+FEbWaoRe8U=", - "requires": { - "@ant-design/colors": "^3.1.0" - } - }, - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz", - "integrity": "sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4=", - "dev": true, - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/compat-data": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.9.0.tgz", - "integrity": "sha1-BIFVVvyQsMF0q9LAwbuWb6oDamw=", - "dev": true, - "requires": { - "browserslist": "^4.9.1", - "invariant": "^2.2.4", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.9.0.tgz?cache=0&sync_timestamp=1584746134268&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.9.0.tgz", - "integrity": "sha1-rJd7U4t34TL/cG87ik260JwDxW4=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.9.3", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.9.3.tgz", - "integrity": "sha1-fIspVsb2izq3Mr0WMFkW+7pSHZQ=", - "dev": true, - "requires": { - "@babel/types": "^7.9.0", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha1-YLwLxlf2Ogkk/5pLSgskoTz03u4=", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor%2Fdownload%2F%40babel%2Fhelper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha1-yECXpCegYaxWocMOv1S3si0kFQM=", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.8.7.tgz", - "integrity": "sha1-2sHuoVnA5L1G4wm1obBKZrU8Hd4=", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.6", - "browserslist": "^4.9.1", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.8", - "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.8.8.tgz", - "integrity": "sha1-XYQYC1iPVgt4ZO+u6okkPlgxIIc=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.7.0" - } - }, - "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.8.3.tgz", - "integrity": "sha1-oGVcrVRRw3YLcm66h18c2PqgLBU=", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha1-pyjcW06J4w/C38fQT6KKkwZT+YI=", - "dev": true, - "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.9.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.9.5.tgz", - "integrity": "sha1-K1OCDTUnUSDhh0qC5aq+E3aSClw=", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.9.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha1-uJS5R70AQ4HOY+odufCFR+kgq9U=", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha1-Hb6ba1XXjJtBg/yM3G4wzrg7cTQ=", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha1-ZZtxBJjqbB2ZB+DHPyBu7n2twkw=", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.8.3.tgz", - "integrity": "sha1-f+OVibOcAWMxtrjD9EHo8LFBlJg=", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-transforms": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.9.0.tgz", - "integrity": "sha1-Q7NN/hWWGRhwfSRzJ0MTiOn+luU=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.9.0", - "lodash": "^4.17.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha1-ftBxgT0Jx1KY708giVYAa2ER7Lk=", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.8.3.tgz", - "integrity": "sha1-nqKTvhm6vA9S/4yoizTDYRsghnA=", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.8.3.tgz?cache=0&sync_timestamp=1578951938163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.8.3.tgz", - "integrity": "sha1-E5dyYH1RuT8j7/5yEFsxnSpMaWU=", - "dev": true, - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha1-JzxgDYub9QBhQsHjWIfVVcEu3YY=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-replace-supers": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.8.6.tgz?cache=0&sync_timestamp=1582806192406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.8.6.tgz", - "integrity": "sha1-Wtp0T9WtcyA78dZ0WaJ9y6Z+/8g=", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.8.3.tgz", - "integrity": "sha1-f4EJkotNq0ZUB2mGr1dSMd62Oa4=", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha1-ManzAHD5E2inGCzwX4MXgQZfx6k=", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.9.5", - "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.9.5.tgz", - "integrity": "sha1-kJd6jm+/a0MafcMXUu7iM78FLYA=", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.8.3.tgz", - "integrity": "sha1-nb2yu1XvFKqgH+jJm2Kb1TUthhA=", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.9.2", - "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.9.2.tgz?cache=0&sync_timestamp=1584800073145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.9.2.tgz", - "integrity": "sha1-tCqBqBHx5zE7iMuorcZrPZrmwJ8=", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0" - } - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.9.0.tgz?cache=0&sync_timestamp=1584746125589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.9.0.tgz", - "integrity": "sha1-TptFzLgreWBycbKXmtgse2gWMHk=", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.9.4", - "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.9.4.tgz", - "integrity": "sha1-aKNeawMZu8AURlvkOCgwARPy8ug=", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha1-utMpxnCzgliXIbJ1QMfSiGAcbm8=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha1-OMT+VVdEgm6X4q6TCw+0zAfmYFQ=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha1-2lIWsjipi1ih4F1oUhBLEPmnDWs=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz?cache=0&sync_timestamp=1578952594995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha1-5FciU/3u1lzd7s/as/kor+sv1dI=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha1-XWdpQJaZ7Js7aGhM2BFs7f+Tutg=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.9.5", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.9.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.9.5.tgz", - "integrity": "sha1-P9ZZETBth0YBTsDQz3jw45oUkRY=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.9.5" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-ne6WqxZQ7tiGRq6XNMoWesSpxck=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.9.0.tgz?cache=0&sync_timestamp=1584718601089&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.9.0.tgz", - "integrity": "sha1-MdsWsVTDnWuKZFKSRyuYOUwpKlg=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.8", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.8.8.tgz?cache=0&sync_timestamp=1584039006999&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.8.8.tgz", - "integrity": "sha1-7jqV6QzcBP6M2S7DJ5+gF9aKDR0=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.8", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.8.3.tgz", - "integrity": "sha1-Dj+2Pgm+obEelkZyccgwgAfnxB8=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz?cache=0&sync_timestamp=1578950070697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz?cache=0&sync_timestamp=1578952519472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-optional-chaining%2Fdownload%2F%40babel%2Fplugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.8.3.tgz?cache=0&sync_timestamp=1578952595485&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha1-Os3s5pXmsTqvV/wpHRqACVDHE5E=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha1-gndsLtDNnhpJlW2uuJYCTJRzuLY=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha1-Qwj60NlAnXHq+5sabuNfnWS2QIY=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.8.3.tgz?cache=0&sync_timestamp=1578951934748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha1-Q37sW3mbWFIHIISzrl72boNJ6KM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha1-l9Ndq2aFekN8FmNYuR0JBQyGjzo=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.9.5", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.9.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.9.5.tgz", - "integrity": "sha1-gAWX3biu/CwpPtJ0WcH8yTWibCw=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha1-ltDSi3985OtbEguy4OlDNDyG+Bs=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.9.5", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.9.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.9.5.tgz", - "integrity": "sha1-csl89fOGBK6jq/O5NbDhex23alA=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha1-w8bsXuYSXGmTxcvKINyGIanqem4=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha1-jRLfMJqlN/JyiZxWXqF2jihuIfE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha1-WBptf1aXDga/UVYM1k9elHtw17c=", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.9.0.tgz?cache=0&sync_timestamp=1584718625837&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.9.0.tgz", - "integrity": "sha1-DyYOJ9PinNG7MSjaXnbHYapsEI4=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha1-J5NzyycyKqrWfCaD53bfxHGW7Ys=", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha1-rvI5gj2RmU7Hto5VGTUl1229XcE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha1-lj/tS2IKx8v2Apx1VCQCn6OkBBA=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.9.0.tgz?cache=0&sync_timestamp=1584746129321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.9.0.tgz", - "integrity": "sha1-GXVe5yGRLPW7BMB9UCgK80hO/vQ=", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.9.0.tgz", - "integrity": "sha1-4+cvTLybSiYOML4OpZvfWjl0iUA=", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.9.0.tgz?cache=0&sync_timestamp=1584746128326&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.9.0.tgz", - "integrity": "sha1-6f1Gopb8keAJtk4H3aqG1vDt65A=", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.9.0.tgz?cache=0&sync_timestamp=1584746128785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.9.0.tgz", - "integrity": "sha1-6Qmsridv7CgPm4IaXzjh8ItIBpc=", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha1-oqcr/6ICrA4tBQav0JOcXsvEjGw=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha1-YMwq5m2FyVq1QOs0urtkNNTHDEM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha1-67ah56hv+paFi9asAQLWWUQmFyU=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.9.5", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.9.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.9.5.tgz", - "integrity": "sha1-FzsmV0b14Vsq/lJ+7aZbc2I6B5U=", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha1-MxlDANhTnB7SjGKtUIe6OAe5gmM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.8.7", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.8.7.tgz", - "integrity": "sha1-Xkag3KK+4a2ChesFJ+arycN2cvg=", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha1-mgY1rE5mXSmxYoN908xQdF398fU=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha1-KFRSFuAjqDLU06EYXtSSvP6sCMg=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha1-nI/+gXD9+4ixFOy5ILgvtulf5eg=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha1-vnoSkPgdrnZ0dUUhmeH3bWF1sQA=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha1-e/pHMrRV6mpDEwrcC6dn7A5AKoA=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha1-7eQGIxXOCq+KZXqSCFjxovNfxBI=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha1-DO8247pz5cVyc+/7GC9GuRoeyq0=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/preset-env": { - "version": "7.9.0", - "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.9.0.tgz", - "integrity": "sha1-pfxCSA6VCuj12fjyu8A/UnIt86g=", - "dev": true, - "requires": { - "@babel/compat-data": "^7.9.0", - "@babel/helper-compilation-targets": "^7.8.7", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.0", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.0", - "@babel/plugin-transform-modules-commonjs": "^7.9.0", - "@babel/plugin-transform-modules-systemjs": "^7.9.0", - "@babel/plugin-transform-modules-umd": "^7.9.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.7", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.0", - "browserslist": "^4.9.1", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.3.tgz", - "integrity": "sha1-EyQrU7XvjIg8PPfd3VWzbOgPvHI=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.9.2", - "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.9.2.tgz?cache=0&sync_timestamp=1584800073233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.9.2.tgz", - "integrity": "sha1-2Q3wWDo6JS8JqqYZZlNnuuUY2wY=", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.6.tgz", - "integrity": "sha1-hrIq8V+CjfsIZHT5ZNzD45xDzis=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/traverse": { - "version": "7.9.5", - "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.9.5.tgz", - "integrity": "sha1-bnxWtE4qxwEalIwh4oPd2dnbl6I=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.5", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.0", - "@babel/types": "^7.9.5", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "@babel/generator": { - "version": "7.9.5", - "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.9.5.tgz", - "integrity": "sha1-J/CRd0GsxB5uqs7W1o+Ww/qa+vk=", - "dev": true, - "requires": { - "@babel/types": "^7.9.5", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.9.5", - "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.9.5.tgz", - "integrity": "sha1-iSMfgpFailZqcDs7IBM/c9prlEQ=", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/@istanbuljs/schema/download/@istanbuljs/schema-0.1.2.tgz", - "integrity": "sha1-JlIL8Jq+SlZEzVQU43ElqJVCQd0=", - "dev": true - }, - "@jsdevtools/coverage-istanbul-loader": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/@jsdevtools/coverage-istanbul-loader/download/@jsdevtools/coverage-istanbul-loader-3.0.3.tgz", - "integrity": "sha1-EC5BSwKuLws8f9RacFYB4f1IZ8U=", - "dev": true, - "requires": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.1", - "loader-utils": "^1.4.0", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.6.4" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "@ngtools/webpack": { - "version": "9.1.1", - "resolved": "https://registry.npm.taobao.org/@ngtools/webpack/download/@ngtools/webpack-9.1.1.tgz", - "integrity": "sha1-1nwjpizW1f8MqPRgYtncSqfuv/Q=", - "dev": true, - "requires": { - "@angular-devkit/core": "9.1.1", - "enhanced-resolve": "4.1.1", - "rxjs": "6.5.4", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", - "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@schematics/angular": { - "version": "9.1.1", - "resolved": "https://registry.npm.taobao.org/@schematics/angular/download/@schematics/angular-9.1.1.tgz", - "integrity": "sha1-UGn48hT6Lv+2ipN8+4COxhLevpY=", - "dev": true, - "requires": { - "@angular-devkit/core": "9.1.1", - "@angular-devkit/schematics": "9.1.1" - } - }, - "@schematics/update": { - "version": "0.901.1", - "resolved": "https://registry.npm.taobao.org/@schematics/update/download/@schematics/update-0.901.1.tgz", - "integrity": "sha1-Hij7Gkpxpa/pn+8vwlexJToE39M=", - "dev": true, - "requires": { - "@angular-devkit/core": "9.1.1", - "@angular-devkit/schematics": "9.1.1", - "@yarnpkg/lockfile": "1.1.0", - "ini": "1.3.5", - "npm-package-arg": "^8.0.0", - "pacote": "9.5.12", - "rxjs": "6.5.4", - "semver": "7.1.3", - "semver-intersect": "1.4.0" - }, - "dependencies": { - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.4.tgz", - "integrity": "sha1-4Hd/4NGEzseHLfFH8wNXLUFOIRw=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz?cache=0&sync_timestamp=1580841712213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz", - "integrity": "sha1-HBJhu+qhCoBVu8XYq4S3sq/IRqA=", - "dev": true - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz?cache=0&sync_timestamp=1580841806837&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fevents%2Fdownload%2F%40types%2Fevents-3.0.0.tgz", - "integrity": "sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc=", - "dev": true - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz", - "integrity": "sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU=", - "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/jasmine": { - "version": "3.5.10", - "resolved": "https://registry.npm.taobao.org/@types/jasmine/download/@types/jasmine-3.5.10.tgz", - "integrity": "sha1-oaQQEgErXanUsgW6nrpY9sziq3s=", - "dev": true - }, - "@types/jasminewd2": { - "version": "2.0.8", - "resolved": "https://registry.npm.taobao.org/@types/jasminewd2/download/@types/jasminewd2-2.0.8.tgz", - "integrity": "sha1-Z6/lCY1e8jhgc6e3OEtpqEDf6Ts=", - "dev": true, - "requires": { - "@types/jasmine": "*" - } - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz", - "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", - "dev": true - }, - "@types/node": { - "version": "13.11.1", - "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-13.11.1.tgz", - "integrity": "sha1-SaKoPfnSbarOrTDQzMh2KxKNU8c=", - "dev": true - }, - "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz", - "integrity": "sha1-aQoUdbhPKohP0HzXl8APXzE1bqg=", - "dev": true - }, - "@types/selenium-webdriver": { - "version": "3.0.17", - "resolved": "https://registry.npm.taobao.org/@types/selenium-webdriver/download/@types/selenium-webdriver-3.0.17.tgz", - "integrity": "sha1-UL6gw8KswxyVnFsedHeYs7PQbUs=", - "dev": true - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz", - "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=", - "dev": true - }, - "@types/webpack-sources": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-0.1.7.tgz?cache=0&sync_timestamp=1584980132702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-0.1.7.tgz", - "integrity": "sha1-CjMKlFYRNBDHSl1kGArwy8oAcUE=", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.8.5.tgz", - "integrity": "sha1-UbHF/mV2o0lTv0slPfnw1JDZ41k=", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.8.5.tgz", - "integrity": "sha1-G6kmopI2E+3OSW/VsC6M6KX0lyE=", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.8.5.tgz", - "integrity": "sha1-xJ2tIvZFInxe22EL25aX8aq3Ifc=", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.8.5.tgz", - "integrity": "sha1-/qk+Qphj3V5DOFVfQikjhaZT8gQ=", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.8.5.tgz", - "integrity": "sha1-mnQP9I4/qjAisd/1RCPfmqKTwl4=", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.8.5.tgz", - "integrity": "sha1-ugt9Oz9+RzPaYFnJMyJ12GBwJFI=", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.8.5.tgz", - "integrity": "sha1-3vS5knsBAdyMu9jR7bW3ucguskU=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha1-U3p1Dt31weky83RCBlUckcG5PmE=", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.8.5.tgz", - "integrity": "sha1-dMpqa8vhnlCjtrRihH5pUD5r/L8=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.8.5.tgz", - "integrity": "sha1-cSMp2+8kDza/V70ve4+5v0FUQh4=", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.8.5.tgz", - "integrity": "sha1-BE7es06mefPgTNT9mCTV41dnrhA=", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.8.5.tgz", - "integrity": "sha1-qL87XY/+mGx8Hjc8y9wqCRXwztw=", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.8.5.tgz", - "integrity": "sha1-li2hKqWswcExyBxCMpkcgs5W4Bo=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.8.5.tgz", - "integrity": "sha1-VIQHZsLBAC62TtGr5yCt7XFPmLw=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.8.5.tgz", - "integrity": "sha1-sk2fa6UDlK8TSfUQr6j/y4pj0mQ=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.8.5.tgz", - "integrity": "sha1-IVdvDsiLkUJzV7hTY4NmjvfGa40=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.8.5.tgz", - "integrity": "sha1-4Q7s1ULQ5705T2gnxJ899tTu+4w=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.8.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.8.5.tgz", - "integrity": "sha1-EUu8SB/RDKDiOzVg+oEnSLC65bw=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", - "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", - "dev": true - }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/@yarnpkg/lockfile/download/@yarnpkg/lockfile-1.1.0.tgz", - "integrity": "sha1-53qX+9NFt22DJF7c0X05OxtB+zE=", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/JSONStream/download/JSONStream-1.3.5.tgz", - "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", - "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1583796606796&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", - "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", - "dev": true - }, - "adm-zip": { - "version": "0.4.14", - "resolved": "https://registry.npm.taobao.org/adm-zip/download/adm-zip-0.4.14.tgz", - "integrity": "sha1-LPMSvMn4h134NbD2BAvYm+CnJ6k=", - "dev": true - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npm.taobao.org/after/download/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.3.0.tgz", - "integrity": "sha1-gWXwHENgCbzK0LHRIvBe13Dvxu4=", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/agentkeepalive/download/agentkeepalive-3.5.2.tgz", - "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", - "dev": true, - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz", - "integrity": "sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA=", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.0.tgz?cache=0&sync_timestamp=1582379612319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.0.tgz", - "integrity": "sha1-BtYLlth7hFSlrauobnhU2mKdtLc=", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", - "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", - "dev": true - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz", - "integrity": "sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", - "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-escapes%2Fdownload%2Fansi-escapes-4.3.1.tgz", - "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", - "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/app-root-path/download/app-root-path-2.2.1.tgz", - "integrity": "sha1-0N9KaC7kCCc1g9Q/b3npiSYkvJo=", - "dev": true - }, - "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/append-transform/download/append-transform-1.0.0.tgz", - "integrity": "sha1-BGpSrlgqIovXL1is++KWfGeHWas=", - "dev": true, - "requires": { - "default-require-extensions": "^2.0.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", - "dev": true - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npm.taobao.org/arg/download/arg-4.1.3.tgz?cache=0&sync_timestamp=1580666454632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farg%2Fdownload%2Farg-4.1.3.tgz", - "integrity": "sha1-Jp/HrVuOQstjyJbVZmAXJhwUQIk=", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/aria-query/download/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", - "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/arraybuffer.slice/download/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha1-O7xCdd1YTMGxCAm4nU6LY6aednU=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", - "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", - "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", - "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1582534720131&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npm.taobao.org/ast-types-flow/download/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz", - "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", - "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", - "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", - "dev": true - }, - "autoprefixer": { - "version": "9.7.4", - "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.7.4.tgz", - "integrity": "sha1-+L8+BnB9BH8GQdh67oz7F0sqU3g=", - "dev": true, - "requires": { - "browserslist": "^4.8.3", - "caniuse-lite": "^1.0.30001020", - "chalk": "^2.4.2", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.26", - "postcss-value-parser": "^4.0.2" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.9.1.tgz?cache=0&sync_timestamp=1578958189607&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.9.1.tgz", - "integrity": "sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4=", - "dev": true - }, - "axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/axobject-query/download/axobject-query-2.0.2.tgz?cache=0&sync_timestamp=1581193348497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxobject-query%2Fdownload%2Faxobject-query-2.0.2.tgz", - "integrity": "sha1-6hh6vluQArN3+SXYv30cVhrfOPk=", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7" - } - }, - "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.0.6.tgz?cache=0&sync_timestamp=1584715910722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.0.6.tgz", - "integrity": "sha1-4zvbbzYrA/S7FBoMIauHxQG3Dfs=", - "dev": true, - "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz?cache=0&sync_timestamp=1583734591888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha1-8A9Qe9qjw+P/bn5emNkKesq5b38=", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/backo2/download/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/base64-arraybuffer/download/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", - "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=", - "dev": true - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/base64id/download/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/better-assert/download/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", - "dev": true - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.0.0.tgz", - "integrity": "sha1-I8DfFPaogHf1+YbA0WfsA8PVU3w=", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbindings%2Fdownload%2Fbindings-1.5.0.tgz", - "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npm.taobao.org/blob/download/blob-0.0.5.tgz", - "integrity": "sha1-1oDu7yX4zZGtUz9bAe7UjmTK9oM=", - "dev": true - }, - "blocking-proxy": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/blocking-proxy/download/blocking-proxy-1.0.1.tgz", - "integrity": "sha1-gdb9H+E6TA1pV99/kbdemNrEDLI=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", - "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz", - "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", - "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&sync_timestamp=1585168658937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", - "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", - "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", - "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", - "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.11.1", - "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.11.1.tgz?cache=0&sync_timestamp=1585600876122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.11.1.tgz", - "integrity": "sha1-kvhV7ojW4FDn5zEdmHmSAU8aHxs=", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001038", - "electron-to-chromium": "^1.3.390", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" - } - }, - "browserstack": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/browserstack/download/browserstack-1.6.0.tgz", - "integrity": "sha1-WlarkJh2BdnBONeouIEoNwKX+b8=", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", - "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", - "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/builtins/download/builtins-1.0.3.tgz?cache=0&sync_timestamp=1582626462888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuiltins%2Fdownload%2Fbuiltins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cacache": { - "version": "15.0.0", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-15.0.0.tgz?cache=0&sync_timestamp=1585010789048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-15.0.0.tgz", - "integrity": "sha1-EztZ7b0qN+qO8tVJZMbyR+R+UFk=", - "dev": true, - "requires": { - "chownr": "^1.1.2", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^8.0.0", - "tar": "^6.0.1", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz?cache=0&sync_timestamp=1562668933683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-callsite%2Fdownload%2Fcaller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/callsite/download/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", - "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", - "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001042", - "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001042.tgz?cache=0&sync_timestamp=1586925228450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001042.tgz", - "integrity": "sha1-yR7CHsLScL1228LOJhJgwpK4yTw=", - "dev": true - }, - "canonical-path": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/canonical-path/download/canonical-path-1.0.0.tgz", - "integrity": "sha1-/LRwwjlY3vhQgYVr56hukE8YDR0=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", - "dev": true - }, - "chokidar": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.3.1.tgz?cache=0&sync_timestamp=1584609518131&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.3.1.tgz", - "integrity": "sha1-yE5bPRjZpNd1WP70ZrG/FrvrNFA=", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.3.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", - "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz?cache=0&sync_timestamp=1581474805672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-1.1.4.tgz", - "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", - "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular-dependency-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/circular-dependency-plugin/download/circular-dependency-plugin-5.2.0.tgz", - "integrity": "sha1-4J28LdPikoRCQD4tRbQc6ga8CpM=", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz", - "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.3.0.tgz?cache=0&sync_timestamp=1586157510340&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.3.0.tgz", - "integrity": "sha1-BjIjmktapMlYYQFCw0u3plH8jfU=", - "dev": true - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.1.tgz", - "integrity": "sha1-sEM9C06chH7xiGik7xb9X8gnHEg=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz", - "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz", - "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", - "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codelyzer": { - "version": "5.2.2", - "resolved": "https://registry.npm.taobao.org/codelyzer/download/codelyzer-5.2.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcodelyzer%2Fdownload%2Fcodelyzer-5.2.2.tgz", - "integrity": "sha1-0FMKRVeE5r6gttfpcWbHPDClNH8=", - "dev": true, - "requires": { - "app-root-path": "^2.2.1", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.1.2.tgz", - "integrity": "sha1-2hdlJiv4wPVxdJ8q1sJjACB65nM=", - "dev": true - } - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz", - "integrity": "sha1-aBSOf4XUGtdknF+oyBBvCY0inhA=", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz", - "integrity": "sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw=", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/colors/download/colors-1.4.0.tgz", - "integrity": "sha1-xQSRR51MG9rtLJztMs98fcI2D3g=", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", - "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/compare-versions/download/compare-versions-3.6.0.tgz?cache=0&sync_timestamp=1581642052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompare-versions%2Fdownload%2Fcompare-versions-3.6.0.tgz", - "integrity": "sha1-GlaJkTaF5ah2N7jT/8p1UU7EHWI=", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/component-bind/download/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", - "dev": true - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npm.taobao.org/component-inherit/download/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", - "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz", - "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npm.taobao.org/connect/download/connect-3.7.0.tgz", - "integrity": "sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", - "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz", - "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", - "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", - "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-webpack-plugin": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-5.1.1.tgz", - "integrity": "sha1-VIGgPeoRI9iKmIxv+LeCRyFPC4g=", - "dev": true, - "requires": { - "cacache": "^12.0.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.1", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1585010789048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", - "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz?cache=0&sync_timestamp=1583734591888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - } - } - }, - "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.4.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.4.tgz", - "integrity": "sha1-RAqDU2tFgRS5yyrBWAujd9xHBkc=", - "dev": true - }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.5.tgz?cache=0&sync_timestamp=1586535809290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.6.5.tgz", - "integrity": "sha1-KlHZpOJd/W5pAlGqgfmePAVIHxw=", - "dev": true, - "requires": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", - "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1572710769619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz", - "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", - "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", - "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", - "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz", - "integrity": "sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1582155390641&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz", - "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-parse": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/css-parse/download/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", - "dev": true, - "requires": { - "css": "^2.0.0" - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz", - "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.2", - "resolved": "https://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.2.tgz?cache=0&sync_timestamp=1583233392235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-selector-tokenizer%2Fdownload%2Fcss-selector-tokenizer-0.7.2.tgz", - "integrity": "sha1-EeXifJpI2QKE8i1FBhwwPXolrYc=", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2", - "regexpu-core": "^4.6.0" - } - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.2.1.tgz", - "integrity": "sha1-9KjxJCEGRiG0VnVeNKA6LCLfXaE=", - "dev": true - }, - "cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/cssauron/download/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", - "dev": true, - "requires": { - "through": "X.X.X" - } - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", - "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", - "dev": true - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz", - "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", - "dev": true - }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.0.3.tgz", - "integrity": "sha1-DZmF3IUsfMKyys+74QeQFNGo6QM=", - "dev": true, - "requires": { - "css-tree": "1.0.0-alpha.39" - }, - "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha1-K/8//huz93bPfu/ZHuXLp3oUnus=", - "dev": true, - "requires": { - "mdn-data": "2.0.6", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.6.tgz?cache=0&sync_timestamp=1584029100530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.6.tgz", - "integrity": "sha1-hS3GD8ql2qLoz2yRicRA7T4EKXg=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/custom-event/download/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/damerau-levenshtein/download/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha1-FDwWQcs9hcYMMjKeJoma3qhwF5E=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-fns": { - "version": "2.12.0", - "resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-2.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdate-fns%2Fdownload%2Fdate-fns-2.12.0.tgz", - "integrity": "sha1-AXVMii8zaPwRGc9GJcPa2MGEXuY=" - }, - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/date-format/download/date-format-2.1.0.tgz", - "integrity": "sha1-MdW16iEc9f12TNOLr50DPffhJc8=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/debuglog/download/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1585727669927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz", - "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz", - "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", - "dev": true, - "requires": { - "strip-bom": "^3.0.0" - } - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - } - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz", - "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", - "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "dependency-graph": { - "version": "0.7.2", - "resolved": "https://registry.npm.taobao.org/dependency-graph/download/dependency-graph-0.7.2.tgz", - "integrity": "sha1-kdud5utyaZIJ2IrqTB/VIhysHEk=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", - "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", - "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/dezalgo/download/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/di/download/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/diff/download/diff-4.0.2.tgz", - "integrity": "sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", - "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", - "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", - "dev": true, - "requires": { - "path-type": "^3.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", - "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/dom-serialize/download/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz", - "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz", - "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", - "dev": true - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz", - "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", - "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.409", - "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.409.tgz", - "integrity": "sha1-yaQ4D/CtPibNG0tM74ANF8Rq7H4=", - "dev": true - }, - "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.2.tgz", - "integrity": "sha1-BcVnjXFzwEnYykM1UiJKSV0ON2I=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", - "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/engine.io/download/engine.io-3.2.1.tgz", - "integrity": "sha1-tgKBw1SEpw7gNR6g6/+D7IyVIqI=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" - }, - "dependencies": { - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz?cache=0&sync_timestamp=1583774972911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-3.3.3.tgz", - "integrity": "sha1-8c+E/i1ekB686U767OeF8YeiKPI=", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } - } - }, - "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npm.taobao.org/engine.io-client/download/engine.io-client-3.2.1.tgz", - "integrity": "sha1-b1TAR13khxWKGnx30QF4cItq3TY=", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-3.3.3.tgz?cache=0&sync_timestamp=1583774972911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-3.3.3.tgz", - "integrity": "sha1-8c+E/i1ekB686U767OeF8YeiKPI=", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } - } - }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/engine.io-parser/download/engine.io-parser-2.1.3.tgz", - "integrity": "sha1-dXq5cPvy37Mse3SwMyFtVznveaY=", - "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.1.tgz?cache=0&sync_timestamp=1572991764265&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.1.1.tgz", - "integrity": "sha1-KTfiuAZs0P584JkKmPDXGjUYn2Y=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/ent/download/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.0.0.tgz", - "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=", - "dev": true - }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/err-code/download/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", - "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.5.tgz", - "integrity": "sha1-2MnR1myJgfuSAOIlHXme7pJ3Suk=", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", - "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npm.taobao.org/es6-promise/download/es6-promise-4.2.8.tgz", - "integrity": "sha1-TrIVlMlyvEBVPSduUQU5FD21Pgo=", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/es6-promisify/download/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1586277009115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz", - "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", - "dev": true - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", - "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.0.tgz", - "integrity": "sha1-1lF2FjiH7lnzhtZMgmELaWpKdOs=", - "dev": true - }, - "events": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/events/download/events-3.1.0.tgz?cache=0&sync_timestamp=1578498298945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.1.0.tgz", - "integrity": "sha1-hCea8bNMt1qoi/X/KR9tC9mzGlk=", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", - "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", - "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", - "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&sync_timestamp=1585168658937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz", - "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz", - "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.1.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.1.tgz", - "integrity": "sha1-VFFFB3xQFJHjOxXsQIwpQ3bpSuQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz", - "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", - "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz", - "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-loader": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-6.0.0.tgz", - "integrity": "sha1-l7v6q3okYMB7y9ctOmkiQH9nZJ8=", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.6.5" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", - "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", - "dev": true, - "optional": true - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", - "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz?cache=0&sync_timestamp=1583734591888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz", - "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.0.2.tgz", - "integrity": "sha1-BKGsvyIiHh1u9DVZ9D4FqQ27Q5I=", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz", - "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", - "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.11.0.tgz?cache=0&sync_timestamp=1585479417937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.11.0.tgz", - "integrity": "sha1-r6FPCLoSpSljFA/kMhJliJe8Dss=", - "dev": true, - "requires": { - "debug": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", - "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-4.0.2.tgz", - "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz", - "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.2.tgz", - "integrity": "sha1-TAofs0vGjlQ7S4Kp7Dkr+9qECAU=", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "genfun": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/genfun/download/genfun-5.0.0.tgz", - "integrity": "sha1-ndlxCgaQClxKW/V6yl2k5S/nZTc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz", - "integrity": "sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", - "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", - "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz", - "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz", - "integrity": "sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM=", - "dev": true - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandle-thing%2Fdownload%2Fhandle-thing-2.0.1.tgz", - "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz", - "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/has-binary2/download/has-binary2-1.0.3.tgz", - "integrity": "sha1-d3asYn8+p3JQz8My2rfd9eT10R0=", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/has-cors/download/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz?cache=0&sync_timestamp=1573950719586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz", - "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", - "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", - "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hosted-git-info": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-3.0.4.tgz?cache=0&sync_timestamp=1583017392137&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-3.0.4.tgz", - "integrity": "sha1-vklz6x/Sc3sRycfBk4Bzm7JJ9g0=", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", - "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", - "dev": true - }, - "html-entities": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz", - "integrity": "sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ=", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/html-escaper/download/html-escaper-2.0.2.tgz", - "integrity": "sha1-39YAJ9o2o238viNiYsAKWCJoFFM=", - "dev": true - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npm.taobao.org/http-cache-semantics/download/http-cache-semantics-3.8.1.tgz?cache=0&sync_timestamp=1583107049902&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-cache-semantics%2Fdownload%2Fhttp-cache-semantics-3.8.1.tgz", - "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=", - "dev": true - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", - "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz?cache=0&sync_timestamp=1572714627611&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-parser-js%2Fdownload%2Fhttp-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", - "dev": true - }, - "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.0.tgz?cache=0&sync_timestamp=1568770896103&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.0.tgz", - "integrity": "sha1-2+VfY+daNH2389mZdPJpKjFKajo=", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/http-proxy-agent/download/http-proxy-agent-2.1.0.tgz", - "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1585807808622&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/https-proxy-agent/download/https-proxy-agent-2.2.4.tgz?cache=0&sync_timestamp=1581107713743&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttps-proxy-agent%2Fdownload%2Fhttps-proxy-agent-2.2.4.tgz", - "integrity": "sha1-TuenN6vZJniik9mzShr00NCMeHs=", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/humanize-ms/download/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1579333981154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", - "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&sync_timestamp=1565775199290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz", - "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", - "dev": true - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.3.tgz", - "integrity": "sha1-AX4kRxhL/q3nwjjkrv3R6PlbHjc=", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1569841504754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", - "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", - "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", - "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", - "dev": true - }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.1.0.tgz", - "integrity": "sha1-EpigGFmIPhfHJkuChwrhA0+S3Sk=", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz", - "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz", - "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", - "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz", - "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", - "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz", - "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", - "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", - "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz", - "integrity": "sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs=", - "dev": true - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", - "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-docker": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.0.0.tgz", - "integrity": "sha1-LLDfDnXi0GT+GGTDfN6st7Lc8ls=", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-interactive/download/is-interactive-1.0.0.tgz", - "integrity": "sha1-zqbmrlyHCnsKAAQHC3tYfgJSkS4=", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", - "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz?cache=0&sync_timestamp=1562347283002&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-2.2.0.tgz", - "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", - "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz", - "integrity": "sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4=", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", - "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz", - "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", - "dev": true, - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296409833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", - "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", - "dev": true - }, - "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.1.1.tgz", - "integrity": "sha1-ShwVLUKd89RBZpSY4khtNZbrrx0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npm.taobao.org/isbinaryfile/download/isbinaryfile-4.0.6.tgz?cache=0&sync_timestamp=1585924408630&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisbinaryfile%2Fdownload%2Fisbinaryfile-4.0.6.tgz", - "integrity": "sha1-7ctisiTitHEIMLZ0mMjk5aTSYQs=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-api": { - "version": "2.1.6", - "resolved": "https://registry.npm.taobao.org/istanbul-api/download/istanbul-api-2.1.6.tgz", - "integrity": "sha1-1hcCqdHGatidkuZtQB4WsL2ko18=", - "dev": true, - "requires": { - "async": "^2.6.2", - "compare-versions": "^3.4.0", - "fileset": "^2.0.3", - "istanbul-lib-coverage": "^2.0.5", - "istanbul-lib-hook": "^2.0.7", - "istanbul-lib-instrument": "^3.3.0", - "istanbul-lib-report": "^2.0.8", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^2.2.4", - "js-yaml": "^3.13.1", - "make-dir": "^2.1.0", - "minimatch": "^3.0.4", - "once": "^1.4.0" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha1-Z18KtpUD+tSx2En3NrqsqAM0T0k=", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-3.3.0.tgz?cache=0&sync_timestamp=1580741110293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-instrument%2Fdownload%2Fistanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha1-pfY9kfC7wMPkee9MXeAnM17G1jA=", - "dev": true, - "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha1-9ZRKN8cLVQsCp4pcOyBVsoDOyOw=", - "dev": true - }, - "istanbul-lib-hook": { - "version": "2.0.7", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-2.0.7.tgz", - "integrity": "sha1-yVaV84PU+PYN8fBCUqlVDhW1sTM=", - "dev": true, - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-4.0.1.tgz?cache=0&sync_timestamp=1580741110293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-instrument%2Fdownload%2Fistanbul-lib-instrument-4.0.1.tgz", - "integrity": "sha1-YfE6wsls/vsHb+cTEVbMBZB4dOY=", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@babel/parser": "^7.7.5", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha1-WoETzXRtQ8SInro2qxDn1QybTzM=", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha1-Z18KtpUD+tSx2En3NrqsqAM0T0k=", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha1-KEmXxIIRdS7EhiU9qX44ed77qMg=", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha1-Z18KtpUD+tSx2En3NrqsqAM0T0k=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-2.2.7.tgz", - "integrity": "sha1-XZOfYjfXtIOTzAlZ6rQM1P0FaTE=", - "dev": true, - "requires": { - "html-escaper": "^2.0.0" - } - }, - "jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npm.taobao.org/jasmine/download/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", - "dev": true, - "requires": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "dependencies": { - "jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npm.taobao.org/jasmine-core/download/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "dev": true - } - } - }, - "jasmine-core": { - "version": "3.5.0", - "resolved": "https://registry.npm.taobao.org/jasmine-core/download/jasmine-core-3.5.0.tgz", - "integrity": "sha1-Eywj5kWvlthci8oTyHWLGEKfweQ=", - "dev": true - }, - "jasmine-spec-reporter": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/jasmine-spec-reporter/download/jasmine-spec-reporter-5.0.1.tgz?cache=0&sync_timestamp=1584974873941&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjasmine-spec-reporter%2Fdownload%2Fjasmine-spec-reporter-5.0.1.tgz", - "integrity": "sha1-TYbb/88TJtWxaE+cjNSru212wv4=", - "dev": true, - "requires": { - "colors": "1.4.0" - } - }, - "jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/jasminewd2/download/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", - "dev": true - }, - "jest-worker": { - "version": "25.1.0", - "resolved": "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.1.0.tgz", - "integrity": "sha1-ddA4utb99Y66DS7Bg1hWxJfjkHo=", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", - "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz", - "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", - "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz", - "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/jsonparse/download/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/jszip/download/jszip-3.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjszip%2Fdownload%2Fjszip-3.3.0.tgz", - "integrity": "sha1-KdcsIaVJkPqIWxH8hD2zIGQNUnE=", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "karma": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/karma/download/karma-5.0.1.tgz?cache=0&sync_timestamp=1586477356655&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkarma%2Fdownload%2Fkarma-5.0.1.tgz", - "integrity": "sha1-zVFvVtmezYPpJaQFuAA6vrtyoHQ=", - "dev": true, - "requires": { - "body-parser": "^1.16.1", - "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.1.0", - "connect": "^3.6.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "flatted": "^2.0.0", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^4.0.2", - "lodash": "^4.17.14", - "log4js": "^4.0.0", - "mime": "^2.3.1", - "minimatch": "^3.0.2", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "socket.io": "2.1.1", - "source-map": "^0.6.1", - "tmp": "0.0.33", - "ua-parser-js": "0.7.21", - "yargs": "^15.3.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz", - "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", - "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.4.tgz", - "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", - "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", - "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1573488536792&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz", - "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "15.3.1", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.3.1.tgz?cache=0&sync_timestamp=1584344069946&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.3.1.tgz", - "integrity": "sha1-lQW0cnY5Y+VK/mAUitJ6MwgY6Ys=", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" - } - }, - "yargs-parser": { - "version": "18.1.2", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.2.tgz", - "integrity": "sha1-L0gr6iE2294IYWg6vqd1bTC1BPE=", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/karma-chrome-launcher/download/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha1-gFpYZ5mk0F9OVPcqIEl58/MGZzg=", - "dev": true, - "requires": { - "which": "^1.2.1" - } - }, - "karma-coverage-istanbul-reporter": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/karma-coverage-istanbul-reporter/download/karma-coverage-istanbul-reporter-2.1.1.tgz", - "integrity": "sha1-N6d1+/uzy+mM6/GWBclMYnfDuIo=", - "dev": true, - "requires": { - "istanbul-api": "^2.1.6", - "minimatch": "^3.0.4" - } - }, - "karma-jasmine": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/karma-jasmine/download/karma-jasmine-3.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fkarma-jasmine%2Fdownload%2Fkarma-jasmine-3.1.1.tgz", - "integrity": "sha1-9ZKyU+dhmo2EVZ19r0c6ZHSYreg=", - "dev": true, - "requires": { - "jasmine-core": "^3.5.0" - } - }, - "karma-jasmine-html-reporter": { - "version": "1.5.3", - "resolved": "https://registry.npm.taobao.org/karma-jasmine-html-reporter/download/karma-jasmine-html-reporter-1.5.3.tgz", - "integrity": "sha1-xyQHhDbte30XpH55Fkrzbu0tJxM=", - "dev": true - }, - "karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/karma-source-map-support/download/karma-source-map-support-1.4.0.tgz", - "integrity": "sha1-WFJs7M9+hzDlbv/Zek3o1xKsDWs=", - "dev": true, - "requires": { - "source-map-support": "^0.5.5" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", - "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", - "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "less": { - "version": "3.11.1", - "resolved": "https://registry.npm.taobao.org/less/download/less-3.11.1.tgz?cache=0&sync_timestamp=1581400805472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless%2Fdownload%2Fless-3.11.1.tgz", - "integrity": "sha1-xr8I454CQE/mswej3/+v3FW9NuI=", - "dev": true, - "requires": { - "clone": "^2.1.2", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "^2.83.0", - "source-map": "~0.6.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, - "optional": true - } - } - }, - "less-loader": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/less-loader/download/less-loader-5.0.0.tgz", - "integrity": "sha1-SY3eOmxsT4h0WO6e0/CGoSrRtGY=", - "dev": true, - "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^4.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz", - "integrity": "sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=", - "dev": true - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/levenary/download/levenary-1.1.1.tgz", - "integrity": "sha1-hCqe6Y0gdap/ru2+MmeekgX0b3c=", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, - "license-webpack-plugin": { - "version": "2.1.4", - "resolved": "https://registry.npm.taobao.org/license-webpack-plugin/download/license-webpack-plugin-2.1.4.tgz", - "integrity": "sha1-xVKaS7h8ybRIm0htBUunyuQ6VU4=", - "dev": true, - "requires": { - "@types/webpack-sources": "^0.1.5", - "webpack-sources": "^1.2.0" - } - }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz", - "integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=", - "dev": true, - "requires": { - "immediate": "~3.0.5" - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz", - "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", - "dev": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz", - "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-3.0.0.tgz", - "integrity": "sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q=", - "dev": true, - "requires": { - "chalk": "^2.4.2" - } - }, - "log4js": { - "version": "4.5.1", - "resolved": "https://registry.npm.taobao.org/log4js/download/log4js-4.5.1.tgz", - "integrity": "sha1-5UNiXpfZ5vPm58n8GW3WqyyuMLU=", - "dev": true, - "requires": { - "date-format": "^2.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.0", - "rfdc": "^1.1.4", - "streamroller": "^1.0.6" - } - }, - "loglevel": { - "version": "1.6.8", - "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.8.tgz", - "integrity": "sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", - "dev": true, - "requires": { - "yallist": "^3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", - "dev": true - } - } - }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.7.tgz", - "integrity": "sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npm.taobao.org/make-error/download/make-error-1.3.6.tgz?cache=0&sync_timestamp=1582105630664&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-error%2Fdownload%2Fmake-error-1.3.6.tgz", - "integrity": "sha1-LrLjfqm2fEiR9oShOUeZr0hM96I=", - "dev": true - }, - "make-fetch-happen": { - "version": "5.0.2", - "resolved": "https://registry.npm.taobao.org/make-fetch-happen/download/make-fetch-happen-5.0.2.tgz?cache=0&sync_timestamp=1583976925311&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-fetch-happen%2Fdownload%2Fmake-fetch-happen-5.0.2.tgz", - "integrity": "sha1-qoOHEE8mh+3KAchofuRQE9AtGb0=", - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^12.0.0", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - }, - "dependencies": { - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1585010789048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", - "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - } - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz", - "integrity": "sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q=", - "dev": true - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", - "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", - "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1584029100530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz", - "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", - "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz?cache=0&sync_timestamp=1570537491040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz", - "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz", - "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", - "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", - "dev": true - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.43.0.tgz?cache=0&sync_timestamp=1578281193492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.43.0.tgz", - "integrity": "sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg=", - "dev": true - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.26.tgz?cache=0&sync_timestamp=1578282566609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.26.tgz", - "integrity": "sha1-nJIfwJt+FJpl39wNpNIJlyALCgY=", - "dev": true, - "requires": { - "mime-db": "1.43.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "0.9.0", - "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz?cache=0&sync_timestamp=1576856580721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.9.0.tgz", - "integrity": "sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54=", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", - "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", - "dev": true - }, - "minipass": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.1.tgz", - "integrity": "sha1-dgfOd4RyoYWtbYkIKqIHD3nO3NU=", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", - "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", - "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.2.tgz", - "integrity": "sha1-PctrtKVG4ylpx61xDyx5qGq7qTo=", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-2.1.0.tgz", - "integrity": "sha1-/VLGRTAe8JpjosIJaXwpTGzgLPM=", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz?cache=0&sync_timestamp=1561436244196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz", - "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz", - "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz?cache=0&sync_timestamp=1585239065356&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmulticast-dns%2Fdownload%2Fmulticast-dns-6.2.3.tgz", - "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", - "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz", - "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", - "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", - "dev": true - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz", - "integrity": "sha1-rCetpmFn+ohJpq3dg39rGJrSCBw=", - "dev": true - }, - "ng-zorro-antd": { - "version": "9.0.1", - "resolved": "https://registry.npm.taobao.org/ng-zorro-antd/download/ng-zorro-antd-9.0.1.tgz", - "integrity": "sha1-pvi1DlOvykqLGoEdPBclcvVraUc=", - "requires": { - "@angular/cdk": "^9.0.0", - "@ant-design/icons-angular": "^9.0.0", - "date-fns": "^2.10.0", - "resize-observer-polyfill": "^1.5.1" - } - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", - "dev": true - }, - "node-fetch-npm": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/node-fetch-npm/download/node-fetch-npm-2.0.4.tgz", - "integrity": "sha1-ZQfQ4XqewL477FFpWKSXzsVL9aQ=", - "dev": true, - "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz?cache=0&sync_timestamp=1569524669712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.9.0.tgz", - "integrity": "sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk=", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", - "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-releases": { - "version": "1.1.53", - "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.53.tgz", - "integrity": "sha1-LYIb+kme18Xf/F4vKMiOeKCO4/Q=", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1583017392137&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", - "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz", - "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", - "dev": true - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.1.1.tgz", - "integrity": "sha1-Ht1XCGWpTNsbyCIHdeKUZsn7I0s=", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/npm-install-checks/download/npm-install-checks-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-install-checks%2Fdownload%2Fnpm-install-checks-4.0.0.tgz", - "integrity": "sha1-o3+sx2Oi/eBJfvLG0Kx8P74A17Q=", - "dev": true, - "requires": { - "semver": "^7.1.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/npm-normalize-package-bin/download/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha1-bnmkHyP9I1wGIyGCKNp9nCO49uI=", - "dev": true - }, - "npm-package-arg": { - "version": "8.0.1", - "resolved": "https://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-8.0.1.tgz?cache=0&sync_timestamp=1584082514343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-package-arg%2Fdownload%2Fnpm-package-arg-8.0.1.tgz", - "integrity": "sha1-nXb412Z7I3P/2mC7gBon73Hj4nA=", - "dev": true, - "requires": { - "hosted-git-info": "^3.0.2", - "semver": "^7.0.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.4.8.tgz", - "integrity": "sha1-Vu5swTW5+YrT1Rwcldoiu7my7z4=", - "dev": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/npm-pick-manifest/download/npm-pick-manifest-6.0.0.tgz?cache=0&sync_timestamp=1586304926838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-pick-manifest%2Fdownload%2Fnpm-pick-manifest-6.0.0.tgz", - "integrity": "sha1-v956vpXyZwrtFimjwYJFzLPMLrg=", - "dev": true, - "requires": { - "npm-install-checks": "^4.0.0", - "npm-package-arg": "^8.0.0", - "semver": "^7.0.0" - } - }, - "npm-registry-fetch": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/npm-registry-fetch/download/npm-registry-fetch-4.0.3.tgz", - "integrity": "sha1-PCF5454E+TSLHCl5VFlR02vuh2Y=", - "dev": true, - "requires": { - "JSONStream": "^1.3.4", - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1583017392137&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", - "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", - "dev": true - }, - "npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-6.1.1.tgz?cache=0&sync_timestamp=1584082514343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-package-arg%2Fdownload%2Fnpm-package-arg-6.1.1.tgz", - "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", - "dev": true, - "requires": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.0.tgz", - "integrity": "sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", - "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npm.taobao.org/object-component/download/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.7.0.tgz", - "integrity": "sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc=", - "dev": true - }, - "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.2.tgz", - "integrity": "sha1-xdLof/nhGfeLegiEQVGeLuwVc7Y=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz", - "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz", - "integrity": "sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", - "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", - "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.0.tgz", - "integrity": "sha1-//DzyRYX/mK7UBiWNumayKbfe+U=", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/open/download/open-7.0.3.tgz?cache=0&sync_timestamp=1583734612347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-7.0.3.tgz", - "integrity": "sha1-21UaGvnHq0x69mQTmTCCYThTHEg=", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopn%2Fdownload%2Fopn-5.5.0.tgz", - "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - } - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } - } - }, - "ora": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/ora/download/ora-4.0.3.tgz", - "integrity": "sha1-dSobe0vkglVGp6PVklb6UjtrbQU=", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.2.0", - "is-interactive": "^1.0.0", - "log-symbols": "^3.0.0", - "mute-stream": "0.0.8", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", - "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz", - "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz", - "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", - "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", - "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", - "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&sync_timestamp=1584865550362&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", - "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz", - "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz", - "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", - "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz", - "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", - "dev": true, - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pacote": { - "version": "9.5.12", - "resolved": "https://registry.npm.taobao.org/pacote/download/pacote-9.5.12.tgz", - "integrity": "sha1-HhHdeo1za8w2s3WpgE1BuwN3v2Y=", - "dev": true, - "requires": { - "bluebird": "^3.5.3", - "cacache": "^12.0.2", - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.3", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "minimatch": "^3.0.4", - "minipass": "^2.3.5", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-normalize-package-bin": "^1.0.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^3.0.0", - "npm-registry-fetch": "^4.0.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.1", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.6.0", - "ssri": "^6.0.1", - "tar": "^4.4.10", - "unique-filename": "^1.1.1", - "which": "^1.3.1" - }, - "dependencies": { - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1585010789048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", - "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz", - "integrity": "sha1-zP+FcIQef+QmVpPaiJNsVa7X98c=", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1583017392137&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", - "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", - "dev": true - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz", - "integrity": "sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz", - "integrity": "sha1-IpDeloGKNMKVUcio0wEha9Zahh0=", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npm.taobao.org/npm-package-arg/download/npm-package-arg-6.1.1.tgz?cache=0&sync_timestamp=1584082514343&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-package-arg%2Fdownload%2Fnpm-package-arg-6.1.1.tgz", - "integrity": "sha1-AhaMsKSaK3W/mIooaY3ntSnfXLc=", - "dev": true, - "requires": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-pick-manifest": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/npm-pick-manifest/download/npm-pick-manifest-3.0.2.tgz?cache=0&sync_timestamp=1586304926838&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-pick-manifest%2Fdownload%2Fnpm-pick-manifest-3.0.2.tgz", - "integrity": "sha1-9Nnl/UviFT5fTl+be+jcQZqZq7c=", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npm.taobao.org/tar/download/tar-4.4.13.tgz?cache=0&sync_timestamp=1580272840873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.13.tgz", - "integrity": "sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU=", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", - "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", - "dev": true - } - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz", - "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", - "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz", - "integrity": "sha1-ADJxND2ljclMrOSU+u89IUfs6g4=", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz", - "integrity": "sha1-bXhlbj2o14tOwLkG98CO8d/j9gg=", - "dev": true - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npm.taobao.org/parseqs/download/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npm.taobao.org/parseuri/download/parseuri-0.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseuri%2Fdownload%2Fparseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", - "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", - "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1574442298523&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", - "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz", - "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz", - "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", - "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", - "dev": true, - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - } - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.25.tgz", - "integrity": "sha1-JU/TN/+6hp9LnTftwpgFnLTTXso=", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.27.tgz?cache=0&sync_timestamp=1581994803116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.27.tgz", - "integrity": "sha1-zGfNxrDao3UQW3xCSoVWc0X8VNk=", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.2.tgz?cache=0&sync_timestamp=1582015512279&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.2.tgz", - "integrity": "sha1-UE780AjKAnMSBWiweSsWzc3oqsE=", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz", - "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz", - "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-import": { - "version": "12.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-import/download/postcss-import-12.0.1.tgz", - "integrity": "sha1-z4x6sLXMq1ZJAkU25WX4QZKLcVM=", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz", - "integrity": "sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM=", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", - "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz", - "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz", - "integrity": "sha1-k0z3mdAWyDQRhZ4J3Oyt4BKG7Fw=", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz", - "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=", - "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", - "dev": true - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.0.3.tgz?cache=0&sync_timestamp=1582038347323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.0.3.tgz", - "integrity": "sha1-ZR/0WTqp7ajV0NZlk6JBeurrMl0=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz", - "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", - "dev": true, - "optional": true, - "requires": { - "asap": "~2.0.3" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/promise-retry/download/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dev": true, - "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true - } - } - }, - "protoduck": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/protoduck/download/protoduck-5.0.1.tgz", - "integrity": "sha1-A8NlnKGAB7aaUP2Cp+vMUWJhFR8=", - "dev": true, - "requires": { - "genfun": "^5.0.0" - } - }, - "protractor": { - "version": "5.4.3", - "resolved": "https://registry.npm.taobao.org/protractor/download/protractor-5.4.3.tgz", - "integrity": "sha1-NfBQdB5ASkWGhhjqZIdF2JrzFoM=", - "dev": true, - "requires": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "optimist": "~0.6.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.0.6" - }, - "dependencies": { - "@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npm.taobao.org/del/download/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/globby/download/globby-5.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz?cache=0&sync_timestamp=1562347283002&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-path-cwd%2Fdownload%2Fis-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/q/download/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz", - "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "webdriver-manager": { - "version": "12.1.7", - "resolved": "https://registry.npm.taobao.org/webdriver-manager/download/webdriver-manager-12.1.7.tgz", - "integrity": "sha1-7U6u6PkGszwUboabVehQVTobEWI=", - "dev": true, - "requires": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - } - } - } - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz", - "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz?cache=0&sync_timestamp=1585143008124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz", - "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", - "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", - "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/qjobs/download/qjobs-1.2.0.tgz", - "integrity": "sha1-xF6cYYAL0IfviNfiVkI73Unl0HE=", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&sync_timestamp=1585168658937&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz", - "integrity": "sha1-YOWl/WSn+L+k0qsu1v30yFutFU4=", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", - "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", - "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", - "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", - "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", - "dev": true - } - } - }, - "raw-loader": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/raw-loader/download/raw-loader-4.0.0.tgz", - "integrity": "sha1-1jnED7nXK1x/irwfst2yWynT1UA=", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.5.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "requires": { - "pify": "^2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "read-package-json": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/read-package-json/download/read-package-json-2.1.1.tgz", - "integrity": "sha1-FqpmxZ59Ta1iiPF53ZKV/Vm7mPE=", - "dev": true, - "requires": { - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "read-package-tree": { - "version": "5.3.1", - "resolved": "https://registry.npm.taobao.org/read-package-tree/download/read-package-tree-5.3.1.tgz", - "integrity": "sha1-oyy2TH8x64pvMe8G+c7fdAaP5jY=", - "dev": true, - "requires": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz", - "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", - "dev": true, - "requires": { - "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" - } - }, - "readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/readdir-scoped-modules/download/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha1-jUVAe0+HCg3K68DihnDRjnRRQwk=", - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "readdirp": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.3.0.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.3.0.tgz", - "integrity": "sha1-mERY0ToeQuLp9YQbEp4WLzaa/xc=", - "dev": true, - "requires": { - "picomatch": "^2.0.7" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.13.tgz", - "integrity": "sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag=", - "dev": true - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz", - "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz?cache=0&sync_timestamp=1584052597708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz", - "integrity": "sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc=", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.4", - "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.4.tgz", - "integrity": "sha1-UmaFeJZRjRYWp4oEeTN6MOqXTMc=", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4", - "private": "^0.1.8" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388379660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz", - "integrity": "sha1-erqJs8E6ZFCdq888qNn7ub31y3U=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.0.tgz?cache=0&sync_timestamp=1583949899397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz", - "integrity": "sha1-/L9FjFBDGwu3tF1pZ7gZLZHz2Tg=", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz?cache=0&sync_timestamp=1571560340910&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.1.tgz", - "integrity": "sha1-SPC/Gl6iBRlpKcDZeYtC0e2YRDw=", - "dev": true - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz", - "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", - "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz", - "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=" - }, - "resolve": { - "version": "1.16.0", - "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.16.0.tgz", - "integrity": "sha1-Bj3HBPo0E+E6wdDRdWp8v+ld0ac=", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz?cache=0&sync_timestamp=1585438700247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz", - "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/rfdc/download/rfdc-1.1.4.tgz", - "integrity": "sha1-unLME2egzNnPgahws7WL060H+MI=", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", - "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rollup": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/rollup/download/rollup-2.1.0.tgz", - "integrity": "sha1-VS4kjjl6BrnG24eMBWTKTuBnKck=", - "dev": true, - "requires": { - "fsevents": "~2.1.2" - } - }, - "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.0.tgz?cache=0&sync_timestamp=1582711719088&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-async%2Fdownload%2Frun-async-2.4.0.tgz", - "integrity": "sha1-5ZBUpbhods+uB/Qx0Yy63cWU8eg=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.5.tgz", - "integrity": "sha1-xciE4wlMjP7jG/J+uH5UzPyH+ew=", - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", - "dev": true - }, - "sass": { - "version": "1.26.3", - "resolved": "https://registry.npm.taobao.org/sass/download/sass-1.26.3.tgz", - "integrity": "sha1-QS31RIYUO3a1plzfdWnob0Rln0Y=", - "dev": true, - "requires": { - "chokidar": ">=2.0.0 <4.0.0" - } - }, - "sass-loader": { - "version": "8.0.2", - "resolved": "https://registry.npm.taobao.org/sass-loader/download/sass-loader-8.0.2.tgz", - "integrity": "sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0=", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.2.3", - "neo-async": "^2.6.1", - "schema-utils": "^2.6.1", - "semver": "^6.3.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/saucelabs/download/saucelabs-1.5.0.tgz?cache=0&sync_timestamp=1585389450608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsaucelabs%2Fdownload%2Fsaucelabs-1.5.0.tgz", - "integrity": "sha1-lAWnPDYNRJsjKDmRmobDltN5/Z0=", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", - "dev": true - }, - "schema-utils": { - "version": "2.6.5", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.6.5.tgz", - "integrity": "sha1-x1jwp+YkJjBz05binNQKoQEVLYo=", - "dev": true, - "requires": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/selenium-webdriver/download/selenium-webdriver-3.6.0.tgz", - "integrity": "sha1-K6h6FmLAILiYjJga5iyyoBKY6vw=", - "dev": true, - "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } - } - }, - "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz?cache=0&sync_timestamp=1569952074772&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fselfsigned%2Fdownload%2Fselfsigned-1.10.7.tgz", - "integrity": "sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs=", - "dev": true, - "requires": { - "node-forge": "0.9.0" - } - }, - "semver": { - "version": "7.1.3", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.1.3.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.1.3.tgz", - "integrity": "sha1-5DRc5zBxxT8zZEXPwZ77HDEd8qY=", - "dev": true - }, - "semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/semver-dsl/download/semver-dsl-1.0.1.tgz", - "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", - "dev": true, - "requires": { - "semver": "^5.3.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "semver-intersect": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/semver-intersect/download/semver-intersect-1.4.0.tgz", - "integrity": "sha1-vdnAa+3N0v7bjNNSw8Q+6MYTIfM=", - "dev": true, - "requires": { - "semver": "^5.0.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", - "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", - "dev": true, - "requires": { - "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.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-2.1.2.tgz", - "integrity": "sha1-7OxTsOAxe9yV73arcHS3OEeF+mE=", - "dev": true - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1561418493658&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", - "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz", - "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz", - "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsha.js%2Fdownload%2Fsha.js-2.4.11.tgz", - "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz", - "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz?cache=0&sync_timestamp=1585253250555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz", - "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", - "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", - "dev": true - } - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/smart-buffer/download/smart-buffer-4.1.0.tgz", - "integrity": "sha1-kWBcJdkWUvRmHqacz0XxszHKIbo=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/socket.io/download/socket.io-2.1.1.tgz", - "integrity": "sha1-oGnF/qvuPmshSnW0DOBlLhz7mYA=", - "dev": true, - "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/socket.io-adapter/download/socket.io-adapter-1.1.2.tgz", - "integrity": "sha1-qz8Nb2a4/H/KOVmrWZH4IiF4m+k=", - "dev": true - }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/socket.io-client/download/socket.io-client-2.1.1.tgz", - "integrity": "sha1-3LOBA0NqtFeN2wJmOK4vIbYjZx8=", - "dev": true, - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", - "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npm.taobao.org/socket.io-parser/download/socket.io-parser-3.2.0.tgz", - "integrity": "sha1-58Yii2qh+BTmFIrqMltRqpSZ4Hc=", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz", - "integrity": "sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0=", - "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz", - "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", - "dev": true, - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz", - "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "socks": { - "version": "2.3.3", - "resolved": "https://registry.npm.taobao.org/socks/download/socks-2.3.3.tgz?cache=0&sync_timestamp=1573063384555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsocks%2Fdownload%2Fsocks-2.3.3.tgz", - "integrity": "sha1-ARKfCl1TTSuJdxLtis6rfuZdeOM=", - "dev": true, - "requires": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/socks-proxy-agent/download/socks-proxy-agent-4.0.2.tgz?cache=0&sync_timestamp=1580846328285&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsocks-proxy-agent%2Fdownload%2Fsocks-proxy-agent-4.0.2.tgz", - "integrity": "sha1-PImR8xRbJ5nnDhG9X7yLGWMRY4Y=", - "dev": true, - "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "dependencies": { - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/agent-base/download/agent-base-4.2.1.tgz", - "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1565864727994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", - "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", - "dev": true - }, - "source-map-loader": { - "version": "0.2.4", - "resolved": "https://registry.npm.taobao.org/source-map-loader/download/source-map-loader-0.2.4.tgz", - "integrity": "sha1-wYsNxuI79m9nkkN1V8VpoR4HInE=", - "dev": true, - "requires": { - "async": "^2.5.0", - "loader-utils": "^1.1.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584831908370&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", - "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz", - "integrity": "sha1-CuBp5/47p1OMZMmFFeNTOerFoEI=", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz?cache=0&sync_timestamp=1579203623896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsourcemap-codec%2Fdownload%2Fsourcemap-codec-1.4.8.tgz", - "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz", - "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz", - "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz", - "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz", - "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", - "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", - "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "speed-measure-webpack-plugin": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/speed-measure-webpack-plugin/download/speed-measure-webpack-plugin-1.3.1.tgz", - "integrity": "sha1-aYQKXNwItGOGl9rH2wN/WV1/NqA=", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", - "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "8.0.0", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.0.tgz", - "integrity": "sha1-ecp04h+M6u3fy0uQFDxFi42YiAg=", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", - "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", - "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", - "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz", - "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz", - "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=", - "dev": true - }, - "streamroller": { - "version": "1.0.6", - "resolved": "https://registry.npm.taobao.org/streamroller/download/streamroller-1.0.6.tgz", - "integrity": "sha1-gWfYSW7Z8Z8F7ksVjZYRMhuMrNk=", - "dev": true, - "requires": { - "async": "^2.6.2", - "date-format": "^2.0.0", - "debug": "^3.2.6", - "fs-extra": "^7.0.1", - "lodash": "^4.17.14" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz", - "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.1.tgz?cache=0&sync_timestamp=1586465409341&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz", - "integrity": "sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha1-RAiqLl1t3QyagHObCH+8BnwDs8w=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimright%2Fdownload%2Fstring.prototype.trimright-2.1.2.tgz", - "integrity": "sha1-x28c7zDyG7rYr+uNsVEUls+w8qM=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz?cache=0&sync_timestamp=1586465413621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz", - "integrity": "sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "style-loader": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/style-loader/download/style-loader-1.1.3.tgz?cache=0&sync_timestamp=1586969368840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstyle-loader%2Fdownload%2Fstyle-loader-1.1.3.tgz", - "integrity": "sha1-noJuacaDxNm/nbkk+F6auzDV4gA=", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.6.4" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz", - "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", - "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "stylus": { - "version": "0.54.7", - "resolved": "https://registry.npm.taobao.org/stylus/download/stylus-0.54.7.tgz", - "integrity": "sha1-xs5Hk5Ze5Ti86+UPMVN7/ATYjNI=", - "dev": true, - "requires": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.3", - "mkdirp": "~0.5.x", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.0.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - } - } - }, - "stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/stylus-loader/download/stylus-loader-3.0.2.tgz", - "integrity": "sha1-J6cGQgsFo44DjnyssVNXjUUFE8Y=", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz", - "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz", - "integrity": "sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ=", - "dev": true - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz", - "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", - "dev": true - }, - "tar": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/tar/download/tar-6.0.1.tgz?cache=0&sync_timestamp=1580272840873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-6.0.1.tgz", - "integrity": "sha1-ezvWwxPLbgFTdwEI+NcKwphgfvo=", - "dev": true, - "requires": { - "chownr": "^1.1.3", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.0", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz", - "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", - "dev": true - } - } - }, - "terser": { - "version": "4.6.10", - "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.6.10.tgz", - "integrity": "sha1-kPW9Bp/0Vt28lQOxjlL5xJPTt8I=", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "2.3.5", - "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.5.tgz?cache=0&sync_timestamp=1581696211948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.5.tgz", - "integrity": "sha1-WtlxrM5cUXRAuoc+pPCWh94vSoE=", - "dev": true, - "requires": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.2.0", - "jest-worker": "^25.1.0", - "p-limit": "^2.2.2", - "schema-utils": "^2.6.4", - "serialize-javascript": "^2.1.2", - "source-map": "^0.6.1", - "terser": "^4.4.3", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1585010789048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", - "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", - "dev": true, - "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-7.1.0.tgz", - "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - } - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz?cache=0&sync_timestamp=1571043401546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz", - "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz", - "integrity": "sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8=", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/to-array/download/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", - "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1584645751908&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", - "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/tree-kill/download/tree-kill-1.2.2.tgz", - "integrity": "sha1-TKCakJLIi3OnzcXooBtQeweQoMw=", - "dev": true - }, - "ts-node": { - "version": "8.8.2", - "resolved": "https://registry.npm.taobao.org/ts-node/download/ts-node-8.8.2.tgz", - "integrity": "sha1-CznmkL7jnqURFROp0rzcC8EhdV8=", - "dev": true, - "requires": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "3.1.1" - } - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.11.1.tgz", - "integrity": "sha1-6xXRKIJ/vuKEFUnhcfRe0zisfjU=" - }, - "tslint": { - "version": "6.1.1", - "resolved": "https://registry.npm.taobao.org/tslint/download/tslint-6.1.1.tgz", - "integrity": "sha1-rAP70X+Fv++q40izU7JaiO/hDN4=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.10.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", - "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", - "dev": true - } - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npm.taobao.org/tsutils/download/tsutils-2.29.0.tgz", - "integrity": "sha1-MrSIUBRnrL7dS4VJhnOggSrKC5k=", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581364252466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz", - "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", - "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "3.8.3", - "resolved": "https://registry.npm.taobao.org/typescript/download/typescript-3.8.3.tgz", - "integrity": "sha1-QJ64VE6gM1cRIFhp7EWKsQnuEGE=", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npm.taobao.org/ua-parser-js/download/ua-parser-js-0.7.21.tgz", - "integrity": "sha1-hTz5zpP2QvZxdCc8w0Vlrm8wh3c=", - "dev": true - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/ultron/download/ultron-1.1.1.tgz", - "integrity": "sha1-n+FTahCmZKZSZqHjzPhf02MCvJw=", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583945805856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", - "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", - "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universal-analytics": { - "version": "0.4.20", - "resolved": "https://registry.npm.taobao.org/universal-analytics/download/universal-analytics-0.4.20.tgz", - "integrity": "sha1-1rZOUxK/dPfDaOMCSpIhNdvySwM=", - "dev": true, - "requires": { - "debug": "^3.0.0", - "request": "^2.88.0", - "uuid": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583531006552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz", - "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", - "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz?cache=0&sync_timestamp=1585438689517&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furix%2Fdownload%2Furix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.4.7.tgz", - "integrity": "sha1-qKg1NejACjFuQDpdtKwbm4U64ng=", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1582534720131&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz", - "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util-promisify": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/util-promisify/download/util-promisify-2.1.0.tgz", - "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz", - "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1585683718911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz", - "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/validate-npm-package-name/download/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz", - "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", - "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", - "dev": true - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "watchpack": { - "version": "1.6.1", - "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.1.tgz?cache=0&sync_timestamp=1585253929080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack%2Fdownload%2Fwatchpack-1.6.1.tgz", - "integrity": "sha1-KA2gqHGFkhdAEMB4x1hadM2M0OI=", - "dev": true, - "requires": { - "chokidar": "^2.1.8", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1584609518131&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "fsevents": { - "version": "1.2.12", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.12.tgz", - "integrity": "sha1-234NjsOwtFck/U2D1DVUqPHw3lw=", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "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" - } - }, - "rimraf": { - "version": "2.7.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", - "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "webdriver-js-extender": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/webdriver-js-extender/download/webdriver-js-extender-2.1.0.tgz", - "integrity": "sha1-V9epPADbTMjVVuTT20tdsKgMO7c=", - "dev": true, - "requires": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - } - }, - "webpack": { - "version": "4.42.0", - "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.42.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.42.0.tgz", - "integrity": "sha1-uQFjXdYXk5HZB0CmPJP3bzmIPrg=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1585010789048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", - "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz?cache=0&sync_timestamp=1583734591888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz?cache=0&sync_timestamp=1570537491040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581257110269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", - "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.3.tgz?cache=0&sync_timestamp=1581696211948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.3.tgz", - "integrity": "sha1-Xsry29xfuZdF/QZ5H0b8ndscmnw=", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1582191620751&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", - "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz?cache=0&sync_timestamp=1570537491040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz?cache=0&sync_timestamp=1560034758817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.4.tgz", - "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.10.3", - "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.10.3.tgz", - "integrity": "sha1-81lFA2gT5X71gsJCDve0cOFNOvA=", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.2.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.6", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.25", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.4.0", - "spdy": "^4.0.1", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "12.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1584609518131&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", - "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "fsevents": { - "version": "1.2.12", - "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.12.tgz", - "integrity": "sha1-234NjsOwtFck/U2D1DVUqPHw3lw=", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "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" - } - }, - "rimraf": { - "version": "2.7.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz", - "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", - "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1564684394562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz", - "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz", - "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz", - "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "webpack-subresource-integrity": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/webpack-subresource-integrity/download/webpack-subresource-integrity-1.4.0.tgz", - "integrity": "sha1-RJY6ZMmiFK1ykVjn9G1SwlJcyIo=", - "dev": true, - "requires": { - "webpack-sources": "^1.3.0" - } - }, - "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz", - "integrity": "sha1-otTg1PTxFvHmKX66WLBdQwEA6fk=", - "dev": true, - "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz", - "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=", - "dev": true - }, - "when": { - "version": "3.6.4", - "resolved": "https://registry.npm.taobao.org/when/download/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", - "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "worker-plugin": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/worker-plugin/download/worker-plugin-4.0.2.tgz", - "integrity": "sha1-BFbdevHA3mRZEyb9igjF2fK1sno=", - "dev": true, - "requires": { - "loader-utils": "^1.1.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz?cache=0&sync_timestamp=1573488536792&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1583774972911&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz", - "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npm.taobao.org/xml2js/download/xml2js-0.4.23.tgz", - "integrity": "sha1-oMaVFnUkIesqx1juTUzPWIQ+rGY=", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-11.0.1.tgz", - "integrity": "sha1-vpuuHIoEbnazESdyY0fQrXACvrM=", - "dev": true - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npm.taobao.org/xmlhttprequest-ssl/download/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", - "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-12.0.5.tgz?cache=0&sync_timestamp=1584344069946&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-12.0.5.tgz", - "integrity": "sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM=", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz", - "integrity": "sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ=", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npm.taobao.org/yeast/download/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/yn/download/yn-3.1.1.tgz", - "integrity": "sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A=", - "dev": true - }, - "zone.js": { - "version": "0.10.3", - "resolved": "https://registry.npm.taobao.org/zone.js/download/zone.js-0.10.3.tgz", - "integrity": "sha1-Pl5NoDxgfJ3NkuN901aHoUoUDBY=" - } - } -} diff --git a/admin/package.json b/admin/package.json deleted file mode 100644 index 5ec0eb4..0000000 --- a/admin/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "admin", - "version": "0.0.0", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "test": "ng test", - "lint": "ng lint", - "e2e": "ng e2e" - }, - "private": true, - "dependencies": { - "@angular/animations": "^9.1.2", - "@angular/common": "^9.1.2", - "@angular/compiler": "^9.1.2", - "@angular/core": "^9.1.2", - "@angular/forms": "^9.1.2", - "@angular/platform-browser": "^9.1.2", - "@angular/platform-browser-dynamic": "^9.1.2", - "@angular/router": "^9.1.2", - "ng-zorro-antd": "^9.0.1", - "rxjs": "^6.5.5", - "tslib": "^1.11.1", - "zone.js": "^0.10.3" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^0.901.1", - "@angular/cli": "^9.1.1", - "@angular/compiler-cli": "^9.1.2", - "@angular/language-service": "^9.1.2", - "@types/jasmine": "^3.5.10", - "@types/jasminewd2": "^2.0.8", - "@types/node": "^13.11.1", - "codelyzer": "^5.2.2", - "jasmine-core": "^3.5.0", - "jasmine-spec-reporter": "^5.0.1", - "karma": "^5.0.1", - "karma-chrome-launcher": "^3.1.0", - "karma-coverage-istanbul-reporter": "^2.1.1", - "karma-jasmine": "^3.1.1", - "karma-jasmine-html-reporter": "^1.5.3", - "protractor": "^5.4.3", - "ts-node": "^8.8.2", - "tslint": "^6.1.1", - "typescript": "^3.8.3" - } -} diff --git a/admin/src/app/app-routing.module.ts b/admin/src/app/app-routing.module.ts deleted file mode 100644 index 32a5ddb..0000000 --- a/admin/src/app/app-routing.module.ts +++ /dev/null @@ -1,71 +0,0 @@ -import {NgModule} from '@angular/core'; -import {NavigationStart, Router, RouterModule, Routes} from '@angular/router'; -import {filter} from 'rxjs/operators'; -import {UserService} from './services/user/user.service'; - -import {AIndexComponent} from './pages/a-index/a-index.component'; -import {ArticleManagerComponent} from './pages/article-manager/article-manager.component'; -import {CommentManagerComponent} from './pages/comment-manager/comment-manager.component'; -import {TagManagerComponent} from './pages/tag-manager/tag-manager.component'; -import {UserInfoComponent} from './pages/user-info/user-info.component'; -import {CategoryManagerComponent} from './pages/category-manager/category-manager.component'; -import {LinksManagerComponent} from './pages/links-manager/links.component'; -import {VisitorManagerComponent} from './pages/visitor-manager/visitor-manager.component'; -import {UpdateManagerComponent} from './pages/update-manager/update.component'; -import {UserManagerComponent} from './pages/user-manager/user-manager.component'; - - -const routes: Routes = [ - {path: '', component: AIndexComponent}, - {path: 'articles', component: ArticleManagerComponent}, - {path: 'comments', component: CommentManagerComponent}, - {path: 'tags', component: TagManagerComponent}, - {path: 'userInfo', component: UserInfoComponent}, - {path: 'categories', component: CategoryManagerComponent}, - {path: 'links', component: LinksManagerComponent}, - {path: 'visitors', component: VisitorManagerComponent}, - {path: 'update', component: UpdateManagerComponent}, - {path: 'users', component: UserManagerComponent}, - {path: '**', component: AIndexComponent} -]; - -@NgModule({ - imports: [RouterModule.forRoot(routes)], - exports: [RouterModule] -}) -export class AppRoutingModule { - - // todo : 换用路由守卫 - constructor(private router: Router, private userService: UserService) { - this.router.events.pipe(filter((event) => event instanceof NavigationStart) - ).subscribe((event: NavigationStart) => { - if (!this.userService.userInfo) { - this.userService.getUserInfo().subscribe(data => { - if (data.code === 0) { - this.userService.userInfo = data.result; - this.checkPermission(event); - } else if (data.code === 301) { - window.location.href = '/login'; - } else { - window.location.href = '/'; - } - }); - } else { - this.checkPermission(event); - } - }); - } - - private checkPermission(event) { - if (this.userService.userInfo.role === 'user') { - switch (event.url) { - case '/': - case '/comments': - case '/userInfo': - break; - default : - this.router.navigateByUrl('/'); - } - } - } -} diff --git a/admin/src/app/app.component.css b/admin/src/app/app.component.css deleted file mode 100644 index b2518c6..0000000 --- a/admin/src/app/app.component.css +++ /dev/null @@ -1,49 +0,0 @@ -.menu { - position: fixed; - max-width: 240px; - top: 50px; - bottom: 0; - left: 0; - overflow-y: auto; - overflow-x: hidden; -} - -.myCard { - width: 180px; - margin-left: 10px; -} - -.main { - position: absolute; - top: 50px; - right: 0; - left: 240px; - bottom: 0; -} - -p { - text-align: center; -} - - -nz-content { - margin-left: 30px; - margin-right: 30px; -} - -.inner-content { - padding: 15px; - background: #fff; - min-height: 560px; -} - -nz-footer { - text-align: center; -} - -@media only screen and (max-width: 768px) { - nz-content { - margin-left: 10px; - margin-right: 10px; - } -} diff --git a/admin/src/app/app.component.html b/admin/src/app/app.component.html deleted file mode 100644 index a98236a..0000000 --- a/admin/src/app/app.component.html +++ /dev/null @@ -1,96 +0,0 @@ - -
- - - - -
    -
  • - - 后台首页 -
  • - -
  • - -
  • - -
  • - - 评论管理 -
  • - -
  • - - 标签管理 -
  • - -
  • - - 分类管理 -
  • - -
  • - - 修改信息 -
  • - -
  • - - 用户管理 -
  • - -
  • - - 友链管理 -
  • - -
  • - - 访问管理 -
  • - -
  • - - 更新管理 -
  • - - - -

    别管别人言语

    -

    做最好的自己

    -
    - -

    欢迎来访小海博客

    -
    - -
-
- - -
- -
-
- © 小海博客 - Design by 小海 -
-
- - - diff --git a/admin/src/app/app.component.spec.ts b/admin/src/app/app.component.spec.ts deleted file mode 100644 index 1053b1f..0000000 --- a/admin/src/app/app.component.spec.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { TestBed, async } from '@angular/core/testing'; -import { RouterTestingModule } from '@angular/router/testing'; -import { AppComponent } from './app.component'; - -describe('AppComponent', () => { - beforeEach(async(() => { - TestBed.configureTestingModule({ - imports: [ - RouterTestingModule - ], - declarations: [ - AppComponent - ], - }).compileComponents(); - })); - - it('should create the app', () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.debugElement.componentInstance; - expect(app).toBeTruthy(); - }); - - it(`should have as title 'admin'`, () => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.debugElement.componentInstance; - expect(app.title).toEqual('admin'); - }); - - it('should render title in a h1 tag', () => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.debugElement.nativeElement; - expect(compiled.querySelector('h1').textContent).toContain('Welcome to admin!'); - }); -}); diff --git a/admin/src/app/app.component.ts b/admin/src/app/app.component.ts deleted file mode 100644 index cfbe1c0..0000000 --- a/admin/src/app/app.component.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {UserService} from './services/user/user.service'; - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] -}) -export class AppComponent implements OnInit { - - isCollapsed: boolean = false; - - constructor(public userService: UserService) { - - } - - ngOnInit(): void { - } - - -} diff --git a/admin/src/app/app.module.ts b/admin/src/app/app.module.ts deleted file mode 100644 index 03ea510..0000000 --- a/admin/src/app/app.module.ts +++ /dev/null @@ -1,63 +0,0 @@ -import {BrowserModule} from '@angular/platform-browser'; -import {NgModule} from '@angular/core'; -import {NgZorroAntdModule, NZ_I18N, zh_CN} from 'ng-zorro-antd'; -import {FormsModule} from '@angular/forms'; -import {HttpClientModule} from '@angular/common/http'; -import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; -import {registerLocaleData} from '@angular/common'; -import zh from '@angular/common/locales/zh'; -import {AppRoutingModule} from './app-routing.module'; -import {AppComponent} from './app.component'; - - -// components -import {HeaderComponent} from './components/header/header.component'; -// pages -import {AIndexComponent} from './pages/a-index/a-index.component'; -import {ArticleManagerComponent} from './pages/article-manager/article-manager.component'; -import {CommentManagerComponent} from './pages/comment-manager/comment-manager.component'; -import {TagManagerComponent} from './pages/tag-manager/tag-manager.component'; -import {UserInfoComponent} from './pages/user-info/user-info.component'; -import {CategoryManagerComponent} from './pages/category-manager/category-manager.component'; -import {LinksManagerComponent} from './pages/links-manager/links.component'; -import {VisitorManagerComponent} from './pages/visitor-manager/visitor-manager.component'; -import {UpdateManagerComponent} from './pages/update-manager/update.component'; -import {UserManagerComponent} from './pages/user-manager/user-manager.component'; -// services -import {HttpService} from './services/http.service'; - - -registerLocaleData(zh); - -@NgModule({ - declarations: [ - AppComponent, - - HeaderComponent, - AIndexComponent, - ArticleManagerComponent, - CommentManagerComponent, - TagManagerComponent, - UserInfoComponent, - CategoryManagerComponent, - LinksManagerComponent, - VisitorManagerComponent, - UpdateManagerComponent, - UserManagerComponent - ], - imports: [ - BrowserModule, - AppRoutingModule, - NgZorroAntdModule, - FormsModule, - HttpClientModule, - BrowserAnimationsModule - ], - providers: [ - {provide: NZ_I18N, useValue: zh_CN}, - HttpService - ], - bootstrap: [AppComponent] -}) -export class AppModule { -} diff --git a/admin/src/app/classes/article.ts b/admin/src/app/classes/article.ts deleted file mode 100644 index 687852e..0000000 --- a/admin/src/app/classes/article.ts +++ /dev/null @@ -1,19 +0,0 @@ -export class Article { - id: number; - title: string; - summary: string; - mdContent?: string; - original?: boolean; - url?: string; - publishDateFormat?: string; - updateDateFormat?: string; - category?: string; - tags?: string[]; - authorName?: string; - preArticleId?: number; - nextArticleId?: number; - preArticleTitle?: string; - nextArticleTitle?: string; - readingNumber?: number; - open?: string; -} diff --git a/admin/src/app/classes/category.ts b/admin/src/app/classes/category.ts deleted file mode 100644 index 5883167..0000000 --- a/admin/src/app/classes/category.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class Category { - id: number; - name: string; - articles?: number[]; - size?: number; -} diff --git a/admin/src/app/classes/comment.ts b/admin/src/app/classes/comment.ts deleted file mode 100644 index 7cb6fe1..0000000 --- a/admin/src/app/classes/comment.ts +++ /dev/null @@ -1,13 +0,0 @@ -export class Comment { - id: number; - type: number; - authorName: string; - authorAvatarImgUrl: string; - content: string; - date: string; - pid: number; - responseId: string; - articleID: number; - articleTitle: string; - child: Comment[]; -} diff --git a/admin/src/app/classes/commentReq.ts b/admin/src/app/classes/commentReq.ts deleted file mode 100644 index da5c7ff..0000000 --- a/admin/src/app/classes/commentReq.ts +++ /dev/null @@ -1,19 +0,0 @@ -export class CommentReq { - articleID: number; - comment: boolean; - content: string; - id: number; - pid: number; - responseId: string; - - constructor(comment: boolean) { - this.comment = comment; - this.responseId = ''; - if (!comment) { - this.articleID = -1; - } - this.pid = -1; - this.id = null; - } - -} diff --git a/admin/src/app/classes/data.ts b/admin/src/app/classes/data.ts deleted file mode 100644 index 26ce84b..0000000 --- a/admin/src/app/classes/data.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class Data { - code: number; - msg: string; - result: any; - date: number; -} diff --git a/admin/src/app/classes/link.ts b/admin/src/app/classes/link.ts deleted file mode 100644 index 11d7816..0000000 --- a/admin/src/app/classes/link.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class Link { - id: number; - name: string; - url: string; - open: boolean; -} diff --git a/admin/src/app/classes/page.ts b/admin/src/app/classes/page.ts deleted file mode 100644 index a6696bd..0000000 --- a/admin/src/app/classes/page.ts +++ /dev/null @@ -1,20 +0,0 @@ -export class Page { - total: number; - list: T[]; - pageNum: number; - pageSize: number; - size: number; - startRow: number; - endRow: number; - pages: number; - prePage: number; - nextPage: number; - isFirstPage: boolean; - isLastPage: boolean; - hasPreviousPage: boolean; - hasNextPage: boolean; - navigatePages: number; - navigatepageNums: number[]; - navigateFirstPage: number; - navigateLastPage: number; -} diff --git a/admin/src/app/classes/tag.ts b/admin/src/app/classes/tag.ts deleted file mode 100644 index 3f26315..0000000 --- a/admin/src/app/classes/tag.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class Tag { - id?: number; - name: string; - articles?: number[]; - size: number; -} diff --git a/admin/src/app/classes/user.ts b/admin/src/app/classes/user.ts deleted file mode 100644 index 3f0afa6..0000000 --- a/admin/src/app/classes/user.ts +++ /dev/null @@ -1,11 +0,0 @@ -export class User { - id: number; - email: string; - displayName: string; - emailStatus: boolean; - avatarImgUrl: string; - recentlyLandedDate: string; - desc: string; - role: string; - pwd?: string; -} diff --git a/admin/src/app/components/header/header.component.css b/admin/src/app/components/header/header.component.css deleted file mode 100644 index fc21289..0000000 --- a/admin/src/app/components/header/header.component.css +++ /dev/null @@ -1,129 +0,0 @@ -header { - height: 50px; - background-color: #ffffff; - opacity: 0.8; - position: fixed; - z-index: 1; - width: 100%; -} - -div { - float: left; -} - -header img { - width: 40px; - height: 40px; - border-radius: 50%; - margin: 5px 5px 5px 30px; - float: left; -} - -ul { - list-style: none; -} - -.headerButton { - border: none; - background: #3F66FF; - color: #ffffff !important; - margin-right: 10px; - border-radius: 5px; - padding: 8px 13px; - line-height: 50px -} - -#landr { - float: right; -} - -#loged { - float: right; - margin-right: 20px; - line-height: 50px; -} - -#blogTitle, -#desc { - display: block; - margin-left: 15px; -} - -#blogTitle :hover { - text-decoration: none; - color: #797979; -} - -#blogTitle { - font-weight: bold; - font-size: 20px; -} - -#blogTitle :hover { - font-size: 23px; -} - -#desc { - font-size: 10px; -} - -@media only screen and (min-width: 768px) { - /**导航栏*/ - .nav-desktop { - position: fixed; - width: auto; - left: 50%; - transform: translate(-50%, 0); - } - - .nav-phone { - display: none - } - - a { - margin: 0; - padding: 0; - } - - .nav-desktop li { - float: left; - padding: 0 10px; - } - - .nav-desktop li:hover { - background: #ececec; - color: #797979; - } - - .nav-desktop li a { - height: 100%; - line-height: 50px; - } -} - -@media only screen and ( max-width: 768px) { - .nav-desktop { - display: none; - } - - .nav-phone { - display: block; - float: right; - } - - .ul { - width: 300px; - text-align: center - } - - .ul li { - display: block; - width: 100%; - border-bottom: 1px solid #ececec - } - - #click-main { - line-height: 50px; - margin-right: 30px; - } -} diff --git a/admin/src/app/components/header/header.component.html b/admin/src/app/components/header/header.component.html deleted file mode 100644 index 034458f..0000000 --- a/admin/src/app/components/header/header.component.html +++ /dev/null @@ -1,40 +0,0 @@ -
- -
- -
-
-
- 小海博客 - 记录学习成长历程 -
- - - - - -
- -
- 注册 -
-
- -
diff --git a/admin/src/app/components/header/header.component.ts b/admin/src/app/components/header/header.component.ts deleted file mode 100644 index 2bbe3c3..0000000 --- a/admin/src/app/components/header/header.component.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {UserService} from '../../services/user/user.service'; -import {environment} from '../../../environments/environment'; - -@Component({ - selector: 'app-header', - templateUrl: './header.component.html', - styleUrls: ['./header.component.css'] -}) -export class HeaderComponent implements OnInit { - - - constructor(public userService: UserService) { - } - - // 菜单是否可见 - public visible: boolean = false; - - ngOnInit() { - } - - logout() { - this.userService.logout(); - window.location.href = '/'; - } - - toPage(path: string) { - window.location.href = path; - } -} diff --git a/admin/src/app/pages/a-index/a-index.component.css b/admin/src/app/pages/a-index/a-index.component.css deleted file mode 100644 index 2a92b3a..0000000 --- a/admin/src/app/pages/a-index/a-index.component.css +++ /dev/null @@ -1,50 +0,0 @@ -.dashboardUl { - width: 100%; - padding: 1.6em; -} - -.dashboardUl i { - font-size: 40px; -} - -.dashboardUl li { - float: left; - border-right: 1px solid #ececec; - width: 25%; - text-align: center; -} - -.dashboardUl li:last-child { - border-right: none; -} - -.circle { - border-radius: 50%; - text-align: center; -} - -p { - margin: 15px 0; -} - -.log { - margin-top: 20px; - max-height: 500px; - padding: 10px; - background: #F8F8F8; -} - -.reloadLog { - position: absolute; - right: 20px; - top: 10px; - z-index: 990; -} - -.card { - text-align: center; -} - -.card i { - font-size: 40px; -} diff --git a/admin/src/app/pages/a-index/a-index.component.html b/admin/src/app/pages/a-index/a-index.component.html deleted file mode 100644 index f3f7df8..0000000 --- a/admin/src/app/pages/a-index/a-index.component.html +++ /dev/null @@ -1,71 +0,0 @@ - -
-
-
-
首页
-
-

- Welcome {{userService.userInfo.displayName}}! -

- - -
    -
  • -
    -

    上次登录

    -

    {{userService.userInfo.recentlyLandedDate}}

    -
  • -
  • -
    -

    您的ip和位置

    -

    - ip:{{ip}} -
    - 位置:{{location}} -

    -
  • -
-
-
- - -
- -
    -
  • -
    -

    总访问量

    -

    {{visitorService.totalVisitCount}}

    -
  • -
  • -
    -

    今日访问量

    -

    {{visitorService.dayVisit}}

    -
  • -
  • -
    -

    上次登录

    -

    {{userService.userInfo.recentlyLandedDate}}

    -
  • -
  • -
    -

    上次更新

    -

    {{webUpdateService.lastestUpdateTime}}

    -
  • -
-
- -
- - -
-                    {{this.logService.logText}}
-                
-
-
-
- -
- diff --git a/admin/src/app/pages/a-index/a-index.component.spec.ts b/admin/src/app/pages/a-index/a-index.component.spec.ts deleted file mode 100644 index 076f1d6..0000000 --- a/admin/src/app/pages/a-index/a-index.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AIndexComponent } from './a-index.component'; - -describe('AIndexComponent', () => { - let component: AIndexComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AIndexComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AIndexComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/a-index/a-index.component.ts b/admin/src/app/pages/a-index/a-index.component.ts deleted file mode 100644 index 276caf0..0000000 --- a/admin/src/app/pages/a-index/a-index.component.ts +++ /dev/null @@ -1,80 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {UserService} from '../../services/user/user.service'; -import {VisitorService} from '../../services/visitor/visitor.service'; -import {WebUpdateService} from '../../services/update/web-update.service'; -import {LogService} from '../../services/log/log.service'; -import {Observable} from 'rxjs'; - - -@Component({ - selector: 'app-a-index', - templateUrl: './a-index.component.html', - styleUrls: ['./a-index.component.css'] -}) -export class AIndexComponent implements OnInit { - - constructor(public userService: UserService, - public visitorService: VisitorService, - public webUpdateService: WebUpdateService, - public logService: LogService) { - } - - Loading: boolean = false; - ip: string; - location: string; - - ngOnInit() { - if (this.userService.userInfo) { - if (this.userService.userInfo.role === 'admin') { - this.admin(); - } else { - this.user(); - } - } else { - this.userService.getUserInfo().subscribe(data => { - if (data.result.role === 'admin') { - this.admin(); - } else { - this.user(); - } - }); - } - } - - admin() { - if (!this.visitorService.dayVisit) { - this.visitorService.getDayVisitor(); - } - this.visitorService.getTotalVisitorCount(); - if (!this.webUpdateService.lastestUpdateTime) { - this.webUpdateService.getLastestUpdateTime(); - } - this.readLog(); - } - - user() { - this.visitorService.getLocalIp().subscribe(data => { - if (data.code === 0) { - this.ip = data.result; - const getip = this.visitorService.getIp(this.ip); - if (getip instanceof Observable) { - getip.subscribe(ipOb => { - this.location = ipOb.result; - }); - } else { - this.location = getip; - } - } - }); - } - - readLog() { - this.Loading = true; - this.logService.getLog().subscribe(date => { - setTimeout(() => { - this.Loading = false; - }, 100); - }); - } - -} diff --git a/admin/src/app/pages/article-manager/article-manager.component.css b/admin/src/app/pages/article-manager/article-manager.component.css deleted file mode 100644 index 14d2110..0000000 --- a/admin/src/app/pages/article-manager/article-manager.component.css +++ /dev/null @@ -1,6 +0,0 @@ - -.popup-content { - text-align: center; - height: 70px; -} - diff --git a/admin/src/app/pages/article-manager/article-manager.component.html b/admin/src/app/pages/article-manager/article-manager.component.html deleted file mode 100644 index 9e4f9d3..0000000 --- a/admin/src/app/pages/article-manager/article-manager.component.html +++ /dev/null @@ -1,73 +0,0 @@ - - -
-
-
-
文章管理
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
ID标题发布日期更新日期阅读量文章状态管理
{{article.id}}{{article.title}} - {{article.publishDateFormat}}{{article.updateDateFormat}}{{article.readingNumber}} - - - - 编辑 - - - - 更多 - - - - - - -
- - - - -
- - -
-
diff --git a/admin/src/app/pages/article-manager/article-manager.component.spec.ts b/admin/src/app/pages/article-manager/article-manager.component.spec.ts deleted file mode 100644 index 2fc8ace..0000000 --- a/admin/src/app/pages/article-manager/article-manager.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ArticleManagerComponent } from './article-manager.component'; - -describe('ArticleManagerComponent', () => { - let component: ArticleManagerComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ ArticleManagerComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ArticleManagerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/article-manager/article-manager.component.ts b/admin/src/app/pages/article-manager/article-manager.component.ts deleted file mode 100644 index 0de6910..0000000 --- a/admin/src/app/pages/article-manager/article-manager.component.ts +++ /dev/null @@ -1,50 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {NzMessageService} from 'ng-zorro-antd'; -import {ArticleService} from '../../services/article/article.service'; - -@Component({ - selector: 'app-article-manager', - templateUrl: './article-manager.component.html', - styleUrls: ['./article-manager.component.css'] -}) -export class ArticleManagerComponent implements OnInit { - - constructor(private message: NzMessageService, - public articleService: ArticleService) { - - } - - - public pageNum = 1; - - public pageSize = 10; - - showPupup = false; - - ngOnInit() { - this.getData(); - } - - getData() { - this.articleService.getArticle(this.pageNum, this.pageSize); - } - - - doDel(id) { - this.showPupup = false; - this.articleService.deleteArticle(id).subscribe(data => { - if (data.code === 0) { - this.message.success('删除成功'); - this.getData(); - } else { - this.message.error('失败,原因:' + data.msg); - } - }); - } - - toPage(e: number) { - this.pageNum = e; - this.getData(); - } - -} diff --git a/admin/src/app/pages/category-manager/category-manager.component.css b/admin/src/app/pages/category-manager/category-manager.component.css deleted file mode 100644 index 9f2aa19..0000000 --- a/admin/src/app/pages/category-manager/category-manager.component.css +++ /dev/null @@ -1,4 +0,0 @@ -a{ - padding: 10px 0; - z-index: 5; -} \ No newline at end of file diff --git a/admin/src/app/pages/category-manager/category-manager.component.html b/admin/src/app/pages/category-manager/category-manager.component.html deleted file mode 100644 index 1b4ed00..0000000 --- a/admin/src/app/pages/category-manager/category-manager.component.html +++ /dev/null @@ -1,66 +0,0 @@ - -
-
-
- 分类管理 - -
- -
- - - - - - - - - - - - - - - - - - - - - -
ID分类名称分类文章文章数目管理
{{category.id}}{{category.name}}{{category.articles}}{{category.articles.length}} - - - - 查看 - - - - - 更多 - - - - - -
-
- - -
- -
- - - - - diff --git a/admin/src/app/pages/category-manager/category-manager.component.spec.ts b/admin/src/app/pages/category-manager/category-manager.component.spec.ts deleted file mode 100644 index 17c4dd5..0000000 --- a/admin/src/app/pages/category-manager/category-manager.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CategoryManagerComponent } from './category-manager.component'; - -describe('CategoryManagerComponent', () => { - let component: CategoryManagerComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CategoryManagerComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CategoryManagerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/category-manager/category-manager.component.ts b/admin/src/app/pages/category-manager/category-manager.component.ts deleted file mode 100644 index 91d07aa..0000000 --- a/admin/src/app/pages/category-manager/category-manager.component.ts +++ /dev/null @@ -1,95 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {NzMessageService} from 'ng-zorro-antd'; -import {CategoryService} from '../../services/category/category.service'; - -@Component({ - selector: 'app-category-manager', - templateUrl: './category-manager.component.html', - styleUrls: ['./category-manager.component.css'] -}) -export class CategoryManagerComponent implements OnInit { - - constructor(public categoryService: CategoryService, private message: NzMessageService) { - } - - showPupup = false; - - updateReqBody = { - id: null, - name: null - }; - isAddNowOne = false; // 是否是新增分类的标识 - - ngOnInit() { - this.getData(); - } - - getData() { - if (this.categoryService.categories) { - return; - } - this.categoryService.getAllCategory(); - } - - edit(id, name) { - this.showPupup = true; - this.updateReqBody.id = id; - this.updateReqBody.name = name; - this.isAddNowOne = false; - } - - submit() { - if (this.updateReqBody.name === '') { - alert('不能修改为空值!'); - return; - } - this.showPupup = false; - if (!this.isAddNowOne) { - // 更新 - this.categoryService.update(this.updateReqBody).subscribe(data => { - if (data.code === 0) { - this.message.success('修改成功'); - for (let i = 0; i < this.categoryService.categories.length; i++) { - if ( this.categoryService.categories[i].id === this.updateReqBody.id) { - this.categoryService.categories[i].name = this.updateReqBody.name; - } - } - } else { - this.message.error('修改失败,原因:' + data.msg); - } - }); - } else { - // 新建 - this.categoryService.create(this.updateReqBody.name).subscribe(data => { - if (data.code === 0) { - this.message.success('新增成功'); - } else { - this.message.error('新增失败,原因:' + data.msg); - } - }); - } - } - - - doDel(id) { - - this.categoryService.delete(id).subscribe(data => { - if (data.code === 0) { - this.message.success('删除成功'); - } else { - this.message.error('删除失败,原因:' + data.msg); - } - }); - } - - addNewOne() { - this.showPupup = true; - this.updateReqBody.name = name; - this.isAddNowOne = true; - } - - cancel() { - this.showPupup = !this.showPupup; - } - -} diff --git a/admin/src/app/pages/comment-manager/comment-manager.component.css b/admin/src/app/pages/comment-manager/comment-manager.component.css deleted file mode 100644 index 725b953..0000000 --- a/admin/src/app/pages/comment-manager/comment-manager.component.css +++ /dev/null @@ -1,16 +0,0 @@ -.modal-mask { - background: black; - opacity: 0.4; - position: absolute; - overflow: hidden; - top: 0; - bottom: 0; - left: 0; - right: 0; -} - -.comment { - border: 1px solid #cccccc; - border-radius: 5px; - padding: 5px 10px; -} diff --git a/admin/src/app/pages/comment-manager/comment-manager.component.html b/admin/src/app/pages/comment-manager/comment-manager.component.html deleted file mode 100644 index 163cef5..0000000 --- a/admin/src/app/pages/comment-manager/comment-manager.component.html +++ /dev/null @@ -1,174 +0,0 @@ - -
-
- -
评论管理 - -
- - - -
-
- - - - - - - - - - - - - - - - - - - -
ID文章标题评论内容评论日期管理
{{comment.id}} - {{comment.articleTitle}} - - {{comment.content.length > 40 ? (comment.content.substr(0, 40) + '...') : comment.content}} - - 查看 - {{comment.date}} - - 编辑 - - - 更多 - - - - -
- - -
-
- - - -
-
- - - - - - - - - - - - - - - - - - - - -
ID留言者留言内容留言日期管理
{{leaveMsg.id}}{{leaveMsg.authorName}} - {{leaveMsg.content.length > 40 ? (leaveMsg.content.substr(0, 40) + '...') : leaveMsg.content}} - 查看 - {{leaveMsg.date}} - - 编辑 - - - - 更多 - - - - - -
- - -
-
- -
-
- - - - - - - - - - - - - - -

{{commentDetail.content}}

-
- - - - - -

{{secLeaveMsg.content}}

-
-
-
- - - - - - - - - - - - -
-
diff --git a/admin/src/app/pages/comment-manager/comment-manager.component.spec.ts b/admin/src/app/pages/comment-manager/comment-manager.component.spec.ts deleted file mode 100644 index 5d61b01..0000000 --- a/admin/src/app/pages/comment-manager/comment-manager.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CommentManagerComponent } from './comment-manager.component'; - -describe('CommentManagerComponent', () => { - let component: CommentManagerComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CommentManagerComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CommentManagerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/comment-manager/comment-manager.component.ts b/admin/src/app/pages/comment-manager/comment-manager.component.ts deleted file mode 100644 index e4b35e8..0000000 --- a/admin/src/app/pages/comment-manager/comment-manager.component.ts +++ /dev/null @@ -1,130 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {NzMessageService} from 'ng-zorro-antd'; -import {UserService} from '../../services/user/user.service'; -import {CommentService} from '../../services/comment/comment.service'; -import {Comment} from '../../classes/comment'; -import {CommentReq} from '../../classes/commentReq'; - -@Component({ - selector: 'app-comment-manager', - templateUrl: './comment-manager.component.html', - styleUrls: ['./comment-manager.component.css'] -}) -export class CommentManagerComponent implements OnInit { - - constructor(public userService: UserService, - public commentService: CommentService, - private message: NzMessageService) { - } - - pageNum: number = 1; - pageSize: number = 10; - - commentType: number = 0; - - showPupup = false; - - updateReqBody = { - id: null, - type: null, - content: null - }; - showCommentDetail: boolean = false; - commentDetail: Comment = new Comment(); - - responseComment: CommentReq = new CommentReq(true); - - ngOnInit() { - if (!this.userService.userInfo) { - setTimeout(() => { - this.doInquire(); - }, 500); - } else { - this.doInquire(); - } - } - - doInquire() { - const isAdmin: boolean = this.userService.userInfo.role === 'admin'; - if (this.commentType) { - this.commentService.getComments(this.pageNum, this.pageSize, isAdmin); - } else { - this.commentService.getLeaveMsg(this.pageNum, this.pageSize, isAdmin); - } - } - - - toPage(e: number) { - this.pageNum = e; - this.doInquire(); - } - - prepareComment(comment: Comment) { - this.showCommentDetail = true; - this.commentDetail = comment; - this.commentService.getByPid(comment.id).subscribe(data => { - if (data.code === 0) { - this.commentDetail.child = data.result.list; - } - }); - // tslint:disable-next-line:triple-equals - this.responseComment.comment = this.commentType == 1; - // 若展示的是顶级评论 则pid为顶级评论的id 否则为该二级评论的pid - this.responseComment.pid = this.commentDetail.pid === -1 ? this.commentDetail.id : this.commentDetail.pid; - this.responseComment.articleID = this.commentDetail.articleID; - console.log(`${this.commentType.valueOf() == 1} and type is ${this.commentType}`); - } - - edit(type, id, content) { - this.showPupup = true; - this.updateReqBody.id = id; - this.updateReqBody.type = type; - this.updateReqBody.content = content; - } - - update() { - if (this.updateReqBody.content === '') { - this.message.warning('不能为空'); - return; - } - this.showPupup = false; - this.commentService.update(this.updateReqBody).subscribe(data => { - if (data.code === 0) { - this.message.success('修改成功!'); - } - }); - } - - - doDel(id) { - this.commentService.delete(id).subscribe(data => { - if (data.code === 0) { - this.message.success('删除成功'); - } else { - this.message.error('删除失败,原因:' + data.msg); - } - }); - } - - - reply() { - if (this.responseComment.content == null || this.responseComment.content === '') { - this.message.info('内容不能为空'); - return; - } - this.responseComment.content = `@${this.commentDetail.authorName} ${this.responseComment.content}` - this.commentService.rely(this.responseComment).subscribe(data => { - if (data.code === 0) { - this.commentDetail.child.push(data.result); - this.message.success('回复成功'); - this.responseComment = new CommentReq(true); - // tslint:disable-next-line:triple-equals - if (this.commentType == 1) { - this.commentService.currentComment.list.push(data.result); - } else { - this.commentService.currentLeaveMsg.list.push(data.result); - } - } - }); - } -} diff --git a/admin/src/app/pages/links-manager/links.component.html b/admin/src/app/pages/links-manager/links.component.html deleted file mode 100644 index 1af865d..0000000 --- a/admin/src/app/pages/links-manager/links.component.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - diff --git a/admin/src/app/pages/links-manager/links.component.spec.ts b/admin/src/app/pages/links-manager/links.component.spec.ts deleted file mode 100644 index 4975f34..0000000 --- a/admin/src/app/pages/links-manager/links.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { LinksManagerComponent } from './links.component'; - -describe('LinksComponent', () => { - let component: LinksManagerComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [LinksManagerComponent] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(LinksManagerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/links-manager/links.component.ts b/admin/src/app/pages/links-manager/links.component.ts deleted file mode 100644 index b3e92fb..0000000 --- a/admin/src/app/pages/links-manager/links.component.ts +++ /dev/null @@ -1,104 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {NzMessageService} from 'ng-zorro-antd'; -import {LinkService} from '../../services/link/link.service'; -import {Link} from '../../classes/link'; - -@Component({ - selector: 'app-links', - templateUrl: './links.component.html', - styleUrls: ['./links.component.css'] -}) -export class LinksManagerComponent implements OnInit { - - constructor(public linkService: LinkService, private message: NzMessageService) { - } - - pageNum: number = 1; - pageSize: number = 10; - - showPupup = false; - - updateReqBody = new Link(); - - isUpdate; - - ngOnInit() { - this.getData(); - } - - getData() { - this.linkService.getLinks(this.pageNum, this.pageSize); - } - - toPage(e: number) { - this.pageNum = e; - this.getData(); - } - - edit(link) { - this.showPupup = true; - this.updateReqBody = link; - this.isUpdate = true; - } - - update() { - if (this.updateReqBody.name === '') { - this.message.warning('友链名称不能为空'); - return; - } - if (this.updateReqBody.url === '') { - this.message.warning('友链链接不能为空'); - return; - } - // @ts-ignore - // tslint:disable-next-line:triple-equals - if (this.updateReqBody.open == '') { - this.message.warning('友链状态不能为空'); - return; - } - this.showPupup = false; - if (this.isUpdate) { - this.linkService.update(this.updateReqBody).subscribe(data => { - if (data.code === 0) { - this.message.success('更新成功'); - this.getData(); - } else { - this.message.error('更新失败,原因:' + data.msg); - } - this.updateReqBody.name = null; - this.updateReqBody.url = null; - this.updateReqBody.open = null; - }); - } else { - this.linkService.create(this.updateReqBody).subscribe(data => { - if (data.code === 0) { - this.message.success('新增成功'); - this.getData(); - } else { - this.message.error('新增失败,原因:' + data.msg); - } - this.updateReqBody.name = null; - this.updateReqBody.url = null; - this.updateReqBody.open = null; - }); - } - } - - add() { - this.showPupup = true; - this.isUpdate = false; - } - - doDel(id) { - this.linkService.delete(id).subscribe(data => { - if (data.code === 0) { - this.message.success('删除成功!'); - this.getData(); - } else { - this.message.error('删除失败,原因:' + data.msg); - } - }); - } - - -} diff --git a/admin/src/app/pages/tag-manager/tag-manager.component.css b/admin/src/app/pages/tag-manager/tag-manager.component.css deleted file mode 100644 index 307e2f8..0000000 --- a/admin/src/app/pages/tag-manager/tag-manager.component.css +++ /dev/null @@ -1,11 +0,0 @@ - - -#publishArticle{ - width: 100%; - height: 32px; - border-bottom-left-radius: 10px; - border-bottom-right-radius: 10px; - border: none; - background: turquoise; - color: white -} diff --git a/admin/src/app/pages/tag-manager/tag-manager.component.html b/admin/src/app/pages/tag-manager/tag-manager.component.html deleted file mode 100644 index f0375f0..0000000 --- a/admin/src/app/pages/tag-manager/tag-manager.component.html +++ /dev/null @@ -1,68 +0,0 @@ - -
-
-
-
标签管理
-
- -
-
- - - - - - - - - - - - - - - - - - - - -
ID标签名称标签文章文章数目管理
{{tag.id}}{{tag.name}}{{tag.articles}}{{tag.articles.length}} - - - 查看 - - - - - 更多 - - - - - -
- -
-
- - -
- -
- - - - - - - diff --git a/admin/src/app/pages/tag-manager/tag-manager.component.spec.ts b/admin/src/app/pages/tag-manager/tag-manager.component.spec.ts deleted file mode 100644 index 0c4132e..0000000 --- a/admin/src/app/pages/tag-manager/tag-manager.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { TagManagerComponent } from './tag-manager.component'; - -describe('TagManagerComponent', () => { - let component: TagManagerComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ TagManagerComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(TagManagerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/tag-manager/tag-manager.component.ts b/admin/src/app/pages/tag-manager/tag-manager.component.ts deleted file mode 100644 index f80b138..0000000 --- a/admin/src/app/pages/tag-manager/tag-manager.component.ts +++ /dev/null @@ -1,72 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {NzMessageService} from 'ng-zorro-antd'; -import {TagService} from '../../services/tag/tag.service'; - -@Component({ - selector: 'app-tag-manager', - templateUrl: './tag-manager.component.html', - styleUrls: ['./tag-manager.component.css'] -}) -export class TagManagerComponent implements OnInit { - - constructor(public tagService: TagService, private message: NzMessageService) { - } - - pageNum: number = 1; - - pageSize: number = 10; - - showPupup: boolean = false; - - updateReqBody = { - id: null, - name: null - }; - - - ngOnInit() { - this.getData(); - } - - getData() { - this.tagService.getTags(this.pageNum, this.pageSize); - } - - toPage(e: number) { - this.pageNum = e; - this.getData(); - } - - - edit(id, name) { - this.showPupup = true; - this.updateReqBody.id = id; - this.updateReqBody.name = name; - } - - update() { - if (this.updateReqBody.name === '') { - this.message.warning('不能为空'); - return; - } - this.showPupup = false; - this.tagService.update(this.updateReqBody.id, this.updateReqBody.name).subscribe(data => { - if (data.code === 0) { - this.message.success('修改成功!'); - this.getData(); - } - }); - } - - - doDel(id) { - this.tagService.delete(id).subscribe(data => { - if (data.code === 0) { - this.message.success('删除成功'); - this.getData(); - } else { - this.message.error(`删除失败,原因:${data.msg}`); - } - }); - } -} diff --git a/admin/src/app/pages/update-manager/update.component.html b/admin/src/app/pages/update-manager/update.component.html deleted file mode 100644 index 49c6368..0000000 --- a/admin/src/app/pages/update-manager/update.component.html +++ /dev/null @@ -1,54 +0,0 @@ -
-
-
- 更新管理 - -
- -
-
- - - - - - - - - - - - - - - - - - -
ID更新内容更新日期管理
{{update.id}} - {{update.info.length > 20 ? update.info.substr(0, 20) + '...' : update.info}} - {{update.time}} -
- 编辑 - - 删除 -
-
- -
-
-
-
- - - - - - - - - diff --git a/admin/src/app/pages/update-manager/update.component.spec.ts b/admin/src/app/pages/update-manager/update.component.spec.ts deleted file mode 100644 index 07fd0c9..0000000 --- a/admin/src/app/pages/update-manager/update.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { UpdateManagerComponent } from './update.component'; - -describe('UpdateComponent', () => { - let component: UpdateManagerComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [UpdateManagerComponent] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(UpdateManagerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/update-manager/update.component.ts b/admin/src/app/pages/update-manager/update.component.ts deleted file mode 100644 index b6bb5c4..0000000 --- a/admin/src/app/pages/update-manager/update.component.ts +++ /dev/null @@ -1,95 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {NzMessageService} from 'ng-zorro-antd'; -import {WebUpdateService} from '../../services/update/web-update.service'; -import {UpdateInfo} from "../../classes/updateInfo"; - -@Component({ - selector: 'app-update', - templateUrl: './update.component.html', - styleUrls: ['./update.component.css'] -}) -export class UpdateManagerComponent implements OnInit { - - constructor(public updateService: WebUpdateService, private message: NzMessageService) { - } - - isUpdate = false; - - pageNum: number = 1; - pageSize: number = 10; - - showPupup = false; - - updateReqBody = new UpdateInfo(); - - ngOnInit() { - this.getData(); - } - - getData() { - this.updateService.getUpdateInfo(this.pageNum, this.pageSize); - } - - toPage(e: number) { - this.pageNum = e; - this.getData(); - } - - edit(link) { - this.showPupup = true; - this.updateReqBody = link; - this.isUpdate = true; - } - - submit() { - if (this.updateReqBody.info === '') { - this.message.warning('更新内容不能为空'); - return; - } - - this.showPupup = false; - if (this.isUpdate) { - this.updateService.update(this.updateReqBody).subscribe(data => { - if (data.code === 0) { - this.message.success('更新成功'); - this.getData(); - } else { - this.message.error('更新失败,原因:' + data.msg); - } - }); - } else { - this.updateReqBody.id = null; - this.updateService.create(this.updateReqBody.info).subscribe(data => { - if (data.code === 0) { - this.message.success('新增成功'); - this.getData(); - } else { - this.message.error('新增失败,原因:' + data.msg); - } - }); - } - this.updateReqBody.id = null; - this.updateReqBody.info = ''; - } - - add() { - this.showPupup = true; - this.isUpdate = false; - this.updateReqBody.id = null; - this.updateReqBody.info = ''; - } - - - doDel(id: number) { - this.updateService.delete(id).subscribe(data => { - if (data.code === 0) { - this.message.success('删除成功!'); - this.getData(); - } else { - this.message.error('删除失败,原因:' + data.msg); - } - }); - } - - -} diff --git a/admin/src/app/pages/user-info/user-info.component.css b/admin/src/app/pages/user-info/user-info.component.css deleted file mode 100644 index 8a5cf8b..0000000 --- a/admin/src/app/pages/user-info/user-info.component.css +++ /dev/null @@ -1,78 +0,0 @@ -.label { - margin-bottom: 20px; - font-weight: bold; - font-size: 1.4em; - text-align: center; -} - -table { - width: auto; -} - -td { - border: none; -} - -tr { - background: none; -} - -input { - width: 200px; - border: none; - border-radius: 5px; - background: #eeeeee; - height: 30px; - padding-left: 5px; -} - -#user-gender input { - width: auto; - height: auto; - margin-left: 10px; -} - -.submit { - width: 80%; - margin-left: 10%; -} - -#avatar { - position: absolute; - right: 20px; - top: 30%; - border: 1px solid #999999; - border-radius: 1px; - padding: 10px; -} - -#avatarimg { - width: 100px; - height: 100px; - margin: 10px; -} - -#info { - width: 350px; - position: relative; - top: 50%; - left: 50%; - transform: translate(-50%, 50%); -} - -#info i { - margin-right: 10px; -} - -#info .sendEmail { - position: absolute; - margin-top: 3px; - top: 0; - right: 15px; -} - -#info input { - width: 90%; - margin-bottom: 10px; - height: 40px; -} diff --git a/admin/src/app/pages/user-info/user-info.component.html b/admin/src/app/pages/user-info/user-info.component.html deleted file mode 100644 index c5ee8be..0000000 --- a/admin/src/app/pages/user-info/user-info.component.html +++ /dev/null @@ -1,46 +0,0 @@ - -
-
-
-
个人资料 / - Personal information -
-
- -
- -
- - - -
- - -
- - -
- -
- -
-

头像

-
- avatar -
-
- - - -
-
- - -
- -
diff --git a/admin/src/app/pages/user-info/user-info.component.spec.ts b/admin/src/app/pages/user-info/user-info.component.spec.ts deleted file mode 100644 index 946e533..0000000 --- a/admin/src/app/pages/user-info/user-info.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { UserInfoComponent } from './user-info.component'; - -describe('UserInfoComponent', () => { - let component: UserInfoComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ UserInfoComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(UserInfoComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/user-info/user-info.component.ts b/admin/src/app/pages/user-info/user-info.component.ts deleted file mode 100644 index 2c6b43f..0000000 --- a/admin/src/app/pages/user-info/user-info.component.ts +++ /dev/null @@ -1,74 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {NzMessageService} from 'ng-zorro-antd'; -import {UserService} from '../../services/user/user.service'; -import {User} from '../../classes/user'; -import {environment} from '../../../environments/environment'; - -@Component({ - selector: 'app-user-info', - templateUrl: './user-info.component.html', - styleUrls: ['./user-info.component.css'] -}) -export class UserInfoComponent implements OnInit { - - constructor(public userService: UserService, - private message: NzMessageService) { - } - - host: string; - - user: User = new User(); - - clickable: boolean = true; - - ngOnInit() { - if (!this.userService.userInfo) { - setTimeout(() => { - this.user = this.userService.userInfo; - }, 500); - } else { - this.user = this.userService.userInfo; - } - this.host = environment.host; - } - - - userInfoSubmit() { - const info = { - desc: this.user.desc, - displayName: this.user.displayName - }; - this.userService.updateInfo(info).subscribe(data => { - if (data.code === 0) { - this.message.success('修改成功'); - } else if (data.code === 301) { - window.location.href = '/login'; - } else { - this.message.error('修改信息失败,原因:' + data.msg); - } - }); - } - - sendEmail() { - this.clickable = false; - if (!this.userService.userInfo) { - window.location.href = '/login'; - } - this.userService.sendEmail().subscribe(data => { - if (data.code === 0) { - this.message.success('发送成功!请前往邮箱进行激活'); - } else { - this.message.error(data.msg); - } - }); - } - - avatarUpload(info: any) { - if (info.type === 'success' && info.file.response.code === 0) { - const time = new Date().valueOf(); - this.userService.userInfo.avatarImgUrl = this.userService.avatarHost + '/' + info.file.response.result; - // 加上时间戳 让图片自动预览,避免读取本地缓存而不显示新头像 - this.user.avatarImgUrl = this.userService.avatarHost + '/' + info.file.response.result + '?time=' + time; - } - } -} diff --git a/admin/src/app/pages/user-manager/user-manager.component.css b/admin/src/app/pages/user-manager/user-manager.component.css deleted file mode 100644 index bcca1b1..0000000 --- a/admin/src/app/pages/user-manager/user-manager.component.css +++ /dev/null @@ -1,7 +0,0 @@ -.error { - padding-left: 20px; - color: red; - border: 1px solid #eb2f96; - border-radius: 2px; - display: block; -} \ No newline at end of file diff --git a/admin/src/app/pages/user-manager/user-manager.component.html b/admin/src/app/pages/user-manager/user-manager.component.html deleted file mode 100644 index 0181e72..0000000 --- a/admin/src/app/pages/user-manager/user-manager.component.html +++ /dev/null @@ -1,77 +0,0 @@ - -
-
-
-
用户管理
-
- -
-
- - - - - - - - - - - - - - - - - - - - -
ID用户邮箱用户昵称用户角色管理
{{user.id}}{{user.email}}{{user.displayName}}{{user.role}} - 编辑 - - - 删除 -
- -
-
- - -
- -
- - -
- - - - - - 邮箱已被占用! - - - - - - - - - - - - -
- - - - -
- - -
-
diff --git a/admin/src/app/pages/user-manager/user-manager.component.spec.ts b/admin/src/app/pages/user-manager/user-manager.component.spec.ts deleted file mode 100644 index 12e22ec..0000000 --- a/admin/src/app/pages/user-manager/user-manager.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { UserManagerComponent } from './user-manager.component'; - -describe('UserManagerComponent', () => { - let component: UserManagerComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ UserManagerComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(UserManagerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/user-manager/user-manager.component.ts b/admin/src/app/pages/user-manager/user-manager.component.ts deleted file mode 100644 index 7df9fb7..0000000 --- a/admin/src/app/pages/user-manager/user-manager.component.ts +++ /dev/null @@ -1,91 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {UserService} from '../../services/user/user.service'; -import {User} from '../../classes/user'; -import {NzMessageService} from 'ng-zorro-antd'; - -@Component({ - selector: 'app-user-manager', - templateUrl: './user-manager.component.html', - styleUrls: ['./user-manager.component.css'] -}) -export class UserManagerComponent implements OnInit { - - constructor(public userService: UserService, - private messageService: NzMessageService) { - } - - pageNum: number = 1; - pageSize: number = 10; - showPupup: boolean = false; - editUser: User = new User(); - showError: boolean = false; - formerEmail: string; - - ngOnInit() { - this.userService.getPageUser(this.pageNum, this.pageSize); - } - - toPage(e: number) { - this.pageNum = e; - this.userService.getPageUser(this.pageNum, this.pageSize); - } - - edit(user: User) { - this.showPupup = true; - this.showError = false; - // 避免引用赋值,采用json进行浅拷贝!! - this.editUser = JSON.parse(JSON.stringify(user)); - this.formerEmail = this.editUser.email; - } - - delete(id: number) { - this.userService.delete(id).subscribe(data => { - if (data.code === 0) { - if (data.result[0].status) { - this.messageService.success('删除成功!'); - this.userService.getPageUser(this.pageNum, this.pageSize); - } else { - this.messageService.error(`删除失败,原因:${data.result[0].msg}`); - } - } else { - this.messageService.error(`请求失败,原因:${data.msg}`); - } - }); - } - - update() { - this.editUser.recentlyLandedDate = null; - this.editUser.avatarImgUrl = null; - if (this.showError) { - this.showPupup = false; - this.messageService.warning('邮箱不可用,请修改!'); - return; - } - this.userService.update(this.editUser).subscribe(data => { - if (data.code === 0) { - this.messageService.success('修改成功!'); - if (this.userService.userInfo.id === this.editUser.id) { - this.userService.userInfo = this.editUser; - } - this.userService.getPageUser(this.pageNum, this.pageSize, true); - } else { - this.messageService.error('修改失败!'); - } - }); - this.showPupup = false; - } - - - getEmailStatus() { - if (this.editUser.email === this.formerEmail) { - return; - } - this.userService.getExistOfEmail(this.editUser.email).subscribe(data => { - if (data.code === 0) { - this.showError = data.result; - } else { - this.messageService.error(data.msg); - } - }); - } -} diff --git a/admin/src/app/pages/visitor-manager/visitor-manager.component.html b/admin/src/app/pages/visitor-manager/visitor-manager.component.html deleted file mode 100644 index c6d69f5..0000000 --- a/admin/src/app/pages/visitor-manager/visitor-manager.component.html +++ /dev/null @@ -1,49 +0,0 @@ - -
-
-
-
访问管理 - ---当日访问量{{visitorService.dayVisit}} -
-
- -
-
- - - - - - - - - - - - - - - - - - - - -
IDip地址访问日期浏览器类型系统
{{visitor.id}} - {{visitor.ip}} - - {{visitor.date}} - {{visitor.browserName}} - - {{visitor.osname}} -
- -
-
- - -
-
diff --git a/admin/src/app/pages/visitor-manager/visitor-manager.component.spec.ts b/admin/src/app/pages/visitor-manager/visitor-manager.component.spec.ts deleted file mode 100644 index 373cb09..0000000 --- a/admin/src/app/pages/visitor-manager/visitor-manager.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { VisitorManagerComponent } from './visitor-manager.component'; - -describe('VisitorManagerComponent', () => { - let component: VisitorManagerComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ VisitorManagerComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(VisitorManagerComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/admin/src/app/pages/visitor-manager/visitor-manager.component.ts b/admin/src/app/pages/visitor-manager/visitor-manager.component.ts deleted file mode 100644 index 98fc608..0000000 --- a/admin/src/app/pages/visitor-manager/visitor-manager.component.ts +++ /dev/null @@ -1,58 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {VisitorService} from '../../services/visitor/visitor.service'; - -@Component({ - selector: 'app-visitor-manager', - templateUrl: './visitor-manager.component.html', - styleUrls: ['./visitor-manager.component.css'] -}) -export class VisitorManagerComponent implements OnInit { - - constructor(public visitorService: VisitorService) { - - } - - - pageNum: number = 1; - pageSize: number = 10; - - - localIp = ''; - - location: string; - - - ngOnInit() { - this.getPageData(); - this.visitorService.getDayVisitor(); - this.visitorService.getLocalIp().subscribe(data => { - this.localIp = data.result; - }); - } - - - getIp(ip) { - const result = this.visitorService.getIp(ip); - if (typeof result === 'string') { - this.location = result; - return; - } - result.subscribe(data => { - if (data.code === 0) { - this.location = data.result; - } - }); - } - - getPageData() { - this.visitorService.getVisitor(this.pageNum, this.pageSize); - } - - - toPage(e) { - this.pageNum = e; - this.getPageData(); - } - - -} diff --git a/admin/src/app/services/article/article.service.spec.ts b/admin/src/app/services/article/article.service.spec.ts deleted file mode 100644 index a7d0be2..0000000 --- a/admin/src/app/services/article/article.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { ArticleService } from './article.service'; - -describe('ArticleService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: ArticleService = TestBed.get(ArticleService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/article/article.service.ts b/admin/src/app/services/article/article.service.ts deleted file mode 100644 index 55524c7..0000000 --- a/admin/src/app/services/article/article.service.ts +++ /dev/null @@ -1,49 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; -import {Page} from '../../classes/page'; -import {Article} from '../../classes/article'; -import {Observable, of} from 'rxjs'; -import {exist} from '../../utils/dataUtil'; - -@Injectable({ - providedIn: 'root' -}) -export class ArticleService { - - - constructor(public http: HttpService) { - } - - // 存储所有已经请求过的数据<首页数据> - pageList: Page
[] = []; - - currentPage: Page
; - - /** - * 获取文章 - * @param pageNum 页码数 - * @param pageSize 单页数据量 - */ - getArticle(pageNum: number, pageSize: number): object { - const articlePage = exist
(pageNum, pageSize, this.pageList); - if (articlePage) { - articlePage.subscribe(data => { - this.currentPage = data; - }); - return articlePage; - } - const observable = this.http.get('/admin/articles?page=' + pageNum + '&count=' + pageSize); - observable.subscribe(data => { - if (data.code === 0) { - this.currentPage = data.result; - this.pageList.push(data.result); - } - }); - return observable; - } - - deleteArticle(id) { - return this.http.delete('/admin/article/del?articleID=' + id); - } - -} diff --git a/admin/src/app/services/category/category.service.spec.ts b/admin/src/app/services/category/category.service.spec.ts deleted file mode 100644 index 822eeef..0000000 --- a/admin/src/app/services/category/category.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { CategoryService } from './category.service'; - -describe('CategoryService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: CategoryService = TestBed.get(CategoryService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/category/category.service.ts b/admin/src/app/services/category/category.service.ts deleted file mode 100644 index ed3971c..0000000 --- a/admin/src/app/services/category/category.service.ts +++ /dev/null @@ -1,56 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; -import {Category} from '../../classes/category'; - -@Injectable({ - providedIn: 'root' -}) -export class CategoryService { - - // FIXME : !!!!!!!!!!!!!!!!!!数据处理全部放到一个模块中!!!!!!!!!!!!!!!!!! - constructor(public http: HttpService) { - } - - categories: Category[]; - - getAllCategory() { - const observable = this.http.get('/categories'); - observable.subscribe((data) => { - if (data.code === 0) { - this.categories = data.result; - } - } - ); - return observable; - } - - update(submitBody: { id: number, name: string }) { - return this.http.put('/admin/category/update', submitBody, false); - } - - create(nameStr: string) { - const observable = this.http.post('/admin/category/create', {name: nameStr}, false); - observable.subscribe(data => { - if (data.code === 0) { - this.categories.push(data.result); - } - }); - return observable; - } - - delete(id: number) { - const observable = this.http.delete(`/admin/category/del?id=${id}`); - observable.subscribe(data => { - if (data.code === 0) { - // tslint:disable-next-line:prefer-for-of - for (let i = 0; i < this.categories.length; i++) { - if (this.categories[i].id === id) { - this.categories.splice(i, 1); - } - } - } - }); - return observable; - } - -} diff --git a/admin/src/app/services/comment/comment.service.spec.ts b/admin/src/app/services/comment/comment.service.spec.ts deleted file mode 100644 index 1e9f5e4..0000000 --- a/admin/src/app/services/comment/comment.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { CommentService } from './comment.service'; - -describe('CommentService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: CommentService = TestBed.get(CommentService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/comment/comment.service.ts b/admin/src/app/services/comment/comment.service.ts deleted file mode 100644 index 2c40acd..0000000 --- a/admin/src/app/services/comment/comment.service.ts +++ /dev/null @@ -1,98 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; -import {Page} from '../../classes/page'; -import {Comment} from '../../classes/comment'; -import {exist} from '../../utils/dataUtil'; -import {CommentReq} from "../../classes/commentReq"; - -@Injectable({ - providedIn: 'root' -}) -export class CommentService { - - constructor(public http: HttpService) { - } - - // 存放 - leaveMsgPage: Page[] = []; - - commentPage: Page[] = []; - - currentComment: Page; - - currentLeaveMsg: Page; - - /** - * 获取 评论 - * @param pageNum 页码 - * @param pageSize 单页数据数量 - * @param isAdmin 是否是管理员 - */ - getComments(pageNum: number, pageSize: number, isAdmin: boolean) { - const exist1 = exist(pageNum, pageSize, this.commentPage); - if (exist1) { - exist1.subscribe(data => { - this.currentComment = data; - }); - return exist1; - } - const observable = this.http.get(`/${isAdmin ? 'admin' : 'user'}/comment/type/1?count=${pageSize}&page=${pageNum}`); - observable.subscribe(data => { - if (data.code === 0) { - this.commentPage.unshift(data.result); - this.currentComment = data.result; - } - }); - return observable; - } - - /** - * 获取 留言 - * @param pageNum 页码 - * @param pageSize 单页数据数量 - * @param isAdmin 是否是管理员 - */ - getLeaveMsg(pageNum: number, pageSize: number, isAdmin: boolean) { - const exist1 = exist(pageNum, pageSize, this.leaveMsgPage); - if (exist1) { - exist1.subscribe(data => { - this.currentLeaveMsg = data; - }); - return exist1; - } - const observable = this.http.get(`/${isAdmin ? 'admin' : 'user'}/comment/type/0?count=${pageSize}&page=${pageNum}`); - observable.subscribe(data => { - if (data.code === 0) { - this.leaveMsgPage.unshift(data.result); - this.currentLeaveMsg = data.result; - } - }); - return observable; - } - - /** - * 回复评论/留言 - * @param responseComment 请求体 - */ - rely(responseComment: CommentReq) { - return this.http.post('/user/comment/create', responseComment, true); - } - - /** - * 通过父评论 获取回复 - * @param pid 父评论id - */ - getByPid(pid: number) { - return this.http.get('/comment/pid/' + pid + '?count=5&page=1'); - } - - update(subComment) { - return this.http.put('/user/comment/update', subComment); - } - - delete(id: number) { - return this.http.delete('/user/comment/del?id=' + id); - } - - -} diff --git a/admin/src/app/services/http.service.spec.ts b/admin/src/app/services/http.service.spec.ts deleted file mode 100644 index 50bf8e4..0000000 --- a/admin/src/app/services/http.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { HttpService } from './http.service'; - -describe('HttpService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: HttpService = TestBed.get(HttpService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/http.service.ts b/admin/src/app/services/http.service.ts deleted file mode 100644 index 71388a9..0000000 --- a/admin/src/app/services/http.service.ts +++ /dev/null @@ -1,103 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpClient, HttpHeaders} from '@angular/common/http'; -import {environment} from '../../environments/environment'; -import {Observable} from 'rxjs'; -import {Data} from '../classes/data'; -import {reqBody2Str} from '../utils/dataUtil'; - -@Injectable({ - providedIn: 'root' -}) -export class HttpService { - - constructor(public httpClient: HttpClient) { - this.host = environment.host; - const item = localStorage.getItem('token'); - this.token = item == null ? '' : item; - this.httpOptions = { - headers: new HttpHeaders({ - Accept: '*/*', - Authorization: this.token, - }), - withCredentials: true - }; - } - - // 请求的主机地址 - public host: string; - private token: string; - - /** - * http请求配置 - */ - private httpOptions: object; - - /** - * get 请求 - * @param path 路径 - */ - get(path: string): Observable { - return this.httpClient.get(this.getPath(path), this.httpOptions); - } - - /** - * post请求 - * @param path 路径 - * @param reqBody 请求体 - * @param isJson 请求数据是否是json格式 - */ - post(path: string, reqBody: object, isJson: boolean): Observable { - const Options = { - headers: new HttpHeaders({ - Accept: '*/*', - Authorization: this.token, - 'Content-Type': isJson ? 'application/json' : 'application/x-www-form-urlencoded' - }), - withCredentials: true - }; - return this.httpClient.post(this.getPath(path), isJson ? reqBody : reqBody2Str(reqBody), Options); - } - - /** - * put 请求 - * @param path 请求路径 - * @param reqBody 请求体 - * @param isJson 是否发生json格式数据到服务器 - */ - put(path: string, reqBody: object, isJson: boolean = false): Observable { - const Options = { - headers: new HttpHeaders({ - Accept: '*/*', - Authorization: this.token, - 'Content-Type': isJson ? 'application/json' : 'application/x-www-form-urlencoded' - }), - withCredentials: true - }; - return this.httpClient.put(this.getPath(path), isJson ? reqBody : reqBody2Str(reqBody), Options); - } - - /** - * delete 请求 - * @param path 请求路径 - */ - delete(path: string): Observable { - return this.httpClient.delete(this.getPath(path), this.httpOptions); - } - - /** - * 检查path 并拼接 - * @param path 请求路径 - * @return 拼接后的url - */ - private getPath(path: string): string { - if (path == null || path.length === 0 || path.substr(0, 1) !== '/') { - throw new Error('路径不合法'); - } - return this.host + path; - } - - removeToken() { - localStorage.removeItem('token'); - this.token = null; - } -} diff --git a/admin/src/app/services/link/link.service.spec.ts b/admin/src/app/services/link/link.service.spec.ts deleted file mode 100644 index 2b02901..0000000 --- a/admin/src/app/services/link/link.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { LinkService } from './link.service'; - -describe('LinkService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: LinkService = TestBed.get(LinkService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/link/link.service.ts b/admin/src/app/services/link/link.service.ts deleted file mode 100644 index d2d0fb2..0000000 --- a/admin/src/app/services/link/link.service.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; -import {Link} from '../../classes/link'; -import {Page} from '../../classes/page'; - -@Injectable({ - providedIn: 'root' -}) -export class LinkService { - - constructor(public http: HttpService) { - } - - // 不采取存储page[] :: 数据量较少 - public currentPage: Page; - - getLinks(pageNum: number, pageSize: number) { - const observable = this.http.get(`/admin/links?page=${pageNum}&count=${pageSize}`); - observable.subscribe(data => { - if (data.code === 0) { - this.currentPage = data.result; - } - }); - return observable; - } - - update(submitBody: Link) { - return this.http.put('/admin/links/update', submitBody, true); - } - - create(submitBody: Link) { - submitBody.id = null; - return this.http.post('/admin/links/create', submitBody, true); - } - - delete(id) { - return this.http.delete(`/admin/links/del/${id}`); - } -} diff --git a/admin/src/app/services/log/log.service.spec.ts b/admin/src/app/services/log/log.service.spec.ts deleted file mode 100644 index 0d5935d..0000000 --- a/admin/src/app/services/log/log.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { LogService } from './log.service'; - -describe('LogService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: LogService = TestBed.get(LogService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/log/log.service.ts b/admin/src/app/services/log/log.service.ts deleted file mode 100644 index 064f49d..0000000 --- a/admin/src/app/services/log/log.service.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; - -@Injectable({ - providedIn: 'root' -}) -export class LogService { - - constructor(private http: HttpService) { - } - - logText: string; - - getLog() { - // @ts-ignore - const observable = this.http.httpClient.get('https://api.celess.cn/blog.log', {responseType: 'text'}); - observable.subscribe(data => { - this.logText = data; - }); - return observable; - } -} diff --git a/admin/src/app/services/tag/tag.service.spec.ts b/admin/src/app/services/tag/tag.service.spec.ts deleted file mode 100644 index f09b29f..0000000 --- a/admin/src/app/services/tag/tag.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { TagService } from './tag.service'; - -describe('TagService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: TagService = TestBed.get(TagService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/tag/tag.service.ts b/admin/src/app/services/tag/tag.service.ts deleted file mode 100644 index 1257f95..0000000 --- a/admin/src/app/services/tag/tag.service.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; -import {Tag} from '../../classes/tag'; -import {Page} from '../../classes/page'; -import {exist} from '../../utils/dataUtil'; - -@Injectable({ - providedIn: 'root' -}) -export class TagService { - - constructor(public http: HttpService) { - } - - tagPages: Page[] = []; - currentTagPage: Page; - - getTags(pageNum: number, pageSize: number) { - const exist1 = exist(pageNum, pageSize, this.tagPages); - if (exist1) { - exist1.subscribe(data => { - this.currentTagPage = data; - }); - return exist1; - } - const observable = this.http.get(`/tags?count=${pageSize}&page=${pageNum}`); - observable.subscribe(data => { - if (data.code === 0) { - this.currentTagPage = data.result; - this.tagPages.unshift(data.result); - } - }); - } - - update(id: number, name: string) { - return this.http.put(`/admin/tag/update?id=${id}&name=${name}`, null); - } - - delete(id: number) { - return this.http.delete(`/admin/tag/del?id=${id}`); - } - -} diff --git a/admin/src/app/services/update/web-update.service.spec.ts b/admin/src/app/services/update/web-update.service.spec.ts deleted file mode 100644 index e7d3dfa..0000000 --- a/admin/src/app/services/update/web-update.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { WebUpdateService } from './web-update.service'; - -describe('WebUpdateService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: WebUpdateService = TestBed.get(WebUpdateService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/update/web-update.service.ts b/admin/src/app/services/update/web-update.service.ts deleted file mode 100644 index dd1cced..0000000 --- a/admin/src/app/services/update/web-update.service.ts +++ /dev/null @@ -1,48 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; -import {UpdateInfo} from '../../classes/updateInfo'; -import {Page} from '../../classes/page'; - -@Injectable({ - providedIn: 'root' -}) -export class WebUpdateService { - - constructor(public http: HttpService) { - } - - public updateInfoList: Page; - - public lastestUpdateTime: string; - - getUpdateInfo(pageNum: number, pageSize: number) { - const observable = this.http.get(`/webUpdate/pages?page=${pageNum}&count=${pageSize}`); - observable.subscribe((data: any) => { - if (data.code === 0) { - this.updateInfoList = data.result; - } - }); - return observable; - } - - getLastestUpdateTime() { - this.http.get('/lastestUpdateTime').subscribe(data => { - if (data.code === 0) { - this.lastestUpdateTime = data.result; - } - }) - } - - - update(submitBody: { id: number, info: string }) { - return this.http.put('/admin/webUpdate/update', submitBody, false); - } - - create(infoStr: string) { - return this.http.post('/admin/webUpdate/create', {info: infoStr}, false); - } - - delete(id: number) { - return this.http.delete(`/admin/webUpdate/del/${id}`); - } -} diff --git a/admin/src/app/services/user/user.service.spec.ts b/admin/src/app/services/user/user.service.spec.ts deleted file mode 100644 index 16c58b3..0000000 --- a/admin/src/app/services/user/user.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { UserService } from './user.service'; - -describe('UserService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: UserService = TestBed.get(UserService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/user/user.service.ts b/admin/src/app/services/user/user.service.ts deleted file mode 100644 index 2a5a9d1..0000000 --- a/admin/src/app/services/user/user.service.ts +++ /dev/null @@ -1,90 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; -import {User} from '../../classes/user'; -import {Page} from '../../classes/page'; -import {exist} from '../../utils/dataUtil'; - -@Injectable({ - providedIn: 'root' -}) -export class UserService { - - userInfo: User; - - avatarHost: string = 'http://cdn.celess.cn'; - - constructor(public http: HttpService) { - } - - userPage: Page[] = []; - currentUserPage: Page; - - /** - * 获取用户信息 - */ - getUserInfo() { - return this.http.get('/user/userInfo'); - } - - /** - * 注销登录 - */ - logout() { - this.http.get('/logout').subscribe((data: any) => { - if (data.code === 0) { - this.userInfo = null; - this.http.removeToken(); - } - }); - } - - - updateInfo(submitBody: { desc: string, displayName: string }) { - const observable = this.http.put('/user/userInfo/update', submitBody, false); - observable.subscribe(data => { - if (data.code === 0) { - this.userInfo.desc = submitBody.desc; - this.userInfo.displayName = submitBody.displayName; - } - }); - return observable; - } - - - sendEmail() { - return this.http.post('/sendVerifyEmail', {email: this.userInfo.email}, false); - } - - /** - * 获取分页数据 - * @param pageNum 页码 - * @param pageSize 单页数据量 - * @param refresh 是否强制刷新 - */ - getPageUser(pageNum: number, pageSize: number, refresh: boolean = false) { - const existData = exist(pageNum, pageSize, this.userPage); - if (existData && !refresh) { - existData.subscribe(data => { - this.currentUserPage = data; - }); - } - this.http.get(`/admin/users?page=${pageNum}&count=${pageSize}`).subscribe(data => { - if (data.code === 0) { - this.currentUserPage = data.result; - this.userPage.unshift(data.result); - } - }); - } - - delete(id: number) { - return this.http.delete(`/admin/user/delete/${id}`); - } - - update(user: User) { - return this.http.put('/admin/user', user, true); - } - - getExistOfEmail(email: string) { - return this.http.get(`/emailStatus/${email}`); - } -} diff --git a/admin/src/app/services/visitor/visitor.service.spec.ts b/admin/src/app/services/visitor/visitor.service.spec.ts deleted file mode 100644 index 001eafd..0000000 --- a/admin/src/app/services/visitor/visitor.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { VisitorService } from './visitor.service'; - -describe('VisitorService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: VisitorService = TestBed.get(VisitorService); - expect(service).toBeTruthy(); - }); -}); diff --git a/admin/src/app/services/visitor/visitor.service.ts b/admin/src/app/services/visitor/visitor.service.ts deleted file mode 100644 index cf1c37d..0000000 --- a/admin/src/app/services/visitor/visitor.service.ts +++ /dev/null @@ -1,76 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; -import {Page} from '../../classes/page'; -import {Visitor} from '../../classes/visitor'; - -@Injectable({ - providedIn: 'root' -}) -export class VisitorService { - - constructor(public http: HttpService) { - } - - public pageList: Page[] = []; - public currentPage: Page; - - public dayVisit: number; - public totalVisitCount: number; - - private ipLocationList: { ip: string, location: string }[] = []; - - getVisitor(pageNum: number, pageSize: number) { - const observable = this.http.get(`/admin/visitor/page?count=${pageSize}&page=${pageNum}&showLocation=false`); - observable.subscribe(data => { - if (data.code === 0) { - this.pageList.unshift(data.result); - this.currentPage = data.result; - } - }); - } - - getDayVisitor() { - this.http.get('/dayVisitCount').subscribe(data => { - if (data.code === 0) { - this.dayVisit = data.result; - } - }); - } - - getTotalVisitorCount() { - this.http.get('/visitor/count').subscribe(data => { - this.totalVisitCount = data.result; - }); - } - - - getIp(ip: string) { - const location = this.exist(ip); - if (location) { - return location; - } - const observable = this.http.get(`/ip/${ip}`); - observable.subscribe(data => { - if (data.code === 0) { - this.ipLocationList.unshift(data.result); - } - }); - return observable; - } - - getLocalIp() { - return this.http.get('/ip'); - } - - private exist(ip): string { - if (this.ipLocationList.length === 0) { - return null; - } - // tslint:disable-next-line:prefer-for-of - for (let i = 0; i < this.ipLocationList.length; i++) { - if (this.ipLocationList[i].ip === ip) { - return this.ipLocationList[i].location; - } - } - } -} diff --git a/admin/src/app/utils/dataUtil.ts b/admin/src/app/utils/dataUtil.ts deleted file mode 100644 index 586d1b4..0000000 --- a/admin/src/app/utils/dataUtil.ts +++ /dev/null @@ -1,42 +0,0 @@ -import {Page} from '../classes/page'; -import {Observable, of} from 'rxjs'; - -/** - * 判断 一个Page[] 中是否存在一条已查询的数据 - * @param pageNum 页码 - * @param pageSize 单页数量 - * @param pageList 源数据 - * @return 未查到:null 查到:该条数据 - */ -export function exist(pageNum: number, pageSize: number, pageList: Page[]): Observable> { - if (pageList === undefined || pageList == null || pageList.length === 0) { - return null; - } - // tslint:disable-next-line:prefer-for-of - for (let i = 0; i < pageList.length; i++) { - // tslint:disable-next-line:triple-equals - if (pageList[i].pageNum == pageNum && pageList[i].pageSize == pageSize) { - return of>(pageList[i]); - } - } - return null; -} - - -/** - * 将reqBody对象 转化为拼接到url上面的字符串 - * @param reqBody 请求体 from {a:xx,b:xxx} - * @return 字符串 to ==> a=xx&b=xxx - */ -export function reqBody2Str(reqBody: object): string { - let submitBody = ''; - for (const key in reqBody) { - // 跳过值为null的参数请求 - if (reqBody[key] == null || reqBody[key] === 'null') { - continue; - } - submitBody = submitBody + '&' + key + '=' + reqBody[key]; - } - return submitBody.substring(1); -} - diff --git a/admin/src/environments/environment.prod.ts b/admin/src/environments/environment.prod.ts deleted file mode 100644 index 988b506..0000000 --- a/admin/src/environments/environment.prod.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const environment = { - production: true, - host: 'https://api.celess.cn' -}; diff --git a/admin/src/environments/environment.ts b/admin/src/environments/environment.ts deleted file mode 100644 index f173d22..0000000 --- a/admin/src/environments/environment.ts +++ /dev/null @@ -1,17 +0,0 @@ -// 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, - host: 'http://127.0.0.1:8081' -}; - -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames 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/admin/src/index.html b/admin/src/index.html deleted file mode 100644 index 02177f2..0000000 --- a/admin/src/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - 小海博客|后台管理 - - - - - - - - - - diff --git a/admin/src/main.ts b/admin/src/main.ts deleted file mode 100644 index 22d822d..0000000 --- a/admin/src/main.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { enableProdMode } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; - -import { AppModule } from './app/app.module'; -import { environment } from './environments/environment'; - -if (environment.production) { - enableProdMode(); -} - -platformBrowserDynamic().bootstrapModule(AppModule) - .catch(err => console.error(err)); diff --git a/admin/src/polyfills.ts b/admin/src/polyfills.ts deleted file mode 100644 index 4d01f43..0000000 --- a/admin/src/polyfills.ts +++ /dev/null @@ -1,63 +0,0 @@ -/** - * This file includes polyfills needed by Angular and is loaded before the app. - * You can add your own extra polyfills to this file. - * - * This file is divided into 2 sections: - * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. - * 2. Application imports. Files imported after ZoneJS that should be loaded before your main - * file. - * - * The current setup is for so-called "evergreen" browsers; the last versions of browsers that - * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), - * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. - * - * Learn more in https://angular.io/guide/browser-support - */ - -/*************************************************************************************************** - * BROWSER POLYFILLS - */ - -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. - -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. - -/** - * By default, zone.js will patch all possible macroTask and DomEvents - * user can disable parts of macroTask/DomEvents patch by setting following flags - * because those flags need to be set before `zone.js` being loaded, and webpack - * will put import in the top of bundle, so user need to create a separate file - * in this directory (for example: zone-flags.ts), and put the following flags - * into that file, and then add the following code before importing zone.js. - * import './zone-flags.ts'; - * - * The flags allowed in zone-flags.ts are listed here. - * - * The following flags will work for all browsers. - * - * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame - * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick - * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames - * - * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js - * with the following flag, it will bypass `zone.js` patch for IE/Edge - * - * (window as any).__Zone_enable_cross_context_check = true; - * - */ - -/*************************************************************************************************** - * Zone JS is required by default for Angular itself. - */ -import 'zone.js/dist/zone'; // Included with Angular CLI. - - -/*************************************************************************************************** - * APPLICATION IMPORTS - */ diff --git a/admin/src/styles.css b/admin/src/styles.css deleted file mode 100644 index 1b83093..0000000 --- a/admin/src/styles.css +++ /dev/null @@ -1,72 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ -* { - font-family: Arial, Helvetica, sans-serif; - margin: 0; - padding: 0; -} - -body { - background: #F0F1F5; -} - -a { - color: #797979; -} - -li { - list-style: none; -} - -hr { - opacity: 0.4; -} - -/* 水平滚动 */ -.scrollable-horizontal { - overflow-x: auto; -} - -/* 表格 */ -table { - margin: 10px 0; - border-collapse: collapse; - width: 100%; -} - -tr { - border: 0; -} - -tr:nth-child(2n) { - background-color: #f7f7f7; - border: none; -} - -tr:hover { - background: #E3F6FF; -} -tr td:last-child{ - text-align: center; -} - -th { - border: 1px solid #ddd; - background: #EFF3F5; - padding: 8px; - text-align: center; -} - -td { - border: 1px solid #ddd; - padding: 10px 8px; - white-space: nowrap; -} - -select { - height: 32px; - background: #fafafa; - border: 1px solid #ddd; - border-radius: 4px; - padding: 5px 10px; - margin: 5px 10px; -} diff --git a/admin/src/test.ts b/admin/src/test.ts deleted file mode 100644 index 26cfdde..0000000 --- a/admin/src/test.ts +++ /dev/null @@ -1,20 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js/dist/zone-testing'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -declare const require: any; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting() -); -// Then we find all the tests. -const context = require.context('./', true, /\.spec\.ts$/); -// And load the modules. -context.keys().map(context); diff --git a/admin/tsconfig.app.json b/admin/tsconfig.app.json deleted file mode 100644 index 3d0b750..0000000 --- a/admin/tsconfig.app.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/app", - "types": [] - }, - "include": [ - "src/**/*.ts" - ], - "exclude": [ - "src/test.ts", - "src/**/*.spec.ts" - ] -} diff --git a/admin/tsconfig.json b/admin/tsconfig.json deleted file mode 100644 index ae4f7ef..0000000 --- a/admin/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "baseUrl": "./", - "outDir": "./dist/out-tsc", - "sourceMap": true, - "declaration": false, - "downlevelIteration": true, - "module": "esnext", - "moduleResolution": "node", - "experimentalDecorators": true, - "module": "esnext", - "moduleResolution": "node", - "importHelpers": true, - "target": "es2015", - "typeRoots": [ - "node_modules/@types" - ], - "lib": [ - "es2018", - "dom" - ] - } -} diff --git a/admin/tsconfig.spec.json b/admin/tsconfig.spec.json deleted file mode 100644 index e951c08..0000000 --- a/admin/tsconfig.spec.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "./out-tsc/spec", - "types": [ - "jasmine", - "node" - ] - }, - "files": [ - "src/test.ts", - "src/polyfills.ts" - ], - "include": [ - "src/**/*.spec.ts", - "src/**/*.d.ts" - ] -} diff --git a/admin/tslint.json b/admin/tslint.json deleted file mode 100644 index ece5690..0000000 --- a/admin/tslint.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "extends": "tslint:recommended", - "rules": { - "array-type": false, - "arrow-parens": false, - "deprecation": { - "severity": "warn" - }, - "component-class-suffix": true, - "contextual-lifecycle": true, - "directive-class-suffix": true, - "directive-selector": [ - true, - "attribute", - "app", - "camelCase" - ], - "component-selector": [ - true, - "element", - "app", - "kebab-case" - ], - "import-blacklist": [ - true, - "rxjs/Rx" - ], - "interface-name": false, - "max-classes-per-file": false, - "max-line-length": [ - true, - 140 - ], - "member-access": false, - "member-ordering": [ - true, - { - "order": [ - "static-field", - "instance-field", - "static-method", - "instance-method" - ] - } - ], - "no-consecutive-blank-lines": false, - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-empty": false, - "no-inferrable-types": [ - false, - "ignore-params" - ], - "no-non-null-assertion": true, - "no-redundant-jsdoc": true, - "no-switch-case-fall-through": true, - "no-use-before-declare": true, - "no-var-requires": false, - "object-literal-key-quotes": [ - true, - "as-needed" - ], - "object-literal-sort-keys": false, - "ordered-imports": false, - "quotemark": [ - true, - "single" - ], - "trailing-comma": false, - "no-conflicting-lifecycle": true, - "no-host-metadata-property": true, - "no-input-rename": true, - "no-inputs-metadata-property": true, - "no-output-native": true, - "no-output-on-prefix": true, - "no-output-rename": true, - "no-outputs-metadata-property": true, - "template-banana-in-box": true, - "template-no-negated-async": true, - "use-lifecycle-interface": true, - "use-pipe-transform-interface": true - }, - "rulesDirectory": [ - "codelyzer" - ] -} diff --git a/index/angular.json b/angular.json similarity index 100% rename from index/angular.json rename to angular.json diff --git a/index/browserslist b/browserslist similarity index 100% rename from index/browserslist rename to browserslist diff --git a/build.sh b/build.sh index 5b1956f..eac3ff2 100644 --- a/build.sh +++ b/build.sh @@ -27,14 +27,14 @@ fi # index echo -e "\t\tBuild for index page " -cd ./index && npm install && ng build --prod +npm install && ng build --prod cd ./dist/index/ && tar -cf index.tar ./* && cp index.tar $basePath -cd "$basePath" +#cd "$basePath" -# admin -echo -e "\t\tBuild for admin page " -cd $basePath/admin && npm install && ng build --prod -cd ./dist/admin/ && sed '6s/\"\/\"/\"\/admin\/\"/g' index.html > index.txt && cp index.txt index.html - cd .. && tar -cf admin.tar ./admin/ && cp admin.tar $basePath +## admin +#echo -e "\t\tBuild for admin page " +#cd $basePath/admin && npm install && ng build --prod +#cd ./dist/admin/ && sed '6s/\"\/\"/\"\/admin\/\"/g' index.html > index.txt && cp index.txt index.html +# cd .. && tar -cf admin.tar ./admin/ && cp admin.tar $basePath diff --git a/index/e2e/protractor.conf.js b/e2e/protractor.conf.js similarity index 100% rename from index/e2e/protractor.conf.js rename to e2e/protractor.conf.js diff --git a/index/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts similarity index 100% rename from index/e2e/src/app.e2e-spec.ts rename to e2e/src/app.e2e-spec.ts diff --git a/index/e2e/src/app.po.ts b/e2e/src/app.po.ts similarity index 100% rename from index/e2e/src/app.po.ts rename to e2e/src/app.po.ts diff --git a/index/e2e/tsconfig.json b/e2e/tsconfig.json similarity index 100% rename from index/e2e/tsconfig.json rename to e2e/tsconfig.json diff --git a/index/README.md b/index/README.md deleted file mode 100644 index 459d409..0000000 --- a/index/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Index - -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.3.20. - -## Development server - -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. - -## Code scaffolding - -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. - -## Build - -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. - -## Running unit tests - -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/index/src/app/api/api.service.spec.ts b/index/src/app/api/api.service.spec.ts deleted file mode 100644 index 3a0e7b5..0000000 --- a/index/src/app/api/api.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {TestBed} from '@angular/core/testing'; - -import {ApiService} from './api.service'; - -describe('ApiService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: ApiService = TestBed.get(ApiService); - expect(service).toBeTruthy(); - }); -}); diff --git a/index/src/app/api/http/http.service.spec.ts b/index/src/app/api/http/http.service.spec.ts deleted file mode 100644 index 1cc7c7a..0000000 --- a/index/src/app/api/http/http.service.spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {TestBed} from '@angular/core/testing'; - -import {HttpService} from './http.service'; - -describe('HttpService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: HttpService = TestBed.get(HttpService); - expect(service).toBeTruthy(); - }); - it('should be valid', () => { - const service: HttpService = TestBed.get(HttpService); - }); -}); diff --git a/index/src/app/components/footer/footer.component.ts b/index/src/app/components/footer/footer.component.ts deleted file mode 100644 index 2c1a818..0000000 --- a/index/src/app/components/footer/footer.component.ts +++ /dev/null @@ -1,29 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {filter} from 'rxjs/operators'; -import {NavigationEnd, Route, Router, RouterEvent} from '@angular/router'; - -@Component({ - selector: 'app-footer', - templateUrl: './footer.component.html', - styleUrls: ['./footer.component.less'] -}) -export class FooterComponent implements OnInit { - show: boolean; - - constructor(private router: Router) { - this.show = true; - } - - readonly gName: string; - - ngOnInit() { - this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe((e: RouterEvent) => { - const indexOf = e.url.lastIndexOf('/'); - const prefix = e.url.substr(0, indexOf === 0 ? e.url.length : indexOf); - if (prefix === '/user' || prefix === '/write') { - this.show = false; - } - }); - } - -} diff --git a/index/src/app/services/local-storage.service.spec.ts b/index/src/app/services/local-storage.service.spec.ts deleted file mode 100644 index ad13e4e..0000000 --- a/index/src/app/services/local-storage.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { LocalStorageService } from './local-storage.service'; - -describe('LocalStorageService', () => { - beforeEach(() => TestBed.configureTestingModule({})); - - it('should be created', () => { - const service: LocalStorageService = TestBed.get(LocalStorageService); - expect(service).toBeTruthy(); - }); -}); diff --git a/index/src/app/utils/logger.ts b/index/src/app/utils/logger.ts deleted file mode 100644 index 6bb0b86..0000000 --- a/index/src/app/utils/logger.ts +++ /dev/null @@ -1,42 +0,0 @@ -import {environment} from '../../environments/environment'; - -export class Logger { - - private static inited = false; - - static info(obj: object) { - this.printLogInfo(); - if (environment.logger) { - // tslint:disable-next-line:no-console - console.info(obj); - } - } - - static debug(obj: object) { - this.printLogInfo(); - if (environment.logger) { - // tslint:disable-next-line:no-console - console.debug(obj); - } - } - - static error(obj: object) { - this.printLogInfo(); - if (environment.logger) { - // tslint:disable-next-line:no-console - console.error(obj); - } - } - - static printLogInfo() { - const option = { - environment: environment.production ? 'release' : 'debug', - }; - if (!this.inited) { - // tslint:disable-next-line:no-console - console.info(option); - this.inited = true; - } - } - -} diff --git a/index/karma.conf.js b/karma.conf.js similarity index 100% rename from index/karma.conf.js rename to karma.conf.js diff --git a/index/package-lock.json b/package-lock.json similarity index 100% rename from index/package-lock.json rename to package-lock.json diff --git a/index/package.json b/package.json similarity index 100% rename from index/package.json rename to package.json diff --git a/index/src/app/api/api.service.ts b/src/app/api/api.service.ts similarity index 50% rename from index/src/app/api/api.service.ts rename to src/app/api/api.service.ts index e1a2dfd..83ac859 100644 --- a/index/src/app/api/api.service.ts +++ b/src/app/api/api.service.ts @@ -1,21 +1,21 @@ import {Injectable} from '@angular/core'; import {HttpClient} from '@angular/common/http'; -import {Observable, Observer, of} from 'rxjs'; import {Article} from '../class/Article'; import {HttpService} from './http/http.service'; import {PageList} from '../class/HttpReqAndResp'; import {ErrDispatch} from '../class/ErrDispatch'; import {ArticleReq} from '../class/Article'; -import {Tag} from '../class/Tag'; +import {Category, Tag} from '../class/Tag'; import {Comment} from '../class/Comment'; import {CommentReq} from '../class/Comment'; import {Link} from '../class/Link'; import {User} from '../class/User'; import {LoginReq} from '../class/User'; -import {Response} from '../class/HttpReqAndResp'; import {LocalStorageService} from '../services/local-storage.service'; +import {Visitor} from '../class/Visitor'; +import {UpdateInfo} from '../class/UpdateInfo'; @Injectable({ providedIn: 'root' @@ -41,6 +41,14 @@ export class ApiService extends HttpService { }); } + deleteArticle(id: number) { + return super.Service({ + path: '/admin/article/del', + method: 'DELETE', + queryParam: {articleID: id} + }) + } + articles(pageNumber: number = 1, pageSize: number = 5) { return super.Service>({ path: '/articles', @@ -52,6 +60,17 @@ export class ApiService extends HttpService { }); } + adminArticles(pageNumber: number = 1, pageSize: number = 10) { + return super.Service>({ + path: '/admin/articles', + method: 'GET', + queryParam: { + page: pageNumber, + count: pageSize + } + }); + } + updateArticle(article: ArticleReq) { return super.Service
({ path: '/admin/article/update', @@ -92,14 +111,38 @@ export class ApiService extends HttpService { } categories() { - return super.Service({ + return super.Service({ path: '/categories', method: 'GET' }); } + createCategory(nameStr: string) { + return super.Service({ + path: '/admin/category/create', + method: 'POST', + queryParam: {name: nameStr} + }); + } + + deleteCategory(categoryId: number) { + return super.Service({ + path: '/admin/category/del', + method: 'DELETE', + queryParam: {id: categoryId} + }); + } + + updateCategory(categoryId: number, nameStr: string) { + return super.Service({ + path: '/admin/category/update', + method: 'PUT', + queryParam: {id: categoryId, name: nameStr} + }); + } + tags(pageNumber: number = 1, pageSize: number = 10) { - return super.Service({ + return super.Service>({ path: '/tags', method: 'GET', queryParam: { @@ -116,8 +159,33 @@ export class ApiService extends HttpService { }); } + createTag(nameStr: string) { + return super.Service({ + path: '/admin/tag/create', + method: 'POST', + queryParam: {name: nameStr} + }); + } + + deleteTag(TagId: number) { + return super.Service({ + path: '/admin/tag/del', + method: 'DELETE', + queryParam: {id: TagId} + }); + } + + updateTag(TagId: number, nameStr: string) { + return super.Service({ + path: '/admin/tag/update', + method: 'PUT', + queryParam: {id: TagId, name: nameStr} + }); + } + + getCommentByPid(pid: number, pageNumber: number = 1, pageSize: number = 10) { - return super.Service[]>({ + return super.Service({ path: `/comment/pid/${pid}`, method: 'GET', queryParam: { @@ -127,6 +195,45 @@ export class ApiService extends HttpService { }); } + getCommentByTypeForAdmin(isComment: boolean, pageNumber: number = 1, pageSize: number = 10) { + return super.Service>({ + path: `/admin/comment/type/${isComment ? 1 : 0}`, + method: 'GET', + queryParam: { + page: pageNumber, + count: pageSize + } + }); + } + + getCommentByTypeForUser(isComment: boolean, pageNumber: number = 1, pageSize: number = 10) { + return super.Service>({ + path: `/user/comment/type/${isComment ? 1 : 0}`, + method: 'GET', + queryParam: { + page: pageNumber, + count: pageSize + } + }); + } + + deleteComment(idNumer: number) { + return super.Service({ + path: `/user/comment/del`, + method: 'DELETE', + queryParam: {id: idNumer} + }); + } + + updateComment(commentReq: CommentReq) { + return super.Service({ + path: `/user/comment/update`, + method: 'PUT', + data: commentReq, + contentType: 'application/json' + }); + } + comments(articleID: number, pageSize: number = 10, pageNumber: number = 1) { return super.Service>({ path: '/comments', @@ -174,6 +281,42 @@ export class ApiService extends HttpService { }); } + adminLinks(pageSize: number = 10, pageNumber: number = 1) { + return super.Service>({ + path: '/admin/links', + method: 'GET', + queryParam: { + count: pageSize, + page: pageNumber + } + }); + } + + createLink(linkReq: Link) { + return super.Service({ + path: '/admin/links/create', + method: 'POST', + data: linkReq, + contentType: 'application/json' + }); + } + + deleteLink(idNumber: number) { + return super.Service({ + path: `/admin/links/del/${idNumber}`, + method: 'DELETE', + }); + } + + updateLink(linkReq: Link) { + return super.Service({ + path: '/admin/links/update', + method: 'PUT', + data: linkReq, + contentType: 'application/json' + }); + } + applyLink(link: Link) { return super.Service({ path: '/apply', @@ -202,34 +345,15 @@ export class ApiService extends HttpService { login(loginReq: LoginReq) { - const observable = super.Service({ + return super.Service({ path: '/login', method: 'POST', contentType: 'application/json', data: loginReq }); - let observer: Observer>; - const oob = new Observable>(o => observer = o); - observable.subscribe({ - next: o => { - if (o.code === 0) { - // 登录成功 - this.localStorageService.setToken(o.result.token); - this.localStorageService.setUser(o.result); - } - observer.next(o); - observer.complete(); - }, - error: err => { - observer.error(err); - observer.complete(); - } - }); - return oob; } logout() { - this.localStorageService.clear(); return super.Service({ path: '/logout', method: 'GET', @@ -288,38 +412,111 @@ export class ApiService extends HttpService { } userInfo() { - // 判断本地缓存的用户信息是否符合要求,符合要求返回本地缓存 - const user = this.localStorageService.getUser(); - if (this.localStorageService.isLogin() && user && !this.localStorageService.checkNeedNet()) { - return of>(new Response(user)); - } - // 不符合 请求网络数据并更新缓存 - const observable = super.Service({ + return super.Service({ path: '/user/userInfo', method: 'GET', }); - let observer: Observer>; - const oob = new Observable>(o => observer = o); - observable.subscribe({ - next: o => { - this.localStorageService.setUser(o.result); - observer.next(o); - observer.complete(); - }, - error: err => { - // console.debug('登录过期 token错误 等等'); - this.localStorageService.removeToken(); - observer.error(err); - observer.complete(); + } + + adminUpdateUser(user: User) { + return super.Service({ + path: '/admin/user', + method: 'PUT', + data: user, + contentType: 'application/json' + }) + } + + deleteUser(id: number) { + return super.Service({ + path: `/admin/user/delete/${id}`, + method: 'DELETE', + }); + } + + multipleDeleteUser(idArray: number[]) { + return super.Service<{ id: number; msg: string; status: boolean }[]>({ + path: `/admin/user/delete`, + method: 'DELETE', + data: idArray, + contentType: 'application/json' + }); + } + + // 获取邮件是否已注册 + emailStatus(email: string) { + return super.Service({ + path: `/emailStatus/${email}`, + method: 'GET' + }) + } + + updateUserInfo(descStr: string, disPlayNameStr: string) { + return super.Service({ + path: '/user/userInfo/update', + method: 'PUT', + queryParam: { + desc: descStr, + displayName: disPlayNameStr + } + }); + } + + adminUsers(pageSize: number = 10, pageNumber: number = 1) { + return super.Service>({ + path: '/admin/users', + method: 'GET', + queryParam: { + count: pageSize, + page: pageNumber } }); - return oob; } visit() { - return super.Service({ + return super.Service({ path: '/visit', - method: 'POST', + method: 'POST' + }); + } + + adminVisitors(location: boolean = false, pageSize: number = 10, pageNumber: number = 1) { + return super.Service>({ + path: '/admin/visitor/page', + method: 'GET', + queryParam: { + count: pageSize, + page: pageNumber, + showLocation: location + } + }); + } + + dayVisitCount() { + return super.Service({ + path: '/dayVisitCount', + method: 'GET', + }); + } + + getLocalIp() { + return super.Service({ + path: '/ip', + method: 'GET', + }); + } + + getIpLocation(ip: string) { + return super.Service({ + path: `/ip/${ip}`, + method: 'GET', + }); + } + + visitorCount() { + return super.Service({ + path: `/visitor/count`, + method: 'GET', }); } @@ -330,6 +527,17 @@ export class ApiService extends HttpService { }); } + webUpdatePage(pageSize: number = 10, pageNumber: number = 1) { + return super.Service>({ + path: '/webUpdate/pages', + method: 'GET', + queryParam: { + count: pageSize, + page: pageNumber, + } + }); + } + lastestUpdate() { return super.Service<{ lastUpdateTime: string; @@ -344,6 +552,29 @@ export class ApiService extends HttpService { }); } + createWebUpdateInfo(infoStr: string) { + return super.Service({ + path: '/admin/webUpdate/create', + method: 'POST', + queryParam: {info: infoStr} + }); + } + + deleteWebUpdateInfo(idNumber: number) { + return super.Service({ + path: `/admin/webUpdate/del/${idNumber}`, + method: 'DELETE', + }); + } + + updateWebUpdateInfo(idNumber: number, infoStr: string) { + return super.Service({ + path: '/admin/webUpdate/update', + method: 'PUT', + queryParam: {id: idNumber, info: infoStr} + }); + } + bingPic() { return super.Service({ path: '/bingPic', diff --git a/index/src/app/api/http/http.service.ts b/src/app/api/http/http.service.ts similarity index 98% rename from index/src/app/api/http/http.service.ts rename to src/app/api/http/http.service.ts index ecea0d2..f08f30d 100644 --- a/index/src/app/api/http/http.service.ts +++ b/src/app/api/http/http.service.ts @@ -24,7 +24,7 @@ export class HttpService { Service(request: RequestObj) { // 设置默认值 - request.contentType = request.contentType == null ? 'application/x-www-form-urlencoded' : 'application/json'; + request.contentType = request.contentType == null ? 'application/x-www-form-urlencoded' : request.contentType; request.header = { 'Content-Type': request.contentType }; diff --git a/index/src/app/app-routing.module.ts b/src/app/app-routing.module.ts similarity index 77% rename from index/src/app/app-routing.module.ts rename to src/app/app-routing.module.ts index 524a3ba..76d430f 100644 --- a/index/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,7 +1,6 @@ import {NgModule} from '@angular/core'; import {RouterModule, Routes} from '@angular/router'; - const routes: Routes = [ {path: '', pathMatch: 'full', loadChildren: () => import('./view/index/index.module').then(mod => mod.IndexModule)}, {path: 'update', loadChildren: () => import('./view/update/update.module').then(mod => mod.UpdateModule)}, @@ -9,15 +8,25 @@ const routes: Routes = [ {path: 'tags', loadChildren: () => import('./view/tag/tag.module').then(mod => mod.TagModule)}, {path: 'categories', loadChildren: () => import('./view/category/category.module').then(mod => mod.CategoryModule)}, // {path: 'leaveMsg', loadChildren: () => import('./view/leave-msg/leave-msg.module').then(mod => mod.LeaveMsgModule)}, - {path: 'emailVerify', loadChildren: () => import('./view/email-verify/email-verify.module').then(mod => mod.EmailVerifyModule)}, {path: 'resetPwd', loadChildren: () => import('./view/reset-pwd/reset-pwd.module').then(mod => mod.ResetPwdModule)}, {path: 'write', loadChildren: () => import('./view/write/write.module').then(mod => mod.WriteModule)}, {path: 'links', loadChildren: () => import('./view/link/link.module').then(mod => mod.LinkModule)}, + { + path: 'emailVerify', + loadChildren: () => import('./view/email-verify/email-verify.module').then(mod => mod.EmailVerifyModule) + }, { path: 'user', loadChildren: () => import('./view/login-registration/login-registration.module') .then(mod => mod.LoginRegistrationModule) }, - {path: '**', loadChildren: () => import('./view/page-not-found/page-not-found.module').then(mod => mod.PageNotFoundModule)} + { + path: 'admin', + loadChildren: () => import('./view/admin/admin.module').then(mod => mod.AdminModule), + }, + { + path: '**', + loadChildren: () => import('./view/page-not-found/page-not-found.module').then(mod => mod.PageNotFoundModule) + } ]; diff --git a/index/src/app/app.component.html b/src/app/app.component.html similarity index 67% rename from index/src/app/app.component.html rename to src/app/app.component.html index cffec2c..a39dab5 100644 --- a/index/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,31 +1,33 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/index/src/app/app.component.less b/src/app/app.component.less similarity index 100% rename from index/src/app/app.component.less rename to src/app/app.component.less diff --git a/index/src/app/app.component.spec.ts b/src/app/app.component.spec.ts similarity index 100% rename from index/src/app/app.component.spec.ts rename to src/app/app.component.spec.ts diff --git a/index/src/app/app.component.ts b/src/app/app.component.ts similarity index 85% rename from index/src/app/app.component.ts rename to src/app/app.component.ts index db08f54..bcbe683 100644 --- a/index/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,6 +1,7 @@ import {Component, ElementRef, OnInit, TemplateRef, ViewChild} from '@angular/core'; import {LoginReq} from './class/User'; import {HeaderComponent} from './components/header/header.component'; +import {ComponentStateService} from './services/component-state.service'; @Component({ selector: 'app-root', @@ -12,6 +13,9 @@ export class AppComponent { regModal: boolean = false; @ViewChild('headerComponent') header: HeaderComponent; + constructor(public componentStateService: ComponentStateService) { + } + registration() { // todo :: 登录 // console.log('registration'); diff --git a/index/src/app/app.module.ts b/src/app/app.module.ts similarity index 91% rename from index/src/app/app.module.ts rename to src/app/app.module.ts index 8aa0b2b..8827d4f 100644 --- a/index/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -11,6 +11,7 @@ import {HeaderComponent} from './components/header/header.component'; import {FooterComponent} from './components/footer/footer.component'; import {AppRoutingModule} from './app-routing.module'; import {LoginRegistrationModule} from './view/login-registration/login-registration.module'; +import {AdminModule} from './view/admin/admin.module'; registerLocaleData(zh); @@ -28,7 +29,8 @@ registerLocaleData(zh); FormsModule, HttpClientModule, BrowserAnimationsModule, - LoginRegistrationModule + LoginRegistrationModule, + AdminModule ], providers: [{provide: NZ_I18N, useValue: zh_CN}], exports: [], diff --git a/index/src/app/class/Article.ts b/src/app/class/Article.ts similarity index 95% rename from index/src/app/class/Article.ts rename to src/app/class/Article.ts index b5c1986..3c2a618 100644 --- a/index/src/app/class/Article.ts +++ b/src/app/class/Article.ts @@ -1,35 +1,35 @@ -export class Article { - id: number; - title: string; - summary: string; - mdContent?: string; - original?: boolean; - url?: string; - publishDateFormat?: string; - updateDateFormat?: string; - category?: string; - tags?: string[]; - authorName?: string; - preArticleId?: number; - nextArticleId?: number; - preArticleTitle?: string; - nextArticleTitle?: string; - readingNumber?: number; - open?: string; -} - - -export class ArticleReq { - category: string; - id?: number; - mdContent: string; - open: boolean; - tags: string; - title: string; - type: boolean; - url?: string; - - constructor() { - this.type = true; - } -} +export class Article { + id: number; + title: string; + summary: string; + mdContent?: string; + original?: boolean; + url?: string; + publishDateFormat?: string; + updateDateFormat?: string; + category?: string; + tags?: string[]; + authorName?: string; + preArticleId?: number; + nextArticleId?: number; + preArticleTitle?: string; + nextArticleTitle?: string; + readingNumber?: number; + open?: string; +} + + +export class ArticleReq { + category: string; + id?: number; + mdContent: string; + open: boolean; + tags: string; + title: string; + type: boolean; + url?: string; + + constructor() { + this.type = true; + } +} diff --git a/index/src/app/class/Comment.ts b/src/app/class/Comment.ts similarity index 95% rename from index/src/app/class/Comment.ts rename to src/app/class/Comment.ts index 3637817..449e558 100644 --- a/index/src/app/class/Comment.ts +++ b/src/app/class/Comment.ts @@ -4,6 +4,7 @@ export class Comment { authorAvatarImgUrl?: string; content: string; articleID: number; + articleTitle: string; date?: string; responseId: string; pid: number; @@ -29,4 +30,4 @@ export class CommentReq { this.pid = -1; this.id = null; } -} \ No newline at end of file +} diff --git a/index/src/app/class/EditorConfig.ts b/src/app/class/EditorConfig.ts similarity index 100% rename from index/src/app/class/EditorConfig.ts rename to src/app/class/EditorConfig.ts diff --git a/index/src/app/class/ErrDispatch.ts b/src/app/class/ErrDispatch.ts similarity index 100% rename from index/src/app/class/ErrDispatch.ts rename to src/app/class/ErrDispatch.ts diff --git a/index/src/app/class/HttpReqAndResp.ts b/src/app/class/HttpReqAndResp.ts similarity index 100% rename from index/src/app/class/HttpReqAndResp.ts rename to src/app/class/HttpReqAndResp.ts diff --git a/index/src/app/class/Link.ts b/src/app/class/Link.ts similarity index 76% rename from index/src/app/class/Link.ts rename to src/app/class/Link.ts index 782ccf6..a44c984 100644 --- a/index/src/app/class/Link.ts +++ b/src/app/class/Link.ts @@ -2,4 +2,5 @@ export class Link { id?: number; name: string; url: string; -} \ No newline at end of file + open?: boolean; +} diff --git a/index/src/app/class/Tag.ts b/src/app/class/Tag.ts similarity index 100% rename from index/src/app/class/Tag.ts rename to src/app/class/Tag.ts diff --git a/admin/src/app/classes/updateInfo.ts b/src/app/class/UpdateInfo.ts similarity index 93% rename from admin/src/app/classes/updateInfo.ts rename to src/app/class/UpdateInfo.ts index 32b90e2..f937b24 100644 --- a/admin/src/app/classes/updateInfo.ts +++ b/src/app/class/UpdateInfo.ts @@ -1,5 +1,5 @@ -export class UpdateInfo { - id: number; - info: string; - time: string; -} +export class UpdateInfo { + id: number; + info: string; + time: string; +} diff --git a/index/src/app/class/User.ts b/src/app/class/User.ts similarity index 84% rename from index/src/app/class/User.ts rename to src/app/class/User.ts index 09c84c3..b9cb99b 100644 --- a/index/src/app/class/User.ts +++ b/src/app/class/User.ts @@ -1,22 +1,24 @@ -export class User { - id: number; - email: string; - displayName: string; - emailStatus: boolean; - avatarImgUrl: string; - desc: string; - role: string; - token?: string; -} - -export class LoginReq { - email: string; - isRememberMe: boolean; - password: string; - - constructor(email: string, isRememberMe: boolean, password: string) { - this.email = email; - this.isRememberMe = isRememberMe; - this.password = password; - } -} \ No newline at end of file +export class User { + id: number; + email: string; + displayName: string; + emailStatus: boolean; + avatarImgUrl?: string; + desc: string; + role: string; + token?: string; + pwd?: string; + recentlyLandedDate?: string +} + +export class LoginReq { + email: string; + isRememberMe: boolean; + password: string; + + constructor(email: string, isRememberMe: boolean, password: string) { + this.email = email; + this.isRememberMe = isRememberMe; + this.password = password; + } +} diff --git a/admin/src/app/classes/visitor.ts b/src/app/class/Visitor.ts similarity index 82% rename from admin/src/app/classes/visitor.ts rename to src/app/class/Visitor.ts index dbc0711..5e498a5 100644 --- a/admin/src/app/classes/visitor.ts +++ b/src/app/class/Visitor.ts @@ -1,9 +1,9 @@ -export class Visitor { - id: number; - ip: string; - date: string; - browserName: string; - browserVersion: string; - location?: string; - osname: string; -} +export class Visitor { + id: number; + ip: string; + date: string; + browserName: string; + browserVersion: string; + osname: string; + location: string; +} diff --git a/src/app/components/admin-header/admin-header.component.html b/src/app/components/admin-header/admin-header.component.html new file mode 100644 index 0000000..2cd9cd6 --- /dev/null +++ b/src/app/components/admin-header/admin-header.component.html @@ -0,0 +1,34 @@ +
+ +
+ +
+
+
+ 小海博客 + 记录学习成长历程 +
+ + +
+ + {{user.displayName}} +
+ + +
+ + + + + + + + + + + + +
+ +
diff --git a/src/app/components/admin-header/admin-header.component.less b/src/app/components/admin-header/admin-header.component.less new file mode 100644 index 0000000..96d0ba1 --- /dev/null +++ b/src/app/components/admin-header/admin-header.component.less @@ -0,0 +1,47 @@ +header { + height: 70px; + background-color: #ffffff; + opacity: 0.8; + position: fixed; + z-index: 1; + width: 100%; + min-width: 350px; + padding-top: 10px; +} + +header img { + width: 40px; + height: 40px; + border-radius: 50%; + margin: 5px 5px 5px 30px; + float: left; +} + +a { + color: black; +} + +#landr, #loged { + position: absolute; + right: 60px; + top: 20px; + cursor: pointer; +} + + +#blogTitle, #desc { + display: block; + margin-left: 15px; + max-width: 300px; +} + +#blogTitle { + font-weight: bold; + font-size: 20px; +} + +#desc { + font-size: 10px; + +} + diff --git a/admin/src/app/components/header/header.component.spec.ts b/src/app/components/admin-header/admin-header.component.spec.ts similarity index 53% rename from admin/src/app/components/header/header.component.spec.ts rename to src/app/components/admin-header/admin-header.component.spec.ts index 97ab09a..33284cb 100644 --- a/admin/src/app/components/header/header.component.spec.ts +++ b/src/app/components/admin-header/admin-header.component.spec.ts @@ -1,25 +1,25 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { HeaderComponent } from './header.component'; - -describe('HeaderComponent', () => { - let component: HeaderComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ HeaderComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(HeaderComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminHeaderComponent } from './admin-header.component'; + +describe('AdminHeaderComponent', () => { + let component: AdminHeaderComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminHeaderComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminHeaderComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/admin-header/admin-header.component.ts b/src/app/components/admin-header/admin-header.component.ts new file mode 100644 index 0000000..17d26a2 --- /dev/null +++ b/src/app/components/admin-header/admin-header.component.ts @@ -0,0 +1,29 @@ +import {Component, EventEmitter, OnInit, Output} from '@angular/core'; +import {GlobalUserService} from '../../services/global-user.service'; +import {User} from '../../class/User'; + +@Component({ + selector: 'c-admin-header', + templateUrl: './admin-header.component.html', + styleUrls: ['./admin-header.component.less'] +}) +export class AdminHeaderComponent implements OnInit { + + constructor(private userService: GlobalUserService) { + } + + user: User + @Output() infoClicked = new EventEmitter() + + logout = () => this.userService.logout(); + infoClickedEvent = () => this.infoClicked.emit(); + + ngOnInit(): void { + this.userService.watchUserInfo({ + next: data => this.user = data.result, + error: err => this.user = null, + complete: null + }) + } + +} diff --git a/index/src/app/components/footer/footer.component.html b/src/app/components/footer/footer.component.html similarity index 89% rename from index/src/app/components/footer/footer.component.html rename to src/app/components/footer/footer.component.html index 509f5a6..aa03d97 100644 --- a/index/src/app/components/footer/footer.component.html +++ b/src/app/components/footer/footer.component.html @@ -1,4 +1,4 @@ - \ No newline at end of file + diff --git a/index/src/app/components/footer/footer.component.less b/src/app/components/footer/footer.component.less similarity index 100% rename from index/src/app/components/footer/footer.component.less rename to src/app/components/footer/footer.component.less diff --git a/index/src/app/components/footer/footer.component.spec.ts b/src/app/components/footer/footer.component.spec.ts similarity index 100% rename from index/src/app/components/footer/footer.component.spec.ts rename to src/app/components/footer/footer.component.spec.ts diff --git a/src/app/components/footer/footer.component.ts b/src/app/components/footer/footer.component.ts new file mode 100644 index 0000000..629bb45 --- /dev/null +++ b/src/app/components/footer/footer.component.ts @@ -0,0 +1,19 @@ +import {Component, OnInit} from '@angular/core'; +import {ComponentStateService} from '../../services/component-state.service'; + +@Component({ + selector: 'app-footer', + templateUrl: './footer.component.html', + styleUrls: ['./footer.component.less'] +}) +export class FooterComponent implements OnInit { + + constructor(public componentStateService: ComponentStateService) { + } + + readonly gName: string; + + ngOnInit() { + } + +} diff --git a/index/src/app/components/header/header.component.html b/src/app/components/header/header.component.html similarity index 100% rename from index/src/app/components/header/header.component.html rename to src/app/components/header/header.component.html diff --git a/index/src/app/components/header/header.component.less b/src/app/components/header/header.component.less similarity index 100% rename from index/src/app/components/header/header.component.less rename to src/app/components/header/header.component.less diff --git a/index/src/app/components/header/header.component.spec.ts b/src/app/components/header/header.component.spec.ts similarity index 100% rename from index/src/app/components/header/header.component.spec.ts rename to src/app/components/header/header.component.spec.ts diff --git a/index/src/app/components/header/header.component.ts b/src/app/components/header/header.component.ts similarity index 77% rename from index/src/app/components/header/header.component.ts rename to src/app/components/header/header.component.ts index ec7cd99..46c6ebc 100644 --- a/index/src/app/components/header/header.component.ts +++ b/src/app/components/header/header.component.ts @@ -1,9 +1,10 @@ import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core'; +import {Router} from '@angular/router'; import {windowWidthChange} from '../../utils/util'; -import {NavigationEnd, Router, RouterEvent} from '@angular/router'; -import {filter} from 'rxjs/operators'; import {ApiService} from '../../api/api.service'; import {User} from '../../class/User'; +import {ComponentStateService} from '../../services/component-state.service'; +import {GlobalUserService} from '../../services/global-user.service'; @Component({ selector: 'app-header', @@ -13,7 +14,8 @@ import {User} from '../../class/User'; export class HeaderComponent implements OnInit { constructor(private router: Router, - private apiService: ApiService) { + public componentStateService: ComponentStateService, + private userService: GlobalUserService) { this.pageList = [ {name: '首页', path: '/', icon: 'home', iconType: 'fill', show: true}, {name: '分类', path: '/categories', icon: 'project', iconType: 'fill', show: true}, @@ -25,7 +27,7 @@ export class HeaderComponent implements OnInit { {name: '注册', path: '/registration', icon: 'user', iconType: 'outline', show: false} ]; - + this.getInfo(); this.showList = window.innerWidth > this.mobileMaxWidth; this.changeLoginButtonV(); // 监听宽度变化 @@ -33,21 +35,13 @@ export class HeaderComponent implements OnInit { this.showList = window.innerWidth > this.mobileMaxWidth; this.changeLoginButtonV(); }); - - this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe((e: RouterEvent) => { - // indexOf ==> -1/index - const indexOfParam = e.url.indexOf('?'); - const path = e.url.substr(0, indexOfParam === -1 ? e.url.length : indexOfParam); - // lastIndexOf ==> 0/index - const indexOf = path.lastIndexOf('/'); - const prefix = path.substr(0, indexOf === 0 ? path.length : indexOf); - this.currentPath = prefix; + // 订阅一级路由的变化 + componentStateService.watchRouterChange().subscribe(prefix => { if (prefix === '/user' || prefix === '/write' || prefix === '/update') { this.size = 'default'; } else { this.size = 'large'; } - this.getInfo(); }); } @@ -122,27 +116,27 @@ export class HeaderComponent implements OnInit { } getInfo() { - this.apiService.userInfo().subscribe(data => { - this.userInfo = data.result; - this.changeLoginButtonV(); - }, - error => { + this.userService.watchUserInfo({ + complete: () => null, + error: (err) => null, + next: data => { + this.userInfo = data.result; + this.changeLoginButtonV(); + } } ); } logout() { - this.apiService.logout().subscribe(data => { - location.reload(); - }, - error => { - } - ); - this.userInfo = null; + this.userService.logout({ + next: data => null, + error: err => null, + complete: () => null + }); } toAdminPage() { - window.location.href = '/admin'; + this.router.navigateByUrl('/admin') } } diff --git a/index/src/app/global-variables.less b/src/app/global-variables.less similarity index 100% rename from index/src/app/global-variables.less rename to src/app/global-variables.less diff --git a/src/app/services/component-state.service.ts b/src/app/services/component-state.service.ts new file mode 100644 index 0000000..74e270e --- /dev/null +++ b/src/app/services/component-state.service.ts @@ -0,0 +1,61 @@ +import {Injectable} from '@angular/core'; +import {filter} from 'rxjs/operators'; +import {NavigationEnd, Router, RouterEvent} from '@angular/router'; +import {Observable, of, Subscriber} from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class ComponentStateService { + + constructor(private router: Router) { + this.watchRouterChange() + } + + visible = { + header: true, + footer: true, + globalBackToTop: true + } + + currentPath: string + getCurrentRouterPath = () => this.currentPath; + + watchRouterChange() { + let subscriber: Subscriber; + const ob = new Observable(o => subscriber = o); + this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe((e: RouterEvent) => { + // indexOf ==> -1/index + const indexOfParam = e.url.indexOf('?'); + const path = e.url.substr(0, indexOfParam === -1 ? e.url.length : indexOfParam); + // lastIndexOf ==> 0/index + const indexOf = path.lastIndexOf('/'); + const prefix = path.substr(0, indexOf === 0 ? path.length : indexOf); + this.dealWithPathChange(prefix) + this.currentPath = prefix; + if (subscriber) subscriber.next(prefix) + }); + return ob; + } + + private dealWithPathChange(path) { + // tslint:disable-next-line:forin + for (const visibleKey in this.visible) { + this.visible[visibleKey] = true + } + switch (path) { + case '/admin': + this.visible.header = false + this.visible.footer = false + this.visible.globalBackToTop = false + break + case '/user': + case '/write': + this.visible.footer = false + this.visible.globalBackToTop = false + break; + + default: + } + } +} diff --git a/src/app/services/global-user.service.ts b/src/app/services/global-user.service.ts new file mode 100644 index 0000000..d6c3758 --- /dev/null +++ b/src/app/services/global-user.service.ts @@ -0,0 +1,122 @@ +import {Injectable} from '@angular/core'; +import {LoginReq, User} from '../class/User'; +import {ApiService} from '../api/api.service'; +import {Observable, Observer} from 'rxjs'; +import {Response} from '../class/HttpReqAndResp'; +import {LocalStorageService} from './local-storage.service'; + +@Injectable({ + providedIn: 'root' +}) +export class GlobalUserService { + + constructor(private apiService: ApiService, + private localStorageService: LocalStorageService) { + } + + private lastRequestTime: number; + + // 存储订阅者 + private userObserverArray: Observer>[] = []; + + watchUserInfo(observer: Observer>) { + if (this.userObserverArray.indexOf(observer) < 0) this.userObserverArray.push(observer); + const user = this.localStorageService.getUser(); + // 判断本地缓存的用户信息是否符合要求,符合要求返回本地缓存 + if (this.localStorageService.isLogin() && user && !this.localStorageService.checkNeedNet()) { + observer.next(new Response(user)); + return { + unsubscribe() { + observer.complete(); + } + } + } + if (this.lastRequestTime && Date.now() - this.lastRequestTime < 500) { + return { + unsubscribe: () => { + this.userObserverArray.splice(this.userObserverArray.indexOf(observer), 1); + observer.complete(); + } + } + } + // 不符合 请求网络数据并更新缓存 + // 向订阅者传数据 + this.lastRequestTime = Date.now(); + // 获取数据 + const subscription = this.getUserInfoFromServer(); + return { + unsubscribe: () => { + this.userObserverArray.splice(this.userObserverArray.indexOf(observer), 1); + observer.complete(); + subscription.unsubscribe() + } + } + } + + // 刷新用户信息 + refreshUserInfo(): void { + this.getUserInfoFromServer(); + } + + login(loginReq: LoginReq, observer: Observer>) { + const oob = new Observable>(o => observer = o); + const subscription = this.apiService.login(loginReq).subscribe({ + next: o => { + // 登录成功 + this.localStorageService.setToken(o.result.token); + this.localStorageService.setUser(o.result); + // this.userObserver.next(o); + this.userObserverArray.forEach(ob => ob.next(o)) + observer.next(o); + observer.complete(); + }, + error: err => { + observer.error(err); + observer.complete(); + } + }); + return { + unsubscribe() { + observer.complete(); + subscription.unsubscribe(); + } + }; + } + + logout(observer?: Observer>) { + // 如果不需要返回消息也ok + this.apiService.logout().subscribe(data => { + this.localStorageService.clear(); + this.userObserverArray.forEach(ob => ob.next(new Response(null))) + if (observer) { + observer.next(data); + observer.complete(); + } + }, + error => { + if (observer) { + observer.error(error); + observer.complete(); + } + }) + } + + private getUserInfoFromServer() { + return this.apiService.userInfo().subscribe({ + next: o => { + this.localStorageService.setUser(o.result); + this.userObserverArray.forEach(ob => ob.next(o)); + }, + error: err => { + // console.debug('登录过期 token错误 等等'); + if (err.code === -1) { + // 请求重复 + return + } + this.localStorageService.removeToken(); + this.userObserverArray.forEach(ob => ob.next(new Response(null))); + this.userObserverArray.forEach(ob => ob.error(err)); + } + }); + } +} diff --git a/index/src/app/services/local-storage.service.ts b/src/app/services/local-storage.service.ts similarity index 96% rename from index/src/app/services/local-storage.service.ts rename to src/app/services/local-storage.service.ts index ed2dcb9..8aba216 100644 --- a/index/src/app/services/local-storage.service.ts +++ b/src/app/services/local-storage.service.ts @@ -9,8 +9,8 @@ export class LocalStorageService { constructor() { } - // 1分钟 - readonly place = 60 * 1000; + // 30s + readonly place = 30 * 1000; getToken(): string { return localStorage.getItem('token'); diff --git a/index/src/app/utils/color.ts b/src/app/utils/color.ts similarity index 100% rename from index/src/app/utils/color.ts rename to src/app/utils/color.ts diff --git a/src/app/utils/dataUtil.ts b/src/app/utils/dataUtil.ts new file mode 100644 index 0000000..185f0ea --- /dev/null +++ b/src/app/utils/dataUtil.ts @@ -0,0 +1,26 @@ +import {Observable, of} from 'rxjs'; +import {PageList} from '../class/HttpReqAndResp'; + +/** + * 判断 一个Page[] 中是否存在一条已查询的数据 + * @param pageNum 页码 + * @param pageSize 单页数量 + * @param pageList 源数据 + * @return 未查到:null 查到:该条数据 + */ +export function exist(pageNum: number, pageSize: number, pageList: PageList[]): Observable> | null { + if (pageList === undefined || pageList == null || pageList.length === 0) { + return null; + } + // tslint:disable-next-line:prefer-for-of + for (let i = 0; i < pageList.length; i++) { + // tslint:disable-next-line:triple-equals + if (pageList[i].pageNum == pageNum && pageList[i].pageSize == pageSize) { + const ob: Observable> = new Observable(o => { + o.next(pageList[i]); + o.complete(); + }) + } + } + return null; +} diff --git a/index/src/app/utils/svgIconUtil.ts b/src/app/utils/svgIconUtil.ts similarity index 100% rename from index/src/app/utils/svgIconUtil.ts rename to src/app/utils/svgIconUtil.ts diff --git a/index/src/app/utils/util.ts b/src/app/utils/util.ts similarity index 100% rename from index/src/app/utils/util.ts rename to src/app/utils/util.ts diff --git a/src/app/view/admin/admin-article/admin-article.component.html b/src/app/view/admin/admin-article/admin-article.component.html new file mode 100644 index 0000000..ef9c6c9 --- /dev/null +++ b/src/app/view/admin/admin-article/admin-article.component.html @@ -0,0 +1,41 @@ + diff --git a/src/app/view/admin/admin-article/admin-article.component.less b/src/app/view/admin/admin-article/admin-article.component.less new file mode 100644 index 0000000..5bfd2a0 --- /dev/null +++ b/src/app/view/admin/admin-article/admin-article.component.less @@ -0,0 +1,3 @@ +td { + max-width: 200px; +} diff --git a/src/app/view/admin/admin-article/admin-article.component.ts b/src/app/view/admin/admin-article/admin-article.component.ts new file mode 100644 index 0000000..59d37c3 --- /dev/null +++ b/src/app/view/admin/admin-article/admin-article.component.ts @@ -0,0 +1,50 @@ +import {Component, OnInit} from '@angular/core'; +import {NzMessageService} from 'ng-zorro-antd'; +import {ApiService} from '../../../api/api.service'; +import {PageList} from '../../../class/HttpReqAndResp'; +import {Article} from '../../../class/Article'; +import {Title} from '@angular/platform-browser'; + +@Component({ + selector: 'app-admin-article', + templateUrl: './admin-article.component.html', + styleUrls: ['./admin-article.component.less'] +}) +export class AdminArticleComponent implements OnInit { + + constructor(private apiService: ApiService, private nzMessage: NzMessageService, private title: Title) { + } + + page: number = 1; + pageSize: number = 10; + + pageList: PageList
= new PageList
(); + + loading: boolean = true; + + ngOnInit(): void { + this.title.setTitle('小海博客 | 文章管理') + this.getArticle(); + } + + getArticle = () => this.apiService.adminArticles(this.page, this.pageSize).subscribe({ + next: data => this.pageList = data.result, + complete: () => this.loading = false, + error: err => this.loading = false + }) + + deleteArticle(id) { + this.loading = true; + this.apiService.deleteArticle(id).subscribe({ + next: data => { + this.nzMessage.success('删除成功') + this.loading = false; + this.getArticle(); + }, + error: err => { + this.nzMessage.error(err.msg) + this.loading = false + } + }) + } +} diff --git a/src/app/view/admin/admin-article/admin-article.module.ts b/src/app/view/admin/admin-article/admin-article.module.ts new file mode 100644 index 0000000..2e1e461 --- /dev/null +++ b/src/app/view/admin/admin-article/admin-article.module.ts @@ -0,0 +1,31 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminArticleComponent} from './admin-article.component'; +import { + NzCardModule, + NzDividerModule, + NzPopconfirmModule, + NzTableModule, NzTagModule, + NzToolTipModule, + NzTypographyModule +} from 'ng-zorro-antd'; + +@NgModule({ + declarations: [ + AdminArticleComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminArticleComponent}]), + NzTableModule, + NzTypographyModule, + NzToolTipModule, + NzCardModule, + NzDividerModule, + NzPopconfirmModule, + NzTagModule, + ] +}) +export class AdminArticleModule { +} diff --git a/src/app/view/admin/admin-comment/admin-comment.component.html b/src/app/view/admin/admin-comment/admin-comment.component.html new file mode 100644 index 0000000..5d1e959 --- /dev/null +++ b/src/app/view/admin/admin-comment/admin-comment.component.html @@ -0,0 +1,42 @@ +
+ + + + 文章标题 + 评论内容 + 评论者 + 评论日期 + 操作 + + + + {{data.articleTitle}} + + {{data.content}} + + + + + + + {{data.authorName}} + {{data.date}} + + 编辑 + + 删除 + + + + + +
+ diff --git a/src/app/view/admin/admin-comment/admin-comment.component.less b/src/app/view/admin/admin-comment/admin-comment.component.less new file mode 100644 index 0000000..35aa4ab --- /dev/null +++ b/src/app/view/admin/admin-comment/admin-comment.component.less @@ -0,0 +1,3 @@ +td { + max-width: 300px; +} diff --git a/src/app/view/admin/admin-comment/admin-comment.component.ts b/src/app/view/admin/admin-comment/admin-comment.component.ts new file mode 100644 index 0000000..f1693d1 --- /dev/null +++ b/src/app/view/admin/admin-comment/admin-comment.component.ts @@ -0,0 +1,102 @@ +import {Component, OnInit} from '@angular/core'; +import {NzMessageService} from 'ng-zorro-antd'; +import {ApiService} from '../../../api/api.service'; +import {PageList} from '../../../class/HttpReqAndResp'; +import {Comment, CommentReq} from '../../../class/Comment'; +import {GlobalUserService} from '../../../services/global-user.service'; + +@Component({ + selector: 'app-admin-comment', + templateUrl: './admin-comment.component.html', + styleUrls: ['./admin-comment.component.less'] +}) +export class AdminCommentComponent implements OnInit { + + constructor(private apiService: ApiService, private messageService: NzMessageService, private userService: GlobalUserService) { + this.userService.watchUserInfo({ + next: data => { + if (data.result) { + if (data.result.role === 'admin') { + this.getComment = this.getCommentForAdmin; + } else { + this.getComment = this.getCommentForUser; + } + } else { + this.getComment = this.getCommentForUser; + } + this.getComment() + }, + error: null, + complete: null + }) + } + + loading: boolean = true; + pageIndex: number = 1; + pageSize: number = 10; + pageList: PageList = new PageList(); + editInfo = { + id: null, + content: new CommentReq(true), + editFocus: false, + } + getComment: any;// 存放获取评论的方法 + + + ngOnInit(): void { + } + + + getCommentForAdmin = () => this.apiService.getCommentByTypeForAdmin(true, this.pageIndex, this.pageSize).subscribe({ + next: data => this.pageList = data.result, + complete: () => this.loading = false, + error: err => this.loading = false + }) + + getCommentForUser = () => this.apiService.getCommentByTypeForUser(true, this.pageIndex, this.pageSize).subscribe({ + next: data => this.pageList = data.result, + complete: () => this.loading = false, + error: err => this.loading = false + }) + + deleteComment(id: number) { + this.loading = true; + this.apiService.deleteComment(id).subscribe({ + next: () => { + this.messageService.success('删除评论成功'); + this.getComment(); + }, + error: err => { + this.loading = false; + this.messageService.error(err.msg); + }, + complete: () => this.loading = false + }) + } + + edit() { + this.editInfo.editFocus = false; + this.loading = true; + this.apiService.updateComment(this.editInfo.content).subscribe({ + next: data => { + this.messageService.success('更新评论成功'); + this.getComment(); + }, + error: err => { + this.loading = false; + this.messageService.success(err.msg); + }, + complete: () => this.loading = false + }) + } + + editFocus(data: Comment) { + this.editInfo.id = data.id; + this.editInfo.content.content = data.content; + this.editInfo.content.id = data.id; + this.editInfo.content.articleID = data.articleID; + this.editInfo.content.pid = data.pid; + this.editInfo.content.responseId = data.responseId; + this.editInfo.editFocus = true; + } +} diff --git a/src/app/view/admin/admin-comment/admin-comment.module.ts b/src/app/view/admin/admin-comment/admin-comment.module.ts new file mode 100644 index 0000000..b070182 --- /dev/null +++ b/src/app/view/admin/admin-comment/admin-comment.module.ts @@ -0,0 +1,37 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminCommentComponent} from './admin-comment.component'; +import { + NzButtonModule, + NzCardModule, + NzDividerModule, NzIconModule, NzInputModule, + NzPopconfirmModule, + NzTableModule, + NzToolTipModule, + NzTypographyModule +} from 'ng-zorro-antd'; +import {FormsModule} from '@angular/forms'; + + +@NgModule({ + declarations: [ + AdminCommentComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminCommentComponent}]), + NzCardModule, + NzTableModule, + NzDividerModule, + NzPopconfirmModule, + NzTypographyModule, + NzToolTipModule, + NzInputModule, + FormsModule, + NzIconModule, + NzButtonModule + ] +}) +export class AdminCommentModule { +} diff --git a/src/app/view/admin/admin-dashboard/admin-dashboard.component.html b/src/app/view/admin/admin-dashboard/admin-dashboard.component.html new file mode 100644 index 0000000..90fd9d9 --- /dev/null +++ b/src/app/view/admin/admin-dashboard/admin-dashboard.component.html @@ -0,0 +1,67 @@ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + +
{{logText}}
+
+
+
+
+
+
+ + + + +

此博客由 禾几海(郑海) 设计并实现的

+

博客自2019年3月开始开发编写 5月开始正式运行至今

+

博客所有代码都是开源的,你可以随意修改,运行和发布

+

+ 后端代码可以在此处找到 + + 前端代码可以在此处找到 +

+

如果觉得博客还不错,请前往Github支持我,给我点一个star吧

+
+ +

坚强的信心,能使平凡的人做出惊人的事业。

+

——马尔顿

+
+
+
diff --git a/admin/src/app/pages/links-manager/links.component.css b/src/app/view/admin/admin-dashboard/admin-dashboard.component.less similarity index 100% rename from admin/src/app/pages/links-manager/links.component.css rename to src/app/view/admin/admin-dashboard/admin-dashboard.component.less diff --git a/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts b/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts new file mode 100644 index 0000000..e007eaf --- /dev/null +++ b/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts @@ -0,0 +1,61 @@ +import {Component, OnInit} from '@angular/core'; +import {HttpClient} from '@angular/common/http'; +import {ApiService} from '../../../api/api.service'; +import {GlobalUserService} from '../../../services/global-user.service'; +import {User} from '../../../class/User'; + +@Component({ + selector: 'app-admin-dashboard', + templateUrl: './admin-dashboard.component.html', + styleUrls: ['./admin-dashboard.component.less'] +}) +export class AdminDashboardComponent implements OnInit { + constructor(private apiService: ApiService, private userService: GlobalUserService, private http: HttpClient) { + this.getUserInfo(); + } + + logLoading: boolean = true; + logText: string = null; + counts: { + articleCount: number, + visitorCount: number, + categoryCount: number, + leaveMsgCount: number, + tagCount: number, + commentCount: number + } = {articleCount: 0, visitorCount: 0, categoryCount: 0, tagCount: 0, commentCount: 0, leaveMsgCount: 0} + + dayVisitCount: number = 0; + userInfo: User = new User(); + + ngOnInit(): void { + } + + getLog() { + this.http.get('https://api.celess.cn/blog.log', {responseType: 'text'}).subscribe(data => { + this.logText = data; + this.logLoading = false + }); + } + + getCounts = () => this.apiService.counts().subscribe({ + next: data => this.counts = data.result + }) + + getDayVisitCount = () => this.apiService.dayVisitCount().subscribe({ + next: data => this.dayVisitCount = data.result + }) + + getUserInfo = () => this.userService.watchUserInfo({ + next: data => { + this.userInfo = data.result + if (data.result && data.result.role === 'admin') { + this.getLog(); + this.getCounts(); + this.getDayVisitCount(); + } + }, + error: null, + complete: null + }) +} diff --git a/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts b/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts new file mode 100644 index 0000000..38c15ea --- /dev/null +++ b/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts @@ -0,0 +1,31 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {AdminDashboardComponent} from './admin-dashboard.component'; +import {RouterModule} from '@angular/router'; +import { + NzButtonModule, + NzCardModule, + NzDividerModule, + NzGridModule, + NzIconModule, + NzSpinModule, + NzStatisticModule +} from 'ng-zorro-antd'; + + +@NgModule({ + declarations: [AdminDashboardComponent], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminDashboardComponent}]), + NzGridModule, + NzCardModule, + NzButtonModule, + NzSpinModule, + NzIconModule, + NzStatisticModule, + NzDividerModule + ] +}) +export class AdminDashboardModule { +} diff --git a/src/app/view/admin/admin-link/admin-link.component.html b/src/app/view/admin/admin-link/admin-link.component.html new file mode 100644 index 0000000..8ce023f --- /dev/null +++ b/src/app/view/admin/admin-link/admin-link.component.html @@ -0,0 +1,62 @@ +
+ + + + + 友链名称 + 友链地址 + 是否可见 + 操作 + + + + {{data.name}} + {{data.url}} + + + + + 编辑 + + 删除 + + + + + +
+ + +
+ + 网站名称 + + + + + + 网站链接 + + + +
网站链接不可为空
+
网站链接格式不正确
+
+
+
+
+ + 是否公开 + + + + + + + +
+
diff --git a/admin/src/app/pages/update-manager/update.component.css b/src/app/view/admin/admin-link/admin-link.component.less similarity index 100% rename from admin/src/app/pages/update-manager/update.component.css rename to src/app/view/admin/admin-link/admin-link.component.less diff --git a/src/app/view/admin/admin-link/admin-link.component.ts b/src/app/view/admin/admin-link/admin-link.component.ts new file mode 100644 index 0000000..96b9396 --- /dev/null +++ b/src/app/view/admin/admin-link/admin-link.component.ts @@ -0,0 +1,91 @@ +import {Component, OnInit} from '@angular/core'; +import {PageList, Response} from '../../../class/HttpReqAndResp'; +import {Link} from '../../../class/Link'; +import {ApiService} from '../../../api/api.service'; +import {NzMessageService} from 'ng-zorro-antd'; +import {FormControl, FormGroup, Validators} from '@angular/forms'; +import {Observable} from 'rxjs'; + +@Component({ + selector: 'app-admin-link', + templateUrl: './admin-link.component.html', + styleUrls: ['./admin-link.component.less'] +}) +export class AdminLinkComponent implements OnInit { + + constructor(private apiService: ApiService, private messageService: NzMessageService) { + this.formGroup = new FormGroup({ + id: new FormControl(null), + name: new FormControl(null, [Validators.required]), + url: new FormControl(null, [Validators.required, Validators.pattern(/^(https:\/\/|http:\/\/|)([\w-]+\.)+[\w-]+(\/[\w-./?%&=]*)?$/)]), + open: new FormControl(null, [Validators.required]), + oper: new FormControl(null) + }) + } + + pageList: PageList = new PageList(); + loading: boolean = true; + pageIndex: number = 1; + pageSize: number = 10; + modalVisible: boolean = false; + modalTitle: string = ''; + formGroup: FormGroup; + + getLinks = () => this.apiService.adminLinks(this.pageSize, this.pageIndex).subscribe({ + next: data => this.pageList = data.result, + error: () => this.loading = false, + complete: () => this.loading = false, + }) + + ngOnInit(): void { + this.getLinks(); + } + + delete(id: number) { + this.apiService.deleteLink(id).subscribe({ + next: data => { + this.messageService.success('删除成功'); + this.getLinks(); + }, + error: () => { + this.loading = false; + this.messageService.error('删除失败'); + }, + complete: () => this.loading = false, + }) + } + + showEdit(data: Link) { + this.modalVisible = true; + this.modalTitle = '编辑友链信息'; + this.formGroup.patchValue(data); + this.formGroup.controls.oper.setValue('edit') + } + + modalConfirm() { + this.modalVisible = false; + const linkReq: Link = new Link(); + linkReq.name = this.formGroup.value.name; + linkReq.url = this.formGroup.value.url; + linkReq.open = this.formGroup.value.open; + const oper = this.formGroup.value.oper; + let observable: Observable>; + if (oper === 'edit') { + linkReq.id = this.formGroup.value.id; + observable = this.apiService.updateLink(linkReq); + } else if (oper === 'add') { + observable = this.apiService.createLink(linkReq); + } + observable.subscribe({ + next: data => this.messageService.success('操作成功'), + error: err => this.messageService.success('操作失败,', err.msg), + complete: () => this.getLinks() + }) + } + + addLink() { + this.modalVisible = true; + this.modalTitle = '新增友链信息'; + this.formGroup.controls.oper.setValue('add') + } +} diff --git a/src/app/view/admin/admin-link/admin-link.module.ts b/src/app/view/admin/admin-link/admin-link.module.ts new file mode 100644 index 0000000..ed478fb --- /dev/null +++ b/src/app/view/admin/admin-link/admin-link.module.ts @@ -0,0 +1,37 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminLinkComponent} from './admin-link.component'; +import { + NzButtonModule, + NzCardModule, + NzDividerModule, + NzFormModule, NzInputModule, + NzModalModule, + NzPopconfirmModule, NzSelectModule, + NzTableModule +} from 'ng-zorro-antd'; +import {ReactiveFormsModule} from '@angular/forms'; + + +@NgModule({ + declarations: [ + AdminLinkComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminLinkComponent}]), + NzCardModule, + NzTableModule, + NzDividerModule, + NzPopconfirmModule, + NzModalModule, + NzFormModule, + ReactiveFormsModule, + NzInputModule, + NzSelectModule, + NzButtonModule + ] +}) +export class AdminLinkModule { +} diff --git a/src/app/view/admin/admin-routing.module.ts b/src/app/view/admin/admin-routing.module.ts new file mode 100644 index 0000000..bb185eb --- /dev/null +++ b/src/app/view/admin/admin-routing.module.ts @@ -0,0 +1,65 @@ +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from '@angular/router'; +import {AdminComponent} from './admin.component'; +import {AuthGuard} from './auth.guard'; + + +const routes: Routes = [ + { + path: '', + component: AdminComponent, + // canActivate: [AuthGuard], + children: [ + { + path: 'article', + loadChildren: () => import('./admin-article/admin-article.module').then(mod => mod.AdminArticleModule), + canActivate: [AuthGuard] + }, + { + path: 'comment', + loadChildren: () => import('./admin-comment/admin-comment.module').then(mod => mod.AdminCommentModule), + canActivate: [AuthGuard] + }, + { + path: 'link', + loadChildren: () => import('./admin-link/admin-link.module').then(mod => mod.AdminLinkModule), + canActivate: [AuthGuard] + }, + { + path: 'tag', + loadChildren: () => import('./admin-tag/admin-tag.module').then(mod => mod.AdminTagModule), + canActivate: [AuthGuard] + }, + { + path: 'update', + loadChildren: () => import('./admin-update/admin-update.module').then(mod => mod.AdminUpdateModule), + canActivate: [AuthGuard] + }, + { + path: 'user', + loadChildren: () => import('./admin-user/admin-user.module').then(mod => mod.AdminUserModule), + canActivate: [AuthGuard] + }, + { + path: 'visitor', + loadChildren: () => import('./admin-visitor/admin-visitor.module').then(mod => mod.AdminVisitorModule), + canActivate: [AuthGuard] + }, + { + path: '**', + loadChildren: () => import('./admin-dashboard/admin-dashboard.module').then(mod => mod.AdminDashboardModule), + canActivate: [AuthGuard] + } + ] + } +]; + +@NgModule({ + imports: [ + RouterModule.forChild(routes) + ], + exports: [RouterModule] +}) + +export class AdminRoutingModule { +} diff --git a/src/app/view/admin/admin-tag/admin-tag.component.html b/src/app/view/admin/admin-tag/admin-tag.component.html new file mode 100644 index 0000000..aab61b7 --- /dev/null +++ b/src/app/view/admin/admin-tag/admin-tag.component.html @@ -0,0 +1,92 @@ +
+ + + +
+ + + + + +
+ + + 分类名 + 分类文章数量 + 操作 + + + + + {{data.name}} + + + + + + + + {{data.articles ? data.articles.length : 0}} + + + 编辑 + + 查看 + + 删除 + + + + +
+ + + + 标签名 + 分类文章数量 + 操作 + + + + + {{data.name}} + + + + + + + + {{data.articles ? data.articles.length : 0}} + + + 编辑 + + 查看 + + 删除 + + + + + +
+
+
+ diff --git a/admin/src/app/pages/visitor-manager/visitor-manager.component.css b/src/app/view/admin/admin-tag/admin-tag.component.less similarity index 100% rename from admin/src/app/pages/visitor-manager/visitor-manager.component.css rename to src/app/view/admin/admin-tag/admin-tag.component.less diff --git a/src/app/view/admin/admin-tag/admin-tag.component.ts b/src/app/view/admin/admin-tag/admin-tag.component.ts new file mode 100644 index 0000000..04cba13 --- /dev/null +++ b/src/app/view/admin/admin-tag/admin-tag.component.ts @@ -0,0 +1,141 @@ +import {Component, OnInit} from '@angular/core'; +import {NzMessageService} from 'ng-zorro-antd'; +import {Category, Tag} from '../../../class/Tag'; +import {ApiService} from '../../../api/api.service'; +import {PageList} from '../../../class/HttpReqAndResp'; +import {Title} from '@angular/platform-browser'; + +@Component({ + selector: 'app-admin-tag', + templateUrl: './admin-tag.component.html', + styleUrls: ['./admin-tag.component.less'] +}) +export class AdminTagComponent implements OnInit { + + constructor(private apiService: ApiService, private nzMessageService: NzMessageService, private title: Title) { + } + + loading: boolean = true; + + categoryList: Category[] = []; + editInfo = { + id: null, + name: null, + editFocus: false, + isAdd: false + } + tagPageList: PageList = new PageList(); + + pageIndex: number = 1; + pageSize: number = 10; + + + ngOnInit(): void { + this.title.setTitle('小海博客 | 标签分类管理') + this.getCategory(); + this.getTag(); + } + + getCategory = () => this.apiService.categories().subscribe({ + next: data => this.categoryList = data.result, + complete: () => this.loading = false, + error: err => this.loading = false + }) + + getTag = () => this.apiService.tags(this.pageIndex, this.pageSize).subscribe({ + next: data => this.tagPageList = data.result, + complete: () => this.loading = false, + error: err => this.loading = false + }) + + delete(id, mode: 'tag' | 'category') { + this.loading = true; + if (mode === 'tag') { + this.apiService.deleteTag(id).subscribe({ + next: data => { + this.nzMessageService.success('删除成功') + this.getTag(); + }, + complete: () => this.loading = false, + error: err => { + this.nzMessageService.error(err.msg) + this.loading = false + } + }) + } else if (mode === 'category') { + this.apiService.deleteCategory(id).subscribe({ + next: data => { + this.nzMessageService.success('删除成功') + this.getCategory(); + }, + complete: () => this.loading = false, + error: err => { + this.nzMessageService.error(err.msg) + this.loading = false + } + }) + } + } + + editFocus(data: Category) { + this.editInfo.isAdd = false; + this.editInfo.id = data.id; + this.editInfo.name = data.name; + this.editInfo.editFocus = true; + } + + edit(mode: 'tag' | 'category') { + this.loading = true; + if (mode === 'tag') { + this.apiService.updateTag(this.editInfo.id, this.editInfo.name).subscribe({ + next: data => { + this.nzMessageService.success('更新成功') + this.getTag(); + }, + complete: () => this.loading = false, + error: err => { + this.nzMessageService.error(err.msg) + this.loading = false + } + }) + } else if (mode === 'category') { + this.apiService.updateCategory(this.editInfo.id, this.editInfo.name).subscribe({ + next: data => { + this.nzMessageService.success('更新成功') + this.getCategory(); + }, + complete: () => this.loading = false, + error: err => { + this.nzMessageService.error(err.msg) + this.loading = false + } + }) + } + this.editInfo.editFocus = false + this.editInfo.name = null + } + + addCategory() { + this.editInfo.isAdd = true + if (!this.editInfo.editFocus && this.editInfo.isAdd) { + this.editInfo.name = null; + this.editInfo.id = null; + this.editInfo.editFocus = true; + return + } + this.apiService.createCategory(this.editInfo.name).subscribe({ + next: data => { + this.nzMessageService.success('新增成功') + this.getCategory(); + }, + complete: () => this.loading = false, + error: err => { + this.nzMessageService.error(err.msg) + this.loading = false + } + }); + this.editInfo.editFocus = false + this.editInfo.isAdd = false + this.editInfo.name = null + } +} diff --git a/src/app/view/admin/admin-tag/admin-tag.module.ts b/src/app/view/admin/admin-tag/admin-tag.module.ts new file mode 100644 index 0000000..2595bc1 --- /dev/null +++ b/src/app/view/admin/admin-tag/admin-tag.module.ts @@ -0,0 +1,35 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminTagComponent} from './admin-tag.component'; +import { + NzButtonModule, + NzCardModule, + NzDividerModule, NzIconModule, + NzInputModule, NzPopconfirmModule, + NzTableModule, NzTabsModule, NzTagModule, +} from 'ng-zorro-antd'; +import {FormsModule} from '@angular/forms'; + + +@NgModule({ + declarations: [ + AdminTagComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminTagComponent}]), + NzCardModule, + NzTableModule, + NzDividerModule, + NzInputModule, + FormsModule, + NzTabsModule, + NzPopconfirmModule, + NzButtonModule, + NzIconModule, + NzTagModule, + ] +}) +export class AdminTagModule { +} diff --git a/src/app/view/admin/admin-update/admin-update.component.html b/src/app/view/admin/admin-update/admin-update.component.html new file mode 100644 index 0000000..4dbfa90 --- /dev/null +++ b/src/app/view/admin/admin-update/admin-update.component.html @@ -0,0 +1,32 @@ +
+ + + + + 更新内容 + 更新日期 + 操作 + + + + {{data.info}} + {{data.time}} + + 编辑 + + 删除 + + + + + +
+ + + + diff --git a/src/app/view/admin/admin-update/admin-update.component.less b/src/app/view/admin/admin-update/admin-update.component.less new file mode 100644 index 0000000..35aa4ab --- /dev/null +++ b/src/app/view/admin/admin-update/admin-update.component.less @@ -0,0 +1,3 @@ +td { + max-width: 300px; +} diff --git a/src/app/view/admin/admin-update/admin-update.component.ts b/src/app/view/admin/admin-update/admin-update.component.ts new file mode 100644 index 0000000..44e7632 --- /dev/null +++ b/src/app/view/admin/admin-update/admin-update.component.ts @@ -0,0 +1,95 @@ +import {Component, OnInit} from '@angular/core'; +import {NzMessageService} from 'ng-zorro-antd'; +import {Title} from '@angular/platform-browser'; +import {Observable} from 'rxjs'; +import {ApiService} from '../../../api/api.service'; +import {PageList, Response} from '../../../class/HttpReqAndResp'; +import {UpdateInfo} from '../../../class/UpdateInfo'; + +@Component({ + selector: 'app-admin-update', + templateUrl: './admin-update.component.html', + styleUrls: ['./admin-update.component.less'] +}) +export class AdminUpdateComponent implements OnInit { + + + constructor(private apiService: ApiService, private nzMessage: NzMessageService, private title: Title) { + } + + pageIndex: number = 1; + pageSize: number = 10; + + pageList: PageList = new PageList(); + + loading: boolean = true; + + modalData = { + visible: false, + content: null, + id: null, + title: null + }; + + ngOnInit(): void { + this.title.setTitle('小海博客 | 更新信息管理') + this.getUpdateInfo(); + } + + getUpdateInfo = () => this.apiService.webUpdatePage(this.pageSize, this.pageIndex).subscribe({ + next: data => this.pageList = data.result, + complete: () => this.loading = false, + error: err => this.loading = false + }) + + + deleteUpdateInfo(id) { + this.loading = true; + this.apiService.deleteWebUpdateInfo(id).subscribe({ + next: data => { + this.nzMessage.success('删除成功') + this.loading = false; + this.getUpdateInfo(); + }, + error: err => { + this.nzMessage.error(err.msg) + this.loading = false + } + }) + } + + confirm() { + this.loading = true; + this.modalData.visible = false; + let observable: Observable> + if (this.modalData.id) { + observable = this.apiService.updateWebUpdateInfo(this.modalData.id, this.modalData.content) + } else { + observable = this.apiService.createWebUpdateInfo(this.modalData.content) + } + observable.subscribe({ + next: data => { + this.nzMessage.success('操作成功') + this.loading = false; + this.getUpdateInfo(); + }, + error: err => { + this.nzMessage.error(err.msg) + this.loading = false + } + }) + console.log(this.modalData); + } + + showModal(data?: UpdateInfo) { + this.modalData.id = null; + this.modalData.title = '新增更新信息'; + this.modalData.content = null; + if (data) { + this.modalData.id = data.id; + this.modalData.content = data.info; + this.modalData.title = '编辑更新信息'; + } + this.modalData.visible = true; + } +} diff --git a/src/app/view/admin/admin-update/admin-update.module.ts b/src/app/view/admin/admin-update/admin-update.module.ts new file mode 100644 index 0000000..a368774 --- /dev/null +++ b/src/app/view/admin/admin-update/admin-update.module.ts @@ -0,0 +1,37 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminUpdateComponent} from './admin-update.component'; +import { + NzButtonModule, + NzCardModule, + NzDividerModule, NzInputModule, NzModalModule, + NzPopconfirmModule, + NzTableModule, + NzToolTipModule, + NzTypographyModule +} from 'ng-zorro-antd'; +import {FormsModule} from '@angular/forms'; + + +@NgModule({ + declarations: [ + AdminUpdateComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminUpdateComponent}]), + NzCardModule, + NzTableModule, + NzTypographyModule, + NzToolTipModule, + NzDividerModule, + NzPopconfirmModule, + NzModalModule, + FormsModule, + NzButtonModule, + NzInputModule + ] +}) +export class AdminUpdateModule { +} diff --git a/src/app/view/admin/admin-user/admin-user.component.html b/src/app/view/admin/admin-user/admin-user.component.html new file mode 100644 index 0000000..f06b013 --- /dev/null +++ b/src/app/view/admin/admin-user/admin-user.component.html @@ -0,0 +1,117 @@ +
+ + + + 邮箱 + 昵称 + 角色 + 邮箱验证状态 + 操作 + + + + {{data.email}} + {{data.displayName}} + + {{data.role}} + {{data.role}} + + + 已验证 + 未验证 + + + 编辑 + + 查看 + + 删除 + + + + + +
+ + + +
+ + 邮箱 + + + + + + + 昵称 + + + + + + + + 角色 + + + + + + + + + + 状态 + + + + + + + + + + 密码 + + + 重设密码 + + + + + + + + + + + + 描述 + + + + +
+
+ + + + + + + + + + +
diff --git a/admin/src/assets/.gitkeep b/src/app/view/admin/admin-user/admin-user.component.less similarity index 100% rename from admin/src/assets/.gitkeep rename to src/app/view/admin/admin-user/admin-user.component.less diff --git a/src/app/view/admin/admin-user/admin-user.component.ts b/src/app/view/admin/admin-user/admin-user.component.ts new file mode 100644 index 0000000..d066f55 --- /dev/null +++ b/src/app/view/admin/admin-user/admin-user.component.ts @@ -0,0 +1,93 @@ +import {Component, OnInit} from '@angular/core'; +import {NzMessageService} from 'ng-zorro-antd'; +import {Title} from '@angular/platform-browser'; +import {FormControl, FormGroup} from '@angular/forms'; +import {PageList} from '../../../class/HttpReqAndResp'; +import {ApiService} from '../../../api/api.service'; +import {User} from '../../../class/User'; +import {GlobalUserService} from '../../../services/global-user.service'; + +@Component({ + selector: 'app-admin-user', + templateUrl: './admin-user.component.html', + styleUrls: ['./admin-user.component.less'] +}) +export class AdminUserComponent implements OnInit { + + constructor(private apiService: ApiService, private title: Title, private messageService: NzMessageService, + private userService: GlobalUserService) { + this.formGroup = new FormGroup({ + id: new FormControl(null), + email: new FormControl(''), + displayName: new FormControl(''), + emailStatus: new FormControl(null), + desc: new FormControl(null), + role: new FormControl(null), + pwd: new FormControl(''), + }); + this.userService.watchUserInfo({ + next: data => this.user = data.result, + error: null, + complete: null + }) + } + + pageIndex: number = 1; + pageSize: number = 10; + + pageList: PageList = new PageList(); + user: User; + loading: boolean = true; + modalData = { + visible: false, + title: null, + isEdit: false, + resetPwd: false + } + formGroup: FormGroup; + + ngOnInit(): void { + this.title.setTitle('小海博客 | 用户管理') + this.getUser(); + } + + getUser = () => this.apiService.adminUsers(this.pageSize, this.pageIndex).subscribe({ + next: data => this.pageList = data.result, + complete: () => this.loading = false, + error: err => this.loading = false + }) + + deleteUser(id) { + this.loading = true; + this.apiService.deleteUser(id).subscribe({ + next: data => { + this.messageService.success('删除成功') + this.loading = false; + this.getUser(); + }, + error: err => { + this.messageService.error(err.msg) + this.loading = false + } + }) + } + + showModal(isEdit: boolean, data: User) { + this.modalData.visible = true; + this.modalData.isEdit = isEdit; + this.modalData.title = isEdit ? '编辑用户' : '查看用户' + this.formGroup.reset(); + this.formGroup.patchValue(data); + } + + modalConfirm() { + this.modalData.visible = false + this.apiService.adminUpdateUser(this.formGroup.value).subscribe({ + next: data => { + this.getUser(); + this.messageService.success('修改用户信息成功'); + this.userService.refreshUserInfo(); + } + }) + } +} diff --git a/src/app/view/admin/admin-user/admin-user.module.ts b/src/app/view/admin/admin-user/admin-user.module.ts new file mode 100644 index 0000000..e3d9344 --- /dev/null +++ b/src/app/view/admin/admin-user/admin-user.module.ts @@ -0,0 +1,41 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminUserComponent} from './admin-user.component'; +import { + NzButtonModule, + NzCardModule, + NzDividerModule, NzFormModule, NzIconModule, NzInputModule, + NzModalModule, + NzPopconfirmModule, NzRadioModule, NzSelectModule, + NzTableModule, + NzTagModule +} from 'ng-zorro-antd'; +import {ReactiveFormsModule} from '@angular/forms'; + + +@NgModule({ + declarations: [ + AdminUserComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminUserComponent}]), + NzCardModule, + NzTableModule, + NzPopconfirmModule, + NzDividerModule, + NzTagModule, + NzModalModule, + NzButtonModule, + NzFormModule, + ReactiveFormsModule, + NzInputModule, + NzSelectModule, + NzRadioModule, + NzIconModule + + ] +}) +export class AdminUserModule { +} diff --git a/src/app/view/admin/admin-visitor/admin-visitor.component.html b/src/app/view/admin/admin-visitor/admin-visitor.component.html new file mode 100644 index 0000000..d5cf0c7 --- /dev/null +++ b/src/app/view/admin/admin-visitor/admin-visitor.component.html @@ -0,0 +1,24 @@ +
+ + + + ip地址 + 访问日期 + 浏览器类型 + 浏览器版本 + 系统 + + + + {{data.ip}} + {{data.date}} + {{data.browserName}} + {{data.browserVersion}} + {{data.osname}} + + + + +
diff --git a/index/src/app/view/index/components/card-detail/card-detail.component.less b/src/app/view/admin/admin-visitor/admin-visitor.component.less similarity index 100% rename from index/src/app/view/index/components/card-detail/card-detail.component.less rename to src/app/view/admin/admin-visitor/admin-visitor.component.less diff --git a/src/app/view/admin/admin-visitor/admin-visitor.component.ts b/src/app/view/admin/admin-visitor/admin-visitor.component.ts new file mode 100644 index 0000000..0df1eb7 --- /dev/null +++ b/src/app/view/admin/admin-visitor/admin-visitor.component.ts @@ -0,0 +1,34 @@ +import {Component, OnInit} from '@angular/core'; +import {Title} from '@angular/platform-browser'; +import {ApiService} from '../../../api/api.service'; +import {PageList} from '../../../class/HttpReqAndResp'; +import {Visitor} from '../../../class/Visitor'; + +@Component({ + selector: 'app-admin-visitor', + templateUrl: './admin-visitor.component.html', + styleUrls: ['./admin-visitor.component.less'] +}) +export class AdminVisitorComponent implements OnInit { + + constructor(private apiService: ApiService, private title: Title) { + } + + pageIndex: number = 1; + pageSize: number = 10; + + pageList: PageList = new PageList(); + + loading: boolean = true; + + ngOnInit(): void { + this.title.setTitle('小海博客 | 访客信息管理') + this.getVisitors(); + } + + getVisitors = () => this.apiService.adminVisitors(false, this.pageSize, this.pageIndex).subscribe({ + next: data => this.pageList = data.result, + complete: () => this.loading = false, + error: err => this.loading = false + }) +} diff --git a/src/app/view/admin/admin-visitor/admin-visitor.module.ts b/src/app/view/admin/admin-visitor/admin-visitor.module.ts new file mode 100644 index 0000000..b673ee9 --- /dev/null +++ b/src/app/view/admin/admin-visitor/admin-visitor.module.ts @@ -0,0 +1,22 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminVisitorComponent} from './admin-visitor.component'; +import {NzButtonModule, NzCardModule, NzDividerModule, NzTableModule} from 'ng-zorro-antd'; + + +@NgModule({ + declarations: [ + AdminVisitorComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminVisitorComponent}]), + NzCardModule, + NzTableModule, + NzButtonModule, + NzDividerModule + ] +}) +export class AdminVisitorModule { +} diff --git a/src/app/view/admin/admin.component.html b/src/app/view/admin/admin.component.html new file mode 100644 index 0000000..5b09ca1 --- /dev/null +++ b/src/app/view/admin/admin.component.html @@ -0,0 +1,159 @@ + + + +
    +
  • + + 后台首页 +
  • + +
  • + +
  • + +
  • + + 评论管理 +
  • + +
  • + + 标签管理 +
  • + + + + + + +
  • + + 用户管理 +
  • + +
  • + + 友链管理 +
  • + +
  • + + 访问管理 +
  • + +
  • + + 更新管理 +
  • + +
  • + + 查看信息 +
  • + + + +

    别管别人言语

    +

    做最好的自己

    +
    + +

    欢迎来访小海博客

    +
    + +
+
+ + +
+ +
+
+ © 小海博客 - Design by 小海 +
+
+ +

您最近一次登录是在:

+

{{user.recentlyLandedDate}}

+

+ + + +
+ + {{user.email}} + +
+
+ +
+ + {{user.displayName}} + +
+
+ +
+ + {{user.desc}} + +
+
+
+ + +
+ 注销 +
+ +
+ + +
+ + 邮箱 + + + + + + 昵称 + + + + + + 描述 + + + + +
+
+ + + + + + + {{sayHelloContent}} + + diff --git a/src/app/view/admin/admin.component.less b/src/app/view/admin/admin.component.less new file mode 100644 index 0000000..c609a9d --- /dev/null +++ b/src/app/view/admin/admin.component.less @@ -0,0 +1,48 @@ + +.myCard { + width: 180px; + margin-left: 10px; +} + +nz-layout, nz-sider { + min-height: 100%; +} + +.layout { + padding-top: 80px; +} + +p { + text-align: center; +} + +nz-content { + margin-left: 30px; + margin-right: 30px; +} + +.inner-content { + padding: 15px; + background: #fff; + min-height: 560px; + height: 100%; +} + +.icon { + margin-right: 5px; +} +.edit-icon{ + margin-left: 10px; + cursor: pointer; +} + +nz-footer { + text-align: center; +} + +@media only screen and (max-width: 768px) { + nz-content { + margin-left: 10px; + margin-right: 10px; + } +} diff --git a/src/app/view/admin/admin.component.ts b/src/app/view/admin/admin.component.ts new file mode 100644 index 0000000..543fcec --- /dev/null +++ b/src/app/view/admin/admin.component.ts @@ -0,0 +1,92 @@ +import {Component, OnInit} from '@angular/core'; +import {FormControl, FormGroup} from '@angular/forms'; +import {NzMessageService} from 'ng-zorro-antd'; +import {Router} from '@angular/router'; +import {GlobalUserService} from '../../services/global-user.service'; +import {User} from '../../class/User'; +import {ApiService} from '../../api/api.service'; + +@Component({ + selector: 'app-admin', + templateUrl: './admin.component.html', + styleUrls: ['./admin.component.less'] +}) +export class AdminComponent implements OnInit { + + constructor(public gUserService: GlobalUserService, private apiService: ApiService, private messageService: NzMessageService, + private router: Router) { + this.gUserService.watchUserInfo({ + complete: () => null, + error: (err) => null, + next: data => { + console.log('更新user') + this.user = data.result + if (data.result) this.initHelloWords() + } + } + ) + } + + user: User; + isCollapsed: boolean = false; + infoDrawerVisible: boolean = false; + sayHelloContent: string; + editInfoModalVisible: boolean = false; + editInfoFormGroup: FormGroup; + + showInfoDrawer = () => this.infoDrawerVisible = !this.infoDrawerVisible; + + logout() { + this.gUserService.logout(); + this.router.navigateByUrl('/') + } + + ngOnInit(): void { + this.editInfoFormGroup = new FormGroup({ + desc: new FormControl(), + displayName: new FormControl(), + email: new FormControl({value: null, disabled: true}) + }); + } + + private initHelloWords() { + const hours = new Date().getHours(); + if (hours < 6) { + this.sayHelloContent = `夜深了,注意早点休息哦!${this.user.displayName}` + } else if (hours < 10) { + this.sayHelloContent = `早上好呀!${this.user.displayName}` + } else if (hours < 14) { + this.sayHelloContent = `中午好呀!${this.user.displayName}` + } else if (hours < 19) { + this.sayHelloContent = `下午好呀!${this.user.displayName}` + } else if (hours < 22) { + this.sayHelloContent = `晚上好呀!${this.user.displayName}` + } else { + this.sayHelloContent = `时间不早了,注意休息哦!${this.user.displayName}` + } + } + + showEditInfoModal() { + this.editInfoModalVisible = true; + this.infoDrawerVisible = false; + this.editInfoFormGroup.patchValue(this.user); + } + + modalConfirm() { + const desc = this.editInfoFormGroup.value.desc; + const displayName = this.editInfoFormGroup.value.displayName; + this.apiService.updateUserInfo(desc, displayName).subscribe({ + next: data => { + this.messageService.success('修改信息成功') + this.gUserService.refreshUserInfo(); + }, + error: err => { + this.messageService.error(err.msg); + this.gUserService.refreshUserInfo(); + }, + complete: null + }); + this.editInfoModalVisible = false; + } + +} diff --git a/src/app/view/admin/admin.module.ts b/src/app/view/admin/admin.module.ts new file mode 100644 index 0000000..2e49390 --- /dev/null +++ b/src/app/view/admin/admin.module.ts @@ -0,0 +1,25 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {AdminRoutingModule} from './admin-routing.module'; +import {AdminComponent} from './admin.component'; +import {NgZorroAntdModule} from 'ng-zorro-antd'; +import {NzSpaceModule} from 'ng-zorro-antd/space'; +import {AdminHeaderComponent} from '../../components/admin-header/admin-header.component'; +import {ReactiveFormsModule} from '@angular/forms'; + + +@NgModule({ + declarations: [ + AdminHeaderComponent, + AdminComponent + ], + imports: [ + CommonModule, + AdminRoutingModule, + NgZorroAntdModule, + NzSpaceModule, + ReactiveFormsModule + ] +}) +export class AdminModule { +} diff --git a/src/app/view/admin/auth.guard.ts b/src/app/view/admin/auth.guard.ts new file mode 100644 index 0000000..a226411 --- /dev/null +++ b/src/app/view/admin/auth.guard.ts @@ -0,0 +1,70 @@ +import {Injectable} from '@angular/core'; +import {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router'; +import {Observable, Observer} from 'rxjs'; +import {User} from '../../class/User'; +import {GlobalUserService} from '../../services/global-user.service'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthGuard implements CanActivate { + + constructor(private userService: GlobalUserService, private router: Router) { + // this.userService.refreshUserInfo(); + } + + userInfo: User; + visitCount: number = 0; // 记录一共走过几次canActivate + private path: string; + private readonly loginPath: string = '/user/login'; + private observable: Observable; + + canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { + this.path = state.url.indexOf('?') > 0 ? state.url.substr(0, state.url.indexOf('?')) : state.url; + this.visitCount++; + this.observable = new Observable(observer => { + if (!this.userInfo) { + this.watchUserInfo(observer); + } else { + this.checkPath(observer); + } + }); + return this.observable; + } + + watchUserInfo(observer: Observer) { + this.userService.watchUserInfo({ + complete: null, + error: (err) => { + // 请求重复 + if (err.code !== -1) { + observer.next(false); + this.router.navigateByUrl(this.loginPath); + } + }, + next: data => { + this.userInfo = data.result; + this.checkPath(observer); + } + }) + } + + + checkPath(observer: Observer) { + switch (this.path) { + case '/admin/article': + case '/admin/link': + case '/admin/tag': + case '/admin/update': + case '/admin/user': + case '/admin/visitor': + if (this.userInfo.role !== 'admin') { + observer.next(false) + if (this.visitCount === 1) this.router.navigateByUrl('/admin') + return; + } + } + observer.next(true); + } + +} diff --git a/index/src/app/view/article/article-routing.module.ts b/src/app/view/article/article-routing.module.ts similarity index 100% rename from index/src/app/view/article/article-routing.module.ts rename to src/app/view/article/article-routing.module.ts diff --git a/index/src/app/view/article/article.component.html b/src/app/view/article/article.component.html similarity index 100% rename from index/src/app/view/article/article.component.html rename to src/app/view/article/article.component.html diff --git a/index/src/app/view/article/article.component.less b/src/app/view/article/article.component.less similarity index 100% rename from index/src/app/view/article/article.component.less rename to src/app/view/article/article.component.less diff --git a/index/src/app/view/article/article.component.spec.ts b/src/app/view/article/article.component.spec.ts similarity index 100% rename from index/src/app/view/article/article.component.spec.ts rename to src/app/view/article/article.component.spec.ts diff --git a/index/src/app/view/article/article.component.ts b/src/app/view/article/article.component.ts similarity index 89% rename from index/src/app/view/article/article.component.ts rename to src/app/view/article/article.component.ts index 161b426..ae89852 100644 --- a/index/src/app/view/article/article.component.ts +++ b/src/app/view/article/article.component.ts @@ -7,6 +7,7 @@ import {User} from '../../class/User'; import {CommentReq} from '../../class/Comment'; import {PageList} from '../../class/HttpReqAndResp'; import {Comment} from '../../class/Comment'; +import {GlobalUserService} from '../../services/global-user.service'; declare var editormd; declare var $; @@ -20,6 +21,7 @@ export class ArticleComponent implements OnInit { constructor(private activatedRoute: ActivatedRoute, private apiService: ApiService, + private userService: GlobalUserService, private titleService: Title, private router: Router) { this.articleId = +activatedRoute.snapshot.paramMap.get('id'); @@ -41,10 +43,13 @@ export class ArticleComponent implements OnInit { ngOnInit() { this.toArticle(this.articleId); - this.apiService.userInfo().subscribe(data => { - this.user = data.result; - this.avatarImgUrl = data.result.avatarImgUrl; - }, error => { + this.userService.watchUserInfo({ + complete: () => null, + error: (err) => null, + next: data => { + this.user = data.result; + if (data.result) this.avatarImgUrl = data.result.avatarImgUrl; + } }); this.comment = new CommentReq(true); } diff --git a/index/src/app/view/article/article.module.ts b/src/app/view/article/article.module.ts similarity index 100% rename from index/src/app/view/article/article.module.ts rename to src/app/view/article/article.module.ts diff --git a/index/src/app/view/category/category-routing.module.ts b/src/app/view/category/category-routing.module.ts similarity index 100% rename from index/src/app/view/category/category-routing.module.ts rename to src/app/view/category/category-routing.module.ts diff --git a/index/src/app/view/category/category.component.html b/src/app/view/category/category.component.html similarity index 100% rename from index/src/app/view/category/category.component.html rename to src/app/view/category/category.component.html diff --git a/index/src/app/view/category/category.component.less b/src/app/view/category/category.component.less similarity index 100% rename from index/src/app/view/category/category.component.less rename to src/app/view/category/category.component.less diff --git a/index/src/app/view/category/category.component.spec.ts b/src/app/view/category/category.component.spec.ts similarity index 100% rename from index/src/app/view/category/category.component.spec.ts rename to src/app/view/category/category.component.spec.ts diff --git a/index/src/app/view/category/category.component.ts b/src/app/view/category/category.component.ts similarity index 100% rename from index/src/app/view/category/category.component.ts rename to src/app/view/category/category.component.ts diff --git a/index/src/app/view/category/category.module.ts b/src/app/view/category/category.module.ts similarity index 100% rename from index/src/app/view/category/category.module.ts rename to src/app/view/category/category.module.ts diff --git a/index/src/app/view/email-verify/email-verify.component.html b/src/app/view/email-verify/email-verify.component.html similarity index 100% rename from index/src/app/view/email-verify/email-verify.component.html rename to src/app/view/email-verify/email-verify.component.html diff --git a/index/src/app/view/email-verify/email-verify.component.less b/src/app/view/email-verify/email-verify.component.less similarity index 100% rename from index/src/app/view/email-verify/email-verify.component.less rename to src/app/view/email-verify/email-verify.component.less diff --git a/index/src/app/view/email-verify/email-verify.component.spec.ts b/src/app/view/email-verify/email-verify.component.spec.ts similarity index 100% rename from index/src/app/view/email-verify/email-verify.component.spec.ts rename to src/app/view/email-verify/email-verify.component.spec.ts diff --git a/index/src/app/view/email-verify/email-verify.component.ts b/src/app/view/email-verify/email-verify.component.ts similarity index 100% rename from index/src/app/view/email-verify/email-verify.component.ts rename to src/app/view/email-verify/email-verify.component.ts diff --git a/index/src/app/view/email-verify/email-verify.module.ts b/src/app/view/email-verify/email-verify.module.ts similarity index 100% rename from index/src/app/view/email-verify/email-verify.module.ts rename to src/app/view/email-verify/email-verify.module.ts diff --git a/index/src/app/view/index/components/article-detail-card/article-detail-card.component.html b/src/app/view/index/components/article-detail-card/article-detail-card.component.html similarity index 100% rename from index/src/app/view/index/components/article-detail-card/article-detail-card.component.html rename to src/app/view/index/components/article-detail-card/article-detail-card.component.html diff --git a/index/src/app/view/index/components/article-detail-card/article-detail-card.component.less b/src/app/view/index/components/article-detail-card/article-detail-card.component.less similarity index 100% rename from index/src/app/view/index/components/article-detail-card/article-detail-card.component.less rename to src/app/view/index/components/article-detail-card/article-detail-card.component.less diff --git a/index/src/app/view/index/components/article-detail-card/article-detail-card.component.spec.ts b/src/app/view/index/components/article-detail-card/article-detail-card.component.spec.ts similarity index 100% rename from index/src/app/view/index/components/article-detail-card/article-detail-card.component.spec.ts rename to src/app/view/index/components/article-detail-card/article-detail-card.component.spec.ts diff --git a/index/src/app/view/index/components/article-detail-card/article-detail-card.component.ts b/src/app/view/index/components/article-detail-card/article-detail-card.component.ts similarity index 100% rename from index/src/app/view/index/components/article-detail-card/article-detail-card.component.ts rename to src/app/view/index/components/article-detail-card/article-detail-card.component.ts diff --git a/index/src/app/view/index/components/card-detail/card-detail.component.html b/src/app/view/index/components/card-detail/card-detail.component.html similarity index 100% rename from index/src/app/view/index/components/card-detail/card-detail.component.html rename to src/app/view/index/components/card-detail/card-detail.component.html diff --git a/index/src/app/view/leave-msg/leave-msg.component.less b/src/app/view/index/components/card-detail/card-detail.component.less similarity index 100% rename from index/src/app/view/leave-msg/leave-msg.component.less rename to src/app/view/index/components/card-detail/card-detail.component.less diff --git a/index/src/app/view/index/components/card-detail/card-detail.component.spec.ts b/src/app/view/index/components/card-detail/card-detail.component.spec.ts similarity index 100% rename from index/src/app/view/index/components/card-detail/card-detail.component.spec.ts rename to src/app/view/index/components/card-detail/card-detail.component.spec.ts diff --git a/index/src/app/view/index/components/card-detail/card-detail.component.ts b/src/app/view/index/components/card-detail/card-detail.component.ts similarity index 100% rename from index/src/app/view/index/components/card-detail/card-detail.component.ts rename to src/app/view/index/components/card-detail/card-detail.component.ts diff --git a/index/src/app/view/index/components/tag-tag/tag-tag.component.html b/src/app/view/index/components/tag-tag/tag-tag.component.html similarity index 100% rename from index/src/app/view/index/components/tag-tag/tag-tag.component.html rename to src/app/view/index/components/tag-tag/tag-tag.component.html diff --git a/index/src/app/view/index/components/tag-tag/tag-tag.component.less b/src/app/view/index/components/tag-tag/tag-tag.component.less similarity index 100% rename from index/src/app/view/index/components/tag-tag/tag-tag.component.less rename to src/app/view/index/components/tag-tag/tag-tag.component.less diff --git a/index/src/app/view/index/components/tag-tag/tag-tag.component.spec.ts b/src/app/view/index/components/tag-tag/tag-tag.component.spec.ts similarity index 100% rename from index/src/app/view/index/components/tag-tag/tag-tag.component.spec.ts rename to src/app/view/index/components/tag-tag/tag-tag.component.spec.ts diff --git a/index/src/app/view/index/components/tag-tag/tag-tag.component.ts b/src/app/view/index/components/tag-tag/tag-tag.component.ts similarity index 100% rename from index/src/app/view/index/components/tag-tag/tag-tag.component.ts rename to src/app/view/index/components/tag-tag/tag-tag.component.ts diff --git a/index/src/app/view/index/index-routing.module.ts b/src/app/view/index/index-routing.module.ts similarity index 100% rename from index/src/app/view/index/index-routing.module.ts rename to src/app/view/index/index-routing.module.ts diff --git a/index/src/app/view/index/index.component.html b/src/app/view/index/index.component.html similarity index 100% rename from index/src/app/view/index/index.component.html rename to src/app/view/index/index.component.html diff --git a/index/src/app/view/index/index.component.less b/src/app/view/index/index.component.less similarity index 100% rename from index/src/app/view/index/index.component.less rename to src/app/view/index/index.component.less diff --git a/index/src/app/view/index/index.component.spec.ts b/src/app/view/index/index.component.spec.ts similarity index 100% rename from index/src/app/view/index/index.component.spec.ts rename to src/app/view/index/index.component.spec.ts diff --git a/index/src/app/view/index/index.component.ts b/src/app/view/index/index.component.ts similarity index 100% rename from index/src/app/view/index/index.component.ts rename to src/app/view/index/index.component.ts diff --git a/index/src/app/view/index/index.module.ts b/src/app/view/index/index.module.ts similarity index 100% rename from index/src/app/view/index/index.module.ts rename to src/app/view/index/index.module.ts diff --git a/index/src/app/view/leave-msg/leave-msg-routing.module.ts b/src/app/view/leave-msg/leave-msg-routing.module.ts similarity index 100% rename from index/src/app/view/leave-msg/leave-msg-routing.module.ts rename to src/app/view/leave-msg/leave-msg-routing.module.ts diff --git a/index/src/app/view/leave-msg/leave-msg.component.html b/src/app/view/leave-msg/leave-msg.component.html similarity index 100% rename from index/src/app/view/leave-msg/leave-msg.component.html rename to src/app/view/leave-msg/leave-msg.component.html diff --git a/index/src/assets/.gitkeep b/src/app/view/leave-msg/leave-msg.component.less similarity index 100% rename from index/src/assets/.gitkeep rename to src/app/view/leave-msg/leave-msg.component.less diff --git a/index/src/app/view/leave-msg/leave-msg.component.spec.ts b/src/app/view/leave-msg/leave-msg.component.spec.ts similarity index 100% rename from index/src/app/view/leave-msg/leave-msg.component.spec.ts rename to src/app/view/leave-msg/leave-msg.component.spec.ts diff --git a/index/src/app/view/leave-msg/leave-msg.component.ts b/src/app/view/leave-msg/leave-msg.component.ts similarity index 100% rename from index/src/app/view/leave-msg/leave-msg.component.ts rename to src/app/view/leave-msg/leave-msg.component.ts diff --git a/index/src/app/view/leave-msg/leave-msg.module.ts b/src/app/view/leave-msg/leave-msg.module.ts similarity index 100% rename from index/src/app/view/leave-msg/leave-msg.module.ts rename to src/app/view/leave-msg/leave-msg.module.ts diff --git a/index/src/app/view/link/link-routing.module.ts b/src/app/view/link/link-routing.module.ts similarity index 100% rename from index/src/app/view/link/link-routing.module.ts rename to src/app/view/link/link-routing.module.ts diff --git a/index/src/app/view/link/link.component.html b/src/app/view/link/link.component.html similarity index 100% rename from index/src/app/view/link/link.component.html rename to src/app/view/link/link.component.html diff --git a/index/src/app/view/link/link.component.less b/src/app/view/link/link.component.less similarity index 100% rename from index/src/app/view/link/link.component.less rename to src/app/view/link/link.component.less diff --git a/index/src/app/view/link/link.component.spec.ts b/src/app/view/link/link.component.spec.ts similarity index 100% rename from index/src/app/view/link/link.component.spec.ts rename to src/app/view/link/link.component.spec.ts diff --git a/index/src/app/view/link/link.component.ts b/src/app/view/link/link.component.ts similarity index 100% rename from index/src/app/view/link/link.component.ts rename to src/app/view/link/link.component.ts diff --git a/index/src/app/view/link/link.module.ts b/src/app/view/link/link.module.ts similarity index 100% rename from index/src/app/view/link/link.module.ts rename to src/app/view/link/link.module.ts diff --git a/index/src/app/view/login-registration/components/login/login.component.html b/src/app/view/login-registration/components/login/login.component.html similarity index 100% rename from index/src/app/view/login-registration/components/login/login.component.html rename to src/app/view/login-registration/components/login/login.component.html diff --git a/index/src/app/view/login-registration/components/login/login.component.less b/src/app/view/login-registration/components/login/login.component.less similarity index 100% rename from index/src/app/view/login-registration/components/login/login.component.less rename to src/app/view/login-registration/components/login/login.component.less diff --git a/index/src/app/view/login-registration/components/login/login.component.spec.ts b/src/app/view/login-registration/components/login/login.component.spec.ts similarity index 100% rename from index/src/app/view/login-registration/components/login/login.component.spec.ts rename to src/app/view/login-registration/components/login/login.component.spec.ts diff --git a/index/src/app/view/login-registration/components/login/login.component.ts b/src/app/view/login-registration/components/login/login.component.ts similarity index 69% rename from index/src/app/view/login-registration/components/login/login.component.ts rename to src/app/view/login-registration/components/login/login.component.ts index c323aa7..5336e13 100644 --- a/index/src/app/view/login-registration/components/login/login.component.ts +++ b/src/app/view/login-registration/components/login/login.component.ts @@ -1,11 +1,10 @@ import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core'; import {NzMessageService} from 'ng-zorro-antd'; -import {ApiService} from '../../../../api/api.service'; import {LoginReq} from '../../../../class/User'; -import {LocalStorageService} from '../../../../services/local-storage.service'; import {ActivatedRoute, Router} from '@angular/router'; import {LoginRegistrationService} from '../../service/login-registration.service'; import {Title} from '@angular/platform-browser'; +import {GlobalUserService} from '../../../../services/global-user.service'; @Component({ selector: 'c-login', @@ -15,7 +14,7 @@ import {Title} from '@angular/platform-browser'; export class LoginComponent implements OnInit { constructor(private nzMessageService: NzMessageService, - private apiService: ApiService, + private userService: GlobalUserService, private activatedRoute: ActivatedRoute, private router: Router, private loginRegistrationService: LoginRegistrationService, @@ -54,20 +53,24 @@ export class LoginComponent implements OnInit { return; } - this.apiService.login(this.loginReq).subscribe( - data => { - this.submitting = false; - this.nzMessageService.success('登录成功,欢迎你' + data.result.displayName); - this.loginStatus.emit(true); - if (this.url) { - this.router.navigateByUrl(this.url); - } else { - window.location.href = '/admin/'; + this.userService.login(this.loginReq, { + complete: () => null, + error: (err) => { + this.nzMessageService.error(err.msg); + this.submitting = false; + this.loginStatus.emit(false); + }, + next: data => { + this.submitting = false; + this.nzMessageService.success('登录成功,欢迎你' + data.result.displayName); + this.loginStatus.emit(true); + if (this.url) { + this.router.navigateByUrl(this.url); + } else { + // window.location.href = '/admin/'; + this.router.navigateByUrl('/admin') + } } - }, error => { - this.nzMessageService.error(error.msg); - this.submitting = false; - this.loginStatus.emit(false); } ); } diff --git a/index/src/app/view/login-registration/components/registration/registration.component.html b/src/app/view/login-registration/components/registration/registration.component.html similarity index 100% rename from index/src/app/view/login-registration/components/registration/registration.component.html rename to src/app/view/login-registration/components/registration/registration.component.html diff --git a/index/src/app/view/login-registration/components/registration/registration.component.less b/src/app/view/login-registration/components/registration/registration.component.less similarity index 100% rename from index/src/app/view/login-registration/components/registration/registration.component.less rename to src/app/view/login-registration/components/registration/registration.component.less diff --git a/index/src/app/view/login-registration/components/registration/registration.component.spec.ts b/src/app/view/login-registration/components/registration/registration.component.spec.ts similarity index 100% rename from index/src/app/view/login-registration/components/registration/registration.component.spec.ts rename to src/app/view/login-registration/components/registration/registration.component.spec.ts diff --git a/index/src/app/view/login-registration/components/registration/registration.component.ts b/src/app/view/login-registration/components/registration/registration.component.ts similarity index 100% rename from index/src/app/view/login-registration/components/registration/registration.component.ts rename to src/app/view/login-registration/components/registration/registration.component.ts diff --git a/index/src/app/view/login-registration/login-registration-routing.module.ts b/src/app/view/login-registration/login-registration-routing.module.ts similarity index 100% rename from index/src/app/view/login-registration/login-registration-routing.module.ts rename to src/app/view/login-registration/login-registration-routing.module.ts diff --git a/index/src/app/view/login-registration/login-registration.component.html b/src/app/view/login-registration/login-registration.component.html similarity index 100% rename from index/src/app/view/login-registration/login-registration.component.html rename to src/app/view/login-registration/login-registration.component.html diff --git a/index/src/app/view/login-registration/login-registration.component.less b/src/app/view/login-registration/login-registration.component.less similarity index 100% rename from index/src/app/view/login-registration/login-registration.component.less rename to src/app/view/login-registration/login-registration.component.less diff --git a/index/src/app/view/login-registration/login-registration.component.spec.ts b/src/app/view/login-registration/login-registration.component.spec.ts similarity index 100% rename from index/src/app/view/login-registration/login-registration.component.spec.ts rename to src/app/view/login-registration/login-registration.component.spec.ts diff --git a/index/src/app/view/login-registration/login-registration.component.ts b/src/app/view/login-registration/login-registration.component.ts similarity index 100% rename from index/src/app/view/login-registration/login-registration.component.ts rename to src/app/view/login-registration/login-registration.component.ts diff --git a/index/src/app/view/login-registration/login-registration.module.ts b/src/app/view/login-registration/login-registration.module.ts similarity index 100% rename from index/src/app/view/login-registration/login-registration.module.ts rename to src/app/view/login-registration/login-registration.module.ts diff --git a/index/src/app/view/login-registration/service/login-registration.service.spec.ts b/src/app/view/login-registration/service/login-registration.service.spec.ts similarity index 100% rename from index/src/app/view/login-registration/service/login-registration.service.spec.ts rename to src/app/view/login-registration/service/login-registration.service.spec.ts diff --git a/index/src/app/view/login-registration/service/login-registration.service.ts b/src/app/view/login-registration/service/login-registration.service.ts similarity index 100% rename from index/src/app/view/login-registration/service/login-registration.service.ts rename to src/app/view/login-registration/service/login-registration.service.ts diff --git a/index/src/app/view/page-not-found/page-not-found.component.html b/src/app/view/page-not-found/page-not-found.component.html similarity index 100% rename from index/src/app/view/page-not-found/page-not-found.component.html rename to src/app/view/page-not-found/page-not-found.component.html diff --git a/index/src/app/view/page-not-found/page-not-found.component.less b/src/app/view/page-not-found/page-not-found.component.less similarity index 100% rename from index/src/app/view/page-not-found/page-not-found.component.less rename to src/app/view/page-not-found/page-not-found.component.less diff --git a/index/src/app/view/page-not-found/page-not-found.component.spec.ts b/src/app/view/page-not-found/page-not-found.component.spec.ts similarity index 100% rename from index/src/app/view/page-not-found/page-not-found.component.spec.ts rename to src/app/view/page-not-found/page-not-found.component.spec.ts diff --git a/index/src/app/view/page-not-found/page-not-found.component.ts b/src/app/view/page-not-found/page-not-found.component.ts similarity index 100% rename from index/src/app/view/page-not-found/page-not-found.component.ts rename to src/app/view/page-not-found/page-not-found.component.ts diff --git a/index/src/app/view/page-not-found/page-not-found.module.ts b/src/app/view/page-not-found/page-not-found.module.ts similarity index 100% rename from index/src/app/view/page-not-found/page-not-found.module.ts rename to src/app/view/page-not-found/page-not-found.module.ts diff --git a/index/src/app/view/reset-pwd/reset-pwd.component.html b/src/app/view/reset-pwd/reset-pwd.component.html similarity index 100% rename from index/src/app/view/reset-pwd/reset-pwd.component.html rename to src/app/view/reset-pwd/reset-pwd.component.html diff --git a/index/src/app/view/reset-pwd/reset-pwd.component.less b/src/app/view/reset-pwd/reset-pwd.component.less similarity index 100% rename from index/src/app/view/reset-pwd/reset-pwd.component.less rename to src/app/view/reset-pwd/reset-pwd.component.less diff --git a/index/src/app/view/reset-pwd/reset-pwd.component.spec.ts b/src/app/view/reset-pwd/reset-pwd.component.spec.ts similarity index 100% rename from index/src/app/view/reset-pwd/reset-pwd.component.spec.ts rename to src/app/view/reset-pwd/reset-pwd.component.spec.ts diff --git a/index/src/app/view/reset-pwd/reset-pwd.component.ts b/src/app/view/reset-pwd/reset-pwd.component.ts similarity index 100% rename from index/src/app/view/reset-pwd/reset-pwd.component.ts rename to src/app/view/reset-pwd/reset-pwd.component.ts diff --git a/index/src/app/view/reset-pwd/reset-pwd.module.ts b/src/app/view/reset-pwd/reset-pwd.module.ts similarity index 100% rename from index/src/app/view/reset-pwd/reset-pwd.module.ts rename to src/app/view/reset-pwd/reset-pwd.module.ts diff --git a/index/src/app/view/tag/tag-routing.module.ts b/src/app/view/tag/tag-routing.module.ts similarity index 100% rename from index/src/app/view/tag/tag-routing.module.ts rename to src/app/view/tag/tag-routing.module.ts diff --git a/index/src/app/view/tag/tag.component.html b/src/app/view/tag/tag.component.html similarity index 100% rename from index/src/app/view/tag/tag.component.html rename to src/app/view/tag/tag.component.html diff --git a/index/src/app/view/tag/tag.component.less b/src/app/view/tag/tag.component.less similarity index 100% rename from index/src/app/view/tag/tag.component.less rename to src/app/view/tag/tag.component.less diff --git a/index/src/app/view/tag/tag.component.spec.ts b/src/app/view/tag/tag.component.spec.ts similarity index 100% rename from index/src/app/view/tag/tag.component.spec.ts rename to src/app/view/tag/tag.component.spec.ts diff --git a/index/src/app/view/tag/tag.component.ts b/src/app/view/tag/tag.component.ts similarity index 100% rename from index/src/app/view/tag/tag.component.ts rename to src/app/view/tag/tag.component.ts diff --git a/index/src/app/view/tag/tag.module.ts b/src/app/view/tag/tag.module.ts similarity index 100% rename from index/src/app/view/tag/tag.module.ts rename to src/app/view/tag/tag.module.ts diff --git a/index/src/app/view/update/update.component.html b/src/app/view/update/update.component.html similarity index 100% rename from index/src/app/view/update/update.component.html rename to src/app/view/update/update.component.html diff --git a/index/src/app/view/update/update.component.less b/src/app/view/update/update.component.less similarity index 100% rename from index/src/app/view/update/update.component.less rename to src/app/view/update/update.component.less diff --git a/index/src/app/view/update/update.component.spec.ts b/src/app/view/update/update.component.spec.ts similarity index 100% rename from index/src/app/view/update/update.component.spec.ts rename to src/app/view/update/update.component.spec.ts diff --git a/index/src/app/view/update/update.component.ts b/src/app/view/update/update.component.ts similarity index 100% rename from index/src/app/view/update/update.component.ts rename to src/app/view/update/update.component.ts diff --git a/index/src/app/view/update/update.module.ts b/src/app/view/update/update.module.ts similarity index 100% rename from index/src/app/view/update/update.module.ts rename to src/app/view/update/update.module.ts diff --git a/index/src/app/view/write/components/publish-form/publish-form.component.html b/src/app/view/write/components/publish-form/publish-form.component.html similarity index 100% rename from index/src/app/view/write/components/publish-form/publish-form.component.html rename to src/app/view/write/components/publish-form/publish-form.component.html diff --git a/index/src/app/view/write/components/publish-form/publish-form.component.less b/src/app/view/write/components/publish-form/publish-form.component.less similarity index 100% rename from index/src/app/view/write/components/publish-form/publish-form.component.less rename to src/app/view/write/components/publish-form/publish-form.component.less diff --git a/index/src/app/view/write/components/publish-form/publish-form.component.spec.ts b/src/app/view/write/components/publish-form/publish-form.component.spec.ts similarity index 100% rename from index/src/app/view/write/components/publish-form/publish-form.component.spec.ts rename to src/app/view/write/components/publish-form/publish-form.component.spec.ts diff --git a/index/src/app/view/write/components/publish-form/publish-form.component.ts b/src/app/view/write/components/publish-form/publish-form.component.ts similarity index 100% rename from index/src/app/view/write/components/publish-form/publish-form.component.ts rename to src/app/view/write/components/publish-form/publish-form.component.ts diff --git a/index/src/app/view/write/editor-md/editor-md.directive.spec.ts b/src/app/view/write/editor-md/editor-md.directive.spec.ts similarity index 100% rename from index/src/app/view/write/editor-md/editor-md.directive.spec.ts rename to src/app/view/write/editor-md/editor-md.directive.spec.ts diff --git a/index/src/app/view/write/editor-md/editor-md.directive.ts b/src/app/view/write/editor-md/editor-md.directive.ts similarity index 100% rename from index/src/app/view/write/editor-md/editor-md.directive.ts rename to src/app/view/write/editor-md/editor-md.directive.ts diff --git a/index/src/app/view/write/write.component.html b/src/app/view/write/write.component.html similarity index 100% rename from index/src/app/view/write/write.component.html rename to src/app/view/write/write.component.html diff --git a/index/src/app/view/write/write.component.less b/src/app/view/write/write.component.less similarity index 100% rename from index/src/app/view/write/write.component.less rename to src/app/view/write/write.component.less diff --git a/index/src/app/view/write/write.component.spec.ts b/src/app/view/write/write.component.spec.ts similarity index 100% rename from index/src/app/view/write/write.component.spec.ts rename to src/app/view/write/write.component.spec.ts diff --git a/index/src/app/view/write/write.component.ts b/src/app/view/write/write.component.ts similarity index 90% rename from index/src/app/view/write/write.component.ts rename to src/app/view/write/write.component.ts index bbe109c..716a3bc 100644 --- a/index/src/app/view/write/write.component.ts +++ b/src/app/view/write/write.component.ts @@ -7,6 +7,7 @@ import {NzMessageService} from 'ng-zorro-antd'; import {User} from '../../class/User'; import {Tag} from '../../class/Tag'; import {Title} from '@angular/platform-browser'; +import {GlobalUserService} from '../../services/global-user.service'; @Component({ selector: 'view-write', @@ -18,6 +19,7 @@ export class WriteComponent implements OnInit { constructor(private router: Router, private activatedRoute: ActivatedRoute, private apiService: ApiService, + private userService: GlobalUserService, private message: NzMessageService, private titleService: Title) { this.titleService.setTitle('小海博客 | 创作'); @@ -37,6 +39,8 @@ export class WriteComponent implements OnInit { // 发布新文章时,文章相同会被拦回 此处判断一下 title: string; + private lastShowTime: number; + // 同步属性内容 syncModel(str): void { this.article.mdContent = str; @@ -54,17 +58,23 @@ export class WriteComponent implements OnInit { } this.setSuitableHeight(); // 用户权限判断 - this.apiService.userInfo().subscribe({ - next: data => { - this.userInfo = data.result; - if (data.result.role !== 'admin') { - this.message.info('你暂时无发布文章的权限,所写文章将暂存在本地'); + this.userService.watchUserInfo({ + complete: () => null, + error: (err) => { + if (!this.lastShowTime || Date.now() - this.lastShowTime > 1000) { + this.message.info('你暂时还没有登录,请点击右上角登录后开始创作'); + this.lastShowTime = Date.now(); } }, - error: e => { - this.message.info('你暂时还没有登录,请点击右上角登录后开始创作'); + next: data => { + this.userInfo = data.result; + if ((!data.result || data.result.role !== 'admin') + && (!this.lastShowTime || Date.now() - this.lastShowTime > 1000)) { + this.message.info('你暂时无发布文章的权限,所写文章将暂存在本地'); + } } - }); + }) + ; this.apiService.tagsNac().subscribe(data => { this.tagNacList = data.result; this.tagNacList.sort((a, b) => a.name.length - b.name.length); diff --git a/index/src/app/view/write/write.module.ts b/src/app/view/write/write.module.ts similarity index 100% rename from index/src/app/view/write/write.module.ts rename to src/app/view/write/write.module.ts diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/index/src/assets/editor/README.md b/src/assets/editor/README.md similarity index 100% rename from index/src/assets/editor/README.md rename to src/assets/editor/README.md diff --git a/index/src/assets/editor/css/editormd.css b/src/assets/editor/css/editormd.css similarity index 100% rename from index/src/assets/editor/css/editormd.css rename to src/assets/editor/css/editormd.css diff --git a/index/src/assets/editor/css/editormd.logo.css b/src/assets/editor/css/editormd.logo.css similarity index 100% rename from index/src/assets/editor/css/editormd.logo.css rename to src/assets/editor/css/editormd.logo.css diff --git a/index/src/assets/editor/css/editormd.logo.min.css b/src/assets/editor/css/editormd.logo.min.css similarity index 100% rename from index/src/assets/editor/css/editormd.logo.min.css rename to src/assets/editor/css/editormd.logo.min.css diff --git a/index/src/assets/editor/css/editormd.min.css b/src/assets/editor/css/editormd.min.css similarity index 100% rename from index/src/assets/editor/css/editormd.min.css rename to src/assets/editor/css/editormd.min.css diff --git a/index/src/assets/editor/css/editormd.preview.css b/src/assets/editor/css/editormd.preview.css similarity index 100% rename from index/src/assets/editor/css/editormd.preview.css rename to src/assets/editor/css/editormd.preview.css diff --git a/index/src/assets/editor/css/editormd.preview.min.css b/src/assets/editor/css/editormd.preview.min.css similarity index 100% rename from index/src/assets/editor/css/editormd.preview.min.css rename to src/assets/editor/css/editormd.preview.min.css diff --git a/index/src/assets/editor/editormd.js b/src/assets/editor/editormd.js similarity index 100% rename from index/src/assets/editor/editormd.js rename to src/assets/editor/editormd.js diff --git a/index/src/assets/editor/editormd.min.js b/src/assets/editor/editormd.min.js similarity index 100% rename from index/src/assets/editor/editormd.min.js rename to src/assets/editor/editormd.min.js diff --git a/index/src/assets/editor/fonts/FontAwesome.otf b/src/assets/editor/fonts/FontAwesome.otf similarity index 100% rename from index/src/assets/editor/fonts/FontAwesome.otf rename to src/assets/editor/fonts/FontAwesome.otf diff --git a/index/src/assets/editor/fonts/editormd-logo.eot b/src/assets/editor/fonts/editormd-logo.eot similarity index 100% rename from index/src/assets/editor/fonts/editormd-logo.eot rename to src/assets/editor/fonts/editormd-logo.eot diff --git a/index/src/assets/editor/fonts/editormd-logo.svg b/src/assets/editor/fonts/editormd-logo.svg similarity index 100% rename from index/src/assets/editor/fonts/editormd-logo.svg rename to src/assets/editor/fonts/editormd-logo.svg diff --git a/index/src/assets/editor/fonts/editormd-logo.ttf b/src/assets/editor/fonts/editormd-logo.ttf similarity index 100% rename from index/src/assets/editor/fonts/editormd-logo.ttf rename to src/assets/editor/fonts/editormd-logo.ttf diff --git a/index/src/assets/editor/fonts/editormd-logo.woff b/src/assets/editor/fonts/editormd-logo.woff similarity index 100% rename from index/src/assets/editor/fonts/editormd-logo.woff rename to src/assets/editor/fonts/editormd-logo.woff diff --git a/index/src/assets/editor/fonts/fontawesome-webfont.eot b/src/assets/editor/fonts/fontawesome-webfont.eot similarity index 100% rename from index/src/assets/editor/fonts/fontawesome-webfont.eot rename to src/assets/editor/fonts/fontawesome-webfont.eot diff --git a/index/src/assets/editor/fonts/fontawesome-webfont.svg b/src/assets/editor/fonts/fontawesome-webfont.svg similarity index 100% rename from index/src/assets/editor/fonts/fontawesome-webfont.svg rename to src/assets/editor/fonts/fontawesome-webfont.svg diff --git a/index/src/assets/editor/fonts/fontawesome-webfont.ttf b/src/assets/editor/fonts/fontawesome-webfont.ttf similarity index 100% rename from index/src/assets/editor/fonts/fontawesome-webfont.ttf rename to src/assets/editor/fonts/fontawesome-webfont.ttf diff --git a/index/src/assets/editor/fonts/fontawesome-webfont.woff b/src/assets/editor/fonts/fontawesome-webfont.woff similarity index 100% rename from index/src/assets/editor/fonts/fontawesome-webfont.woff rename to src/assets/editor/fonts/fontawesome-webfont.woff diff --git a/index/src/assets/editor/fonts/fontawesome-webfont.woff2 b/src/assets/editor/fonts/fontawesome-webfont.woff2 similarity index 100% rename from index/src/assets/editor/fonts/fontawesome-webfont.woff2 rename to src/assets/editor/fonts/fontawesome-webfont.woff2 diff --git a/index/src/assets/editor/images/loading.gif b/src/assets/editor/images/loading.gif similarity index 100% rename from index/src/assets/editor/images/loading.gif rename to src/assets/editor/images/loading.gif diff --git a/index/src/assets/editor/images/loading@2x.gif b/src/assets/editor/images/loading@2x.gif similarity index 100% rename from index/src/assets/editor/images/loading@2x.gif rename to src/assets/editor/images/loading@2x.gif diff --git a/index/src/assets/editor/images/loading@3x.gif b/src/assets/editor/images/loading@3x.gif similarity index 100% rename from index/src/assets/editor/images/loading@3x.gif rename to src/assets/editor/images/loading@3x.gif diff --git a/index/src/assets/editor/images/logos/editormd-favicon-16x16.ico b/src/assets/editor/images/logos/editormd-favicon-16x16.ico similarity index 100% rename from index/src/assets/editor/images/logos/editormd-favicon-16x16.ico rename to src/assets/editor/images/logos/editormd-favicon-16x16.ico diff --git a/index/src/assets/editor/images/logos/editormd-favicon-24x24.ico b/src/assets/editor/images/logos/editormd-favicon-24x24.ico similarity index 100% rename from index/src/assets/editor/images/logos/editormd-favicon-24x24.ico rename to src/assets/editor/images/logos/editormd-favicon-24x24.ico diff --git a/index/src/assets/editor/images/logos/editormd-favicon-32x32.ico b/src/assets/editor/images/logos/editormd-favicon-32x32.ico similarity index 100% rename from index/src/assets/editor/images/logos/editormd-favicon-32x32.ico rename to src/assets/editor/images/logos/editormd-favicon-32x32.ico diff --git a/index/src/assets/editor/images/logos/editormd-favicon-48x48.ico b/src/assets/editor/images/logos/editormd-favicon-48x48.ico similarity index 100% rename from index/src/assets/editor/images/logos/editormd-favicon-48x48.ico rename to src/assets/editor/images/logos/editormd-favicon-48x48.ico diff --git a/index/src/assets/editor/images/logos/editormd-favicon-64x64.ico b/src/assets/editor/images/logos/editormd-favicon-64x64.ico similarity index 100% rename from index/src/assets/editor/images/logos/editormd-favicon-64x64.ico rename to src/assets/editor/images/logos/editormd-favicon-64x64.ico diff --git a/index/src/assets/editor/images/logos/editormd-logo-114x114.png b/src/assets/editor/images/logos/editormd-logo-114x114.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-114x114.png rename to src/assets/editor/images/logos/editormd-logo-114x114.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-120x120.png b/src/assets/editor/images/logos/editormd-logo-120x120.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-120x120.png rename to src/assets/editor/images/logos/editormd-logo-120x120.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-144x144.png b/src/assets/editor/images/logos/editormd-logo-144x144.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-144x144.png rename to src/assets/editor/images/logos/editormd-logo-144x144.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-16x16.png b/src/assets/editor/images/logos/editormd-logo-16x16.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-16x16.png rename to src/assets/editor/images/logos/editormd-logo-16x16.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-180x180.png b/src/assets/editor/images/logos/editormd-logo-180x180.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-180x180.png rename to src/assets/editor/images/logos/editormd-logo-180x180.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-240x240.png b/src/assets/editor/images/logos/editormd-logo-240x240.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-240x240.png rename to src/assets/editor/images/logos/editormd-logo-240x240.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-24x24.png b/src/assets/editor/images/logos/editormd-logo-24x24.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-24x24.png rename to src/assets/editor/images/logos/editormd-logo-24x24.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-320x320.png b/src/assets/editor/images/logos/editormd-logo-320x320.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-320x320.png rename to src/assets/editor/images/logos/editormd-logo-320x320.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-32x32.png b/src/assets/editor/images/logos/editormd-logo-32x32.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-32x32.png rename to src/assets/editor/images/logos/editormd-logo-32x32.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-48x48.png b/src/assets/editor/images/logos/editormd-logo-48x48.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-48x48.png rename to src/assets/editor/images/logos/editormd-logo-48x48.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-57x57.png b/src/assets/editor/images/logos/editormd-logo-57x57.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-57x57.png rename to src/assets/editor/images/logos/editormd-logo-57x57.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-64x64.png b/src/assets/editor/images/logos/editormd-logo-64x64.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-64x64.png rename to src/assets/editor/images/logos/editormd-logo-64x64.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-72x72.png b/src/assets/editor/images/logos/editormd-logo-72x72.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-72x72.png rename to src/assets/editor/images/logos/editormd-logo-72x72.png diff --git a/index/src/assets/editor/images/logos/editormd-logo-96x96.png b/src/assets/editor/images/logos/editormd-logo-96x96.png similarity index 100% rename from index/src/assets/editor/images/logos/editormd-logo-96x96.png rename to src/assets/editor/images/logos/editormd-logo-96x96.png diff --git a/index/src/assets/editor/images/logos/vi.png b/src/assets/editor/images/logos/vi.png similarity index 100% rename from index/src/assets/editor/images/logos/vi.png rename to src/assets/editor/images/logos/vi.png diff --git a/index/src/assets/editor/lib/codemirror/AUTHORS b/src/assets/editor/lib/codemirror/AUTHORS similarity index 100% rename from index/src/assets/editor/lib/codemirror/AUTHORS rename to src/assets/editor/lib/codemirror/AUTHORS diff --git a/index/src/assets/editor/lib/codemirror/LICENSE b/src/assets/editor/lib/codemirror/LICENSE similarity index 100% rename from index/src/assets/editor/lib/codemirror/LICENSE rename to src/assets/editor/lib/codemirror/LICENSE diff --git a/index/src/assets/editor/lib/codemirror/README.md b/src/assets/editor/lib/codemirror/README.md similarity index 100% rename from index/src/assets/editor/lib/codemirror/README.md rename to src/assets/editor/lib/codemirror/README.md diff --git a/index/src/assets/editor/lib/codemirror/addon/comment/comment.js b/src/assets/editor/lib/codemirror/addon/comment/comment.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/comment/comment.js rename to src/assets/editor/lib/codemirror/addon/comment/comment.js diff --git a/index/src/assets/editor/lib/codemirror/addon/comment/continuecomment.js b/src/assets/editor/lib/codemirror/addon/comment/continuecomment.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/comment/continuecomment.js rename to src/assets/editor/lib/codemirror/addon/comment/continuecomment.js diff --git a/index/src/assets/editor/lib/codemirror/addon/dialog/dialog.css b/src/assets/editor/lib/codemirror/addon/dialog/dialog.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/dialog/dialog.css rename to src/assets/editor/lib/codemirror/addon/dialog/dialog.css diff --git a/index/src/assets/editor/lib/codemirror/addon/dialog/dialog.js b/src/assets/editor/lib/codemirror/addon/dialog/dialog.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/dialog/dialog.js rename to src/assets/editor/lib/codemirror/addon/dialog/dialog.js diff --git a/index/src/assets/editor/lib/codemirror/addon/display/fullscreen.css b/src/assets/editor/lib/codemirror/addon/display/fullscreen.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/display/fullscreen.css rename to src/assets/editor/lib/codemirror/addon/display/fullscreen.css diff --git a/index/src/assets/editor/lib/codemirror/addon/display/fullscreen.js b/src/assets/editor/lib/codemirror/addon/display/fullscreen.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/display/fullscreen.js rename to src/assets/editor/lib/codemirror/addon/display/fullscreen.js diff --git a/index/src/assets/editor/lib/codemirror/addon/display/panel.js b/src/assets/editor/lib/codemirror/addon/display/panel.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/display/panel.js rename to src/assets/editor/lib/codemirror/addon/display/panel.js diff --git a/index/src/assets/editor/lib/codemirror/addon/display/placeholder.js b/src/assets/editor/lib/codemirror/addon/display/placeholder.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/display/placeholder.js rename to src/assets/editor/lib/codemirror/addon/display/placeholder.js diff --git a/index/src/assets/editor/lib/codemirror/addon/display/rulers.js b/src/assets/editor/lib/codemirror/addon/display/rulers.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/display/rulers.js rename to src/assets/editor/lib/codemirror/addon/display/rulers.js diff --git a/index/src/assets/editor/lib/codemirror/addon/edit/closebrackets.js b/src/assets/editor/lib/codemirror/addon/edit/closebrackets.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/edit/closebrackets.js rename to src/assets/editor/lib/codemirror/addon/edit/closebrackets.js diff --git a/index/src/assets/editor/lib/codemirror/addon/edit/closetag.js b/src/assets/editor/lib/codemirror/addon/edit/closetag.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/edit/closetag.js rename to src/assets/editor/lib/codemirror/addon/edit/closetag.js diff --git a/index/src/assets/editor/lib/codemirror/addon/edit/continuelist.js b/src/assets/editor/lib/codemirror/addon/edit/continuelist.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/edit/continuelist.js rename to src/assets/editor/lib/codemirror/addon/edit/continuelist.js diff --git a/index/src/assets/editor/lib/codemirror/addon/edit/matchbrackets.js b/src/assets/editor/lib/codemirror/addon/edit/matchbrackets.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/edit/matchbrackets.js rename to src/assets/editor/lib/codemirror/addon/edit/matchbrackets.js diff --git a/index/src/assets/editor/lib/codemirror/addon/edit/matchtags.js b/src/assets/editor/lib/codemirror/addon/edit/matchtags.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/edit/matchtags.js rename to src/assets/editor/lib/codemirror/addon/edit/matchtags.js diff --git a/index/src/assets/editor/lib/codemirror/addon/edit/trailingspace.js b/src/assets/editor/lib/codemirror/addon/edit/trailingspace.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/edit/trailingspace.js rename to src/assets/editor/lib/codemirror/addon/edit/trailingspace.js diff --git a/index/src/assets/editor/lib/codemirror/addon/fold/brace-fold.js b/src/assets/editor/lib/codemirror/addon/fold/brace-fold.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/fold/brace-fold.js rename to src/assets/editor/lib/codemirror/addon/fold/brace-fold.js diff --git a/index/src/assets/editor/lib/codemirror/addon/fold/comment-fold.js b/src/assets/editor/lib/codemirror/addon/fold/comment-fold.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/fold/comment-fold.js rename to src/assets/editor/lib/codemirror/addon/fold/comment-fold.js diff --git a/index/src/assets/editor/lib/codemirror/addon/fold/foldcode.js b/src/assets/editor/lib/codemirror/addon/fold/foldcode.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/fold/foldcode.js rename to src/assets/editor/lib/codemirror/addon/fold/foldcode.js diff --git a/index/src/assets/editor/lib/codemirror/addon/fold/foldgutter.css b/src/assets/editor/lib/codemirror/addon/fold/foldgutter.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/fold/foldgutter.css rename to src/assets/editor/lib/codemirror/addon/fold/foldgutter.css diff --git a/index/src/assets/editor/lib/codemirror/addon/fold/foldgutter.js b/src/assets/editor/lib/codemirror/addon/fold/foldgutter.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/fold/foldgutter.js rename to src/assets/editor/lib/codemirror/addon/fold/foldgutter.js diff --git a/index/src/assets/editor/lib/codemirror/addon/fold/indent-fold.js b/src/assets/editor/lib/codemirror/addon/fold/indent-fold.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/fold/indent-fold.js rename to src/assets/editor/lib/codemirror/addon/fold/indent-fold.js diff --git a/index/src/assets/editor/lib/codemirror/addon/fold/markdown-fold.js b/src/assets/editor/lib/codemirror/addon/fold/markdown-fold.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/fold/markdown-fold.js rename to src/assets/editor/lib/codemirror/addon/fold/markdown-fold.js diff --git a/index/src/assets/editor/lib/codemirror/addon/fold/xml-fold.js b/src/assets/editor/lib/codemirror/addon/fold/xml-fold.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/fold/xml-fold.js rename to src/assets/editor/lib/codemirror/addon/fold/xml-fold.js diff --git a/index/src/assets/editor/lib/codemirror/addon/hint/anyword-hint.js b/src/assets/editor/lib/codemirror/addon/hint/anyword-hint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/hint/anyword-hint.js rename to src/assets/editor/lib/codemirror/addon/hint/anyword-hint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/hint/css-hint.js b/src/assets/editor/lib/codemirror/addon/hint/css-hint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/hint/css-hint.js rename to src/assets/editor/lib/codemirror/addon/hint/css-hint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/hint/html-hint.js b/src/assets/editor/lib/codemirror/addon/hint/html-hint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/hint/html-hint.js rename to src/assets/editor/lib/codemirror/addon/hint/html-hint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/hint/javascript-hint.js b/src/assets/editor/lib/codemirror/addon/hint/javascript-hint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/hint/javascript-hint.js rename to src/assets/editor/lib/codemirror/addon/hint/javascript-hint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/hint/show-hint.css b/src/assets/editor/lib/codemirror/addon/hint/show-hint.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/hint/show-hint.css rename to src/assets/editor/lib/codemirror/addon/hint/show-hint.css diff --git a/index/src/assets/editor/lib/codemirror/addon/hint/show-hint.js b/src/assets/editor/lib/codemirror/addon/hint/show-hint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/hint/show-hint.js rename to src/assets/editor/lib/codemirror/addon/hint/show-hint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/hint/sql-hint.js b/src/assets/editor/lib/codemirror/addon/hint/sql-hint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/hint/sql-hint.js rename to src/assets/editor/lib/codemirror/addon/hint/sql-hint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/hint/xml-hint.js b/src/assets/editor/lib/codemirror/addon/hint/xml-hint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/hint/xml-hint.js rename to src/assets/editor/lib/codemirror/addon/hint/xml-hint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/lint/coffeescript-lint.js b/src/assets/editor/lib/codemirror/addon/lint/coffeescript-lint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/lint/coffeescript-lint.js rename to src/assets/editor/lib/codemirror/addon/lint/coffeescript-lint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/lint/css-lint.js b/src/assets/editor/lib/codemirror/addon/lint/css-lint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/lint/css-lint.js rename to src/assets/editor/lib/codemirror/addon/lint/css-lint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/lint/javascript-lint.js b/src/assets/editor/lib/codemirror/addon/lint/javascript-lint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/lint/javascript-lint.js rename to src/assets/editor/lib/codemirror/addon/lint/javascript-lint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/lint/json-lint.js b/src/assets/editor/lib/codemirror/addon/lint/json-lint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/lint/json-lint.js rename to src/assets/editor/lib/codemirror/addon/lint/json-lint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/lint/lint.css b/src/assets/editor/lib/codemirror/addon/lint/lint.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/lint/lint.css rename to src/assets/editor/lib/codemirror/addon/lint/lint.css diff --git a/index/src/assets/editor/lib/codemirror/addon/lint/lint.js b/src/assets/editor/lib/codemirror/addon/lint/lint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/lint/lint.js rename to src/assets/editor/lib/codemirror/addon/lint/lint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/lint/yaml-lint.js b/src/assets/editor/lib/codemirror/addon/lint/yaml-lint.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/lint/yaml-lint.js rename to src/assets/editor/lib/codemirror/addon/lint/yaml-lint.js diff --git a/index/src/assets/editor/lib/codemirror/addon/merge/merge.css b/src/assets/editor/lib/codemirror/addon/merge/merge.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/merge/merge.css rename to src/assets/editor/lib/codemirror/addon/merge/merge.css diff --git a/index/src/assets/editor/lib/codemirror/addon/merge/merge.js b/src/assets/editor/lib/codemirror/addon/merge/merge.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/merge/merge.js rename to src/assets/editor/lib/codemirror/addon/merge/merge.js diff --git a/index/src/assets/editor/lib/codemirror/addon/mode/loadmode.js b/src/assets/editor/lib/codemirror/addon/mode/loadmode.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/mode/loadmode.js rename to src/assets/editor/lib/codemirror/addon/mode/loadmode.js diff --git a/index/src/assets/editor/lib/codemirror/addon/mode/multiplex.js b/src/assets/editor/lib/codemirror/addon/mode/multiplex.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/mode/multiplex.js rename to src/assets/editor/lib/codemirror/addon/mode/multiplex.js diff --git a/index/src/assets/editor/lib/codemirror/addon/mode/multiplex_test.js b/src/assets/editor/lib/codemirror/addon/mode/multiplex_test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/mode/multiplex_test.js rename to src/assets/editor/lib/codemirror/addon/mode/multiplex_test.js diff --git a/index/src/assets/editor/lib/codemirror/addon/mode/overlay.js b/src/assets/editor/lib/codemirror/addon/mode/overlay.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/mode/overlay.js rename to src/assets/editor/lib/codemirror/addon/mode/overlay.js diff --git a/index/src/assets/editor/lib/codemirror/addon/mode/simple.js b/src/assets/editor/lib/codemirror/addon/mode/simple.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/mode/simple.js rename to src/assets/editor/lib/codemirror/addon/mode/simple.js diff --git a/index/src/assets/editor/lib/codemirror/addon/runmode/colorize.js b/src/assets/editor/lib/codemirror/addon/runmode/colorize.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/runmode/colorize.js rename to src/assets/editor/lib/codemirror/addon/runmode/colorize.js diff --git a/index/src/assets/editor/lib/codemirror/addon/runmode/runmode-standalone.js b/src/assets/editor/lib/codemirror/addon/runmode/runmode-standalone.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/runmode/runmode-standalone.js rename to src/assets/editor/lib/codemirror/addon/runmode/runmode-standalone.js diff --git a/index/src/assets/editor/lib/codemirror/addon/runmode/runmode.js b/src/assets/editor/lib/codemirror/addon/runmode/runmode.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/runmode/runmode.js rename to src/assets/editor/lib/codemirror/addon/runmode/runmode.js diff --git a/index/src/assets/editor/lib/codemirror/addon/runmode/runmode.node.js b/src/assets/editor/lib/codemirror/addon/runmode/runmode.node.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/runmode/runmode.node.js rename to src/assets/editor/lib/codemirror/addon/runmode/runmode.node.js diff --git a/index/src/assets/editor/lib/codemirror/addon/scroll/annotatescrollbar.js b/src/assets/editor/lib/codemirror/addon/scroll/annotatescrollbar.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/scroll/annotatescrollbar.js rename to src/assets/editor/lib/codemirror/addon/scroll/annotatescrollbar.js diff --git a/index/src/assets/editor/lib/codemirror/addon/scroll/scrollpastend.js b/src/assets/editor/lib/codemirror/addon/scroll/scrollpastend.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/scroll/scrollpastend.js rename to src/assets/editor/lib/codemirror/addon/scroll/scrollpastend.js diff --git a/index/src/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.css b/src/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.css rename to src/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.css diff --git a/index/src/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.js b/src/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.js rename to src/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.js diff --git a/index/src/assets/editor/lib/codemirror/addon/search/match-highlighter.js b/src/assets/editor/lib/codemirror/addon/search/match-highlighter.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/search/match-highlighter.js rename to src/assets/editor/lib/codemirror/addon/search/match-highlighter.js diff --git a/index/src/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.css b/src/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.css rename to src/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.css diff --git a/index/src/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.js b/src/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.js rename to src/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.js diff --git a/index/src/assets/editor/lib/codemirror/addon/search/search.js b/src/assets/editor/lib/codemirror/addon/search/search.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/search/search.js rename to src/assets/editor/lib/codemirror/addon/search/search.js diff --git a/index/src/assets/editor/lib/codemirror/addon/search/searchcursor.js b/src/assets/editor/lib/codemirror/addon/search/searchcursor.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/search/searchcursor.js rename to src/assets/editor/lib/codemirror/addon/search/searchcursor.js diff --git a/index/src/assets/editor/lib/codemirror/addon/selection/active-line.js b/src/assets/editor/lib/codemirror/addon/selection/active-line.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/selection/active-line.js rename to src/assets/editor/lib/codemirror/addon/selection/active-line.js diff --git a/index/src/assets/editor/lib/codemirror/addon/selection/mark-selection.js b/src/assets/editor/lib/codemirror/addon/selection/mark-selection.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/selection/mark-selection.js rename to src/assets/editor/lib/codemirror/addon/selection/mark-selection.js diff --git a/index/src/assets/editor/lib/codemirror/addon/selection/selection-pointer.js b/src/assets/editor/lib/codemirror/addon/selection/selection-pointer.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/selection/selection-pointer.js rename to src/assets/editor/lib/codemirror/addon/selection/selection-pointer.js diff --git a/index/src/assets/editor/lib/codemirror/addon/tern/tern.css b/src/assets/editor/lib/codemirror/addon/tern/tern.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/tern/tern.css rename to src/assets/editor/lib/codemirror/addon/tern/tern.css diff --git a/index/src/assets/editor/lib/codemirror/addon/tern/tern.js b/src/assets/editor/lib/codemirror/addon/tern/tern.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/tern/tern.js rename to src/assets/editor/lib/codemirror/addon/tern/tern.js diff --git a/index/src/assets/editor/lib/codemirror/addon/tern/worker.js b/src/assets/editor/lib/codemirror/addon/tern/worker.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/tern/worker.js rename to src/assets/editor/lib/codemirror/addon/tern/worker.js diff --git a/index/src/assets/editor/lib/codemirror/addon/wrap/hardwrap.js b/src/assets/editor/lib/codemirror/addon/wrap/hardwrap.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addon/wrap/hardwrap.js rename to src/assets/editor/lib/codemirror/addon/wrap/hardwrap.js diff --git a/index/src/assets/editor/lib/codemirror/addons.min.js b/src/assets/editor/lib/codemirror/addons.min.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/addons.min.js rename to src/assets/editor/lib/codemirror/addons.min.js diff --git a/index/src/assets/editor/lib/codemirror/bower.json b/src/assets/editor/lib/codemirror/bower.json similarity index 100% rename from index/src/assets/editor/lib/codemirror/bower.json rename to src/assets/editor/lib/codemirror/bower.json diff --git a/index/src/assets/editor/lib/codemirror/codemirror.min.css b/src/assets/editor/lib/codemirror/codemirror.min.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/codemirror.min.css rename to src/assets/editor/lib/codemirror/codemirror.min.css diff --git a/index/src/assets/editor/lib/codemirror/codemirror.min.js b/src/assets/editor/lib/codemirror/codemirror.min.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/codemirror.min.js rename to src/assets/editor/lib/codemirror/codemirror.min.js diff --git a/index/src/assets/editor/lib/codemirror/lib/codemirror.css b/src/assets/editor/lib/codemirror/lib/codemirror.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/lib/codemirror.css rename to src/assets/editor/lib/codemirror/lib/codemirror.css diff --git a/index/src/assets/editor/lib/codemirror/lib/codemirror.js b/src/assets/editor/lib/codemirror/lib/codemirror.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/lib/codemirror.js rename to src/assets/editor/lib/codemirror/lib/codemirror.js diff --git a/index/src/assets/editor/lib/codemirror/mode/apl/apl.js b/src/assets/editor/lib/codemirror/mode/apl/apl.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/apl/apl.js rename to src/assets/editor/lib/codemirror/mode/apl/apl.js diff --git a/index/src/assets/editor/lib/codemirror/mode/apl/index.html b/src/assets/editor/lib/codemirror/mode/apl/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/apl/index.html rename to src/assets/editor/lib/codemirror/mode/apl/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/asterisk/asterisk.js b/src/assets/editor/lib/codemirror/mode/asterisk/asterisk.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/asterisk/asterisk.js rename to src/assets/editor/lib/codemirror/mode/asterisk/asterisk.js diff --git a/index/src/assets/editor/lib/codemirror/mode/asterisk/index.html b/src/assets/editor/lib/codemirror/mode/asterisk/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/asterisk/index.html rename to src/assets/editor/lib/codemirror/mode/asterisk/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/clike/clike.js b/src/assets/editor/lib/codemirror/mode/clike/clike.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/clike/clike.js rename to src/assets/editor/lib/codemirror/mode/clike/clike.js diff --git a/index/src/assets/editor/lib/codemirror/mode/clike/index.html b/src/assets/editor/lib/codemirror/mode/clike/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/clike/index.html rename to src/assets/editor/lib/codemirror/mode/clike/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/clike/scala.html b/src/assets/editor/lib/codemirror/mode/clike/scala.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/clike/scala.html rename to src/assets/editor/lib/codemirror/mode/clike/scala.html diff --git a/index/src/assets/editor/lib/codemirror/mode/clojure/clojure.js b/src/assets/editor/lib/codemirror/mode/clojure/clojure.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/clojure/clojure.js rename to src/assets/editor/lib/codemirror/mode/clojure/clojure.js diff --git a/index/src/assets/editor/lib/codemirror/mode/clojure/index.html b/src/assets/editor/lib/codemirror/mode/clojure/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/clojure/index.html rename to src/assets/editor/lib/codemirror/mode/clojure/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/cobol/cobol.js b/src/assets/editor/lib/codemirror/mode/cobol/cobol.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/cobol/cobol.js rename to src/assets/editor/lib/codemirror/mode/cobol/cobol.js diff --git a/index/src/assets/editor/lib/codemirror/mode/cobol/index.html b/src/assets/editor/lib/codemirror/mode/cobol/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/cobol/index.html rename to src/assets/editor/lib/codemirror/mode/cobol/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/coffeescript/coffeescript.js b/src/assets/editor/lib/codemirror/mode/coffeescript/coffeescript.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/coffeescript/coffeescript.js rename to src/assets/editor/lib/codemirror/mode/coffeescript/coffeescript.js diff --git a/index/src/assets/editor/lib/codemirror/mode/coffeescript/index.html b/src/assets/editor/lib/codemirror/mode/coffeescript/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/coffeescript/index.html rename to src/assets/editor/lib/codemirror/mode/coffeescript/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/commonlisp/commonlisp.js b/src/assets/editor/lib/codemirror/mode/commonlisp/commonlisp.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/commonlisp/commonlisp.js rename to src/assets/editor/lib/codemirror/mode/commonlisp/commonlisp.js diff --git a/index/src/assets/editor/lib/codemirror/mode/commonlisp/index.html b/src/assets/editor/lib/codemirror/mode/commonlisp/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/commonlisp/index.html rename to src/assets/editor/lib/codemirror/mode/commonlisp/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/css/css.js b/src/assets/editor/lib/codemirror/mode/css/css.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/css/css.js rename to src/assets/editor/lib/codemirror/mode/css/css.js diff --git a/index/src/assets/editor/lib/codemirror/mode/css/index.html b/src/assets/editor/lib/codemirror/mode/css/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/css/index.html rename to src/assets/editor/lib/codemirror/mode/css/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/css/less.html b/src/assets/editor/lib/codemirror/mode/css/less.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/css/less.html rename to src/assets/editor/lib/codemirror/mode/css/less.html diff --git a/index/src/assets/editor/lib/codemirror/mode/css/less_test.js b/src/assets/editor/lib/codemirror/mode/css/less_test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/css/less_test.js rename to src/assets/editor/lib/codemirror/mode/css/less_test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/css/scss.html b/src/assets/editor/lib/codemirror/mode/css/scss.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/css/scss.html rename to src/assets/editor/lib/codemirror/mode/css/scss.html diff --git a/index/src/assets/editor/lib/codemirror/mode/css/scss_test.js b/src/assets/editor/lib/codemirror/mode/css/scss_test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/css/scss_test.js rename to src/assets/editor/lib/codemirror/mode/css/scss_test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/css/test.js b/src/assets/editor/lib/codemirror/mode/css/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/css/test.js rename to src/assets/editor/lib/codemirror/mode/css/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/cypher/cypher.js b/src/assets/editor/lib/codemirror/mode/cypher/cypher.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/cypher/cypher.js rename to src/assets/editor/lib/codemirror/mode/cypher/cypher.js diff --git a/index/src/assets/editor/lib/codemirror/mode/cypher/index.html b/src/assets/editor/lib/codemirror/mode/cypher/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/cypher/index.html rename to src/assets/editor/lib/codemirror/mode/cypher/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/d/d.js b/src/assets/editor/lib/codemirror/mode/d/d.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/d/d.js rename to src/assets/editor/lib/codemirror/mode/d/d.js diff --git a/index/src/assets/editor/lib/codemirror/mode/d/index.html b/src/assets/editor/lib/codemirror/mode/d/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/d/index.html rename to src/assets/editor/lib/codemirror/mode/d/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/dart/dart.js b/src/assets/editor/lib/codemirror/mode/dart/dart.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/dart/dart.js rename to src/assets/editor/lib/codemirror/mode/dart/dart.js diff --git a/index/src/assets/editor/lib/codemirror/mode/dart/index.html b/src/assets/editor/lib/codemirror/mode/dart/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/dart/index.html rename to src/assets/editor/lib/codemirror/mode/dart/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/diff/diff.js b/src/assets/editor/lib/codemirror/mode/diff/diff.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/diff/diff.js rename to src/assets/editor/lib/codemirror/mode/diff/diff.js diff --git a/index/src/assets/editor/lib/codemirror/mode/diff/index.html b/src/assets/editor/lib/codemirror/mode/diff/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/diff/index.html rename to src/assets/editor/lib/codemirror/mode/diff/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/django/django.js b/src/assets/editor/lib/codemirror/mode/django/django.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/django/django.js rename to src/assets/editor/lib/codemirror/mode/django/django.js diff --git a/index/src/assets/editor/lib/codemirror/mode/django/index.html b/src/assets/editor/lib/codemirror/mode/django/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/django/index.html rename to src/assets/editor/lib/codemirror/mode/django/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/dockerfile/dockerfile.js b/src/assets/editor/lib/codemirror/mode/dockerfile/dockerfile.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/dockerfile/dockerfile.js rename to src/assets/editor/lib/codemirror/mode/dockerfile/dockerfile.js diff --git a/index/src/assets/editor/lib/codemirror/mode/dockerfile/index.html b/src/assets/editor/lib/codemirror/mode/dockerfile/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/dockerfile/index.html rename to src/assets/editor/lib/codemirror/mode/dockerfile/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/dtd/dtd.js b/src/assets/editor/lib/codemirror/mode/dtd/dtd.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/dtd/dtd.js rename to src/assets/editor/lib/codemirror/mode/dtd/dtd.js diff --git a/index/src/assets/editor/lib/codemirror/mode/dtd/index.html b/src/assets/editor/lib/codemirror/mode/dtd/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/dtd/index.html rename to src/assets/editor/lib/codemirror/mode/dtd/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/dylan/dylan.js b/src/assets/editor/lib/codemirror/mode/dylan/dylan.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/dylan/dylan.js rename to src/assets/editor/lib/codemirror/mode/dylan/dylan.js diff --git a/index/src/assets/editor/lib/codemirror/mode/dylan/index.html b/src/assets/editor/lib/codemirror/mode/dylan/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/dylan/index.html rename to src/assets/editor/lib/codemirror/mode/dylan/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/ebnf/ebnf.js b/src/assets/editor/lib/codemirror/mode/ebnf/ebnf.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/ebnf/ebnf.js rename to src/assets/editor/lib/codemirror/mode/ebnf/ebnf.js diff --git a/index/src/assets/editor/lib/codemirror/mode/ebnf/index.html b/src/assets/editor/lib/codemirror/mode/ebnf/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/ebnf/index.html rename to src/assets/editor/lib/codemirror/mode/ebnf/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/ecl/ecl.js b/src/assets/editor/lib/codemirror/mode/ecl/ecl.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/ecl/ecl.js rename to src/assets/editor/lib/codemirror/mode/ecl/ecl.js diff --git a/index/src/assets/editor/lib/codemirror/mode/ecl/index.html b/src/assets/editor/lib/codemirror/mode/ecl/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/ecl/index.html rename to src/assets/editor/lib/codemirror/mode/ecl/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/eiffel/eiffel.js b/src/assets/editor/lib/codemirror/mode/eiffel/eiffel.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/eiffel/eiffel.js rename to src/assets/editor/lib/codemirror/mode/eiffel/eiffel.js diff --git a/index/src/assets/editor/lib/codemirror/mode/eiffel/index.html b/src/assets/editor/lib/codemirror/mode/eiffel/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/eiffel/index.html rename to src/assets/editor/lib/codemirror/mode/eiffel/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/erlang/erlang.js b/src/assets/editor/lib/codemirror/mode/erlang/erlang.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/erlang/erlang.js rename to src/assets/editor/lib/codemirror/mode/erlang/erlang.js diff --git a/index/src/assets/editor/lib/codemirror/mode/erlang/index.html b/src/assets/editor/lib/codemirror/mode/erlang/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/erlang/index.html rename to src/assets/editor/lib/codemirror/mode/erlang/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/forth/forth.js b/src/assets/editor/lib/codemirror/mode/forth/forth.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/forth/forth.js rename to src/assets/editor/lib/codemirror/mode/forth/forth.js diff --git a/index/src/assets/editor/lib/codemirror/mode/forth/index.html b/src/assets/editor/lib/codemirror/mode/forth/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/forth/index.html rename to src/assets/editor/lib/codemirror/mode/forth/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/fortran/fortran.js b/src/assets/editor/lib/codemirror/mode/fortran/fortran.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/fortran/fortran.js rename to src/assets/editor/lib/codemirror/mode/fortran/fortran.js diff --git a/index/src/assets/editor/lib/codemirror/mode/fortran/index.html b/src/assets/editor/lib/codemirror/mode/fortran/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/fortran/index.html rename to src/assets/editor/lib/codemirror/mode/fortran/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/gas/gas.js b/src/assets/editor/lib/codemirror/mode/gas/gas.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/gas/gas.js rename to src/assets/editor/lib/codemirror/mode/gas/gas.js diff --git a/index/src/assets/editor/lib/codemirror/mode/gas/index.html b/src/assets/editor/lib/codemirror/mode/gas/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/gas/index.html rename to src/assets/editor/lib/codemirror/mode/gas/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/gfm/gfm.js b/src/assets/editor/lib/codemirror/mode/gfm/gfm.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/gfm/gfm.js rename to src/assets/editor/lib/codemirror/mode/gfm/gfm.js diff --git a/index/src/assets/editor/lib/codemirror/mode/gfm/index.html b/src/assets/editor/lib/codemirror/mode/gfm/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/gfm/index.html rename to src/assets/editor/lib/codemirror/mode/gfm/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/gfm/test.js b/src/assets/editor/lib/codemirror/mode/gfm/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/gfm/test.js rename to src/assets/editor/lib/codemirror/mode/gfm/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/gherkin/gherkin.js b/src/assets/editor/lib/codemirror/mode/gherkin/gherkin.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/gherkin/gherkin.js rename to src/assets/editor/lib/codemirror/mode/gherkin/gherkin.js diff --git a/index/src/assets/editor/lib/codemirror/mode/gherkin/index.html b/src/assets/editor/lib/codemirror/mode/gherkin/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/gherkin/index.html rename to src/assets/editor/lib/codemirror/mode/gherkin/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/go/go.js b/src/assets/editor/lib/codemirror/mode/go/go.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/go/go.js rename to src/assets/editor/lib/codemirror/mode/go/go.js diff --git a/index/src/assets/editor/lib/codemirror/mode/go/index.html b/src/assets/editor/lib/codemirror/mode/go/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/go/index.html rename to src/assets/editor/lib/codemirror/mode/go/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/groovy/groovy.js b/src/assets/editor/lib/codemirror/mode/groovy/groovy.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/groovy/groovy.js rename to src/assets/editor/lib/codemirror/mode/groovy/groovy.js diff --git a/index/src/assets/editor/lib/codemirror/mode/groovy/index.html b/src/assets/editor/lib/codemirror/mode/groovy/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/groovy/index.html rename to src/assets/editor/lib/codemirror/mode/groovy/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/haml/haml.js b/src/assets/editor/lib/codemirror/mode/haml/haml.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/haml/haml.js rename to src/assets/editor/lib/codemirror/mode/haml/haml.js diff --git a/index/src/assets/editor/lib/codemirror/mode/haml/index.html b/src/assets/editor/lib/codemirror/mode/haml/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/haml/index.html rename to src/assets/editor/lib/codemirror/mode/haml/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/haml/test.js b/src/assets/editor/lib/codemirror/mode/haml/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/haml/test.js rename to src/assets/editor/lib/codemirror/mode/haml/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/haskell/haskell.js b/src/assets/editor/lib/codemirror/mode/haskell/haskell.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/haskell/haskell.js rename to src/assets/editor/lib/codemirror/mode/haskell/haskell.js diff --git a/index/src/assets/editor/lib/codemirror/mode/haskell/index.html b/src/assets/editor/lib/codemirror/mode/haskell/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/haskell/index.html rename to src/assets/editor/lib/codemirror/mode/haskell/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/haxe/haxe.js b/src/assets/editor/lib/codemirror/mode/haxe/haxe.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/haxe/haxe.js rename to src/assets/editor/lib/codemirror/mode/haxe/haxe.js diff --git a/index/src/assets/editor/lib/codemirror/mode/haxe/index.html b/src/assets/editor/lib/codemirror/mode/haxe/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/haxe/index.html rename to src/assets/editor/lib/codemirror/mode/haxe/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/htmlembedded/htmlembedded.js b/src/assets/editor/lib/codemirror/mode/htmlembedded/htmlembedded.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/htmlembedded/htmlembedded.js rename to src/assets/editor/lib/codemirror/mode/htmlembedded/htmlembedded.js diff --git a/index/src/assets/editor/lib/codemirror/mode/htmlembedded/index.html b/src/assets/editor/lib/codemirror/mode/htmlembedded/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/htmlembedded/index.html rename to src/assets/editor/lib/codemirror/mode/htmlembedded/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/htmlmixed/htmlmixed.js b/src/assets/editor/lib/codemirror/mode/htmlmixed/htmlmixed.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/htmlmixed/htmlmixed.js rename to src/assets/editor/lib/codemirror/mode/htmlmixed/htmlmixed.js diff --git a/index/src/assets/editor/lib/codemirror/mode/htmlmixed/index.html b/src/assets/editor/lib/codemirror/mode/htmlmixed/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/htmlmixed/index.html rename to src/assets/editor/lib/codemirror/mode/htmlmixed/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/http/http.js b/src/assets/editor/lib/codemirror/mode/http/http.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/http/http.js rename to src/assets/editor/lib/codemirror/mode/http/http.js diff --git a/index/src/assets/editor/lib/codemirror/mode/http/index.html b/src/assets/editor/lib/codemirror/mode/http/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/http/index.html rename to src/assets/editor/lib/codemirror/mode/http/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/idl/idl.js b/src/assets/editor/lib/codemirror/mode/idl/idl.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/idl/idl.js rename to src/assets/editor/lib/codemirror/mode/idl/idl.js diff --git a/index/src/assets/editor/lib/codemirror/mode/idl/index.html b/src/assets/editor/lib/codemirror/mode/idl/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/idl/index.html rename to src/assets/editor/lib/codemirror/mode/idl/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/index.html b/src/assets/editor/lib/codemirror/mode/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/index.html rename to src/assets/editor/lib/codemirror/mode/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/jade/index.html b/src/assets/editor/lib/codemirror/mode/jade/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/jade/index.html rename to src/assets/editor/lib/codemirror/mode/jade/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/jade/jade.js b/src/assets/editor/lib/codemirror/mode/jade/jade.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/jade/jade.js rename to src/assets/editor/lib/codemirror/mode/jade/jade.js diff --git a/index/src/assets/editor/lib/codemirror/mode/javascript/index.html b/src/assets/editor/lib/codemirror/mode/javascript/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/javascript/index.html rename to src/assets/editor/lib/codemirror/mode/javascript/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/javascript/javascript.js b/src/assets/editor/lib/codemirror/mode/javascript/javascript.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/javascript/javascript.js rename to src/assets/editor/lib/codemirror/mode/javascript/javascript.js diff --git a/index/src/assets/editor/lib/codemirror/mode/javascript/json-ld.html b/src/assets/editor/lib/codemirror/mode/javascript/json-ld.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/javascript/json-ld.html rename to src/assets/editor/lib/codemirror/mode/javascript/json-ld.html diff --git a/index/src/assets/editor/lib/codemirror/mode/javascript/test.js b/src/assets/editor/lib/codemirror/mode/javascript/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/javascript/test.js rename to src/assets/editor/lib/codemirror/mode/javascript/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/javascript/typescript.html b/src/assets/editor/lib/codemirror/mode/javascript/typescript.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/javascript/typescript.html rename to src/assets/editor/lib/codemirror/mode/javascript/typescript.html diff --git a/index/src/assets/editor/lib/codemirror/mode/jinja2/index.html b/src/assets/editor/lib/codemirror/mode/jinja2/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/jinja2/index.html rename to src/assets/editor/lib/codemirror/mode/jinja2/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/jinja2/jinja2.js b/src/assets/editor/lib/codemirror/mode/jinja2/jinja2.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/jinja2/jinja2.js rename to src/assets/editor/lib/codemirror/mode/jinja2/jinja2.js diff --git a/index/src/assets/editor/lib/codemirror/mode/julia/index.html b/src/assets/editor/lib/codemirror/mode/julia/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/julia/index.html rename to src/assets/editor/lib/codemirror/mode/julia/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/julia/julia.js b/src/assets/editor/lib/codemirror/mode/julia/julia.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/julia/julia.js rename to src/assets/editor/lib/codemirror/mode/julia/julia.js diff --git a/index/src/assets/editor/lib/codemirror/mode/kotlin/index.html b/src/assets/editor/lib/codemirror/mode/kotlin/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/kotlin/index.html rename to src/assets/editor/lib/codemirror/mode/kotlin/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/kotlin/kotlin.js b/src/assets/editor/lib/codemirror/mode/kotlin/kotlin.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/kotlin/kotlin.js rename to src/assets/editor/lib/codemirror/mode/kotlin/kotlin.js diff --git a/index/src/assets/editor/lib/codemirror/mode/livescript/index.html b/src/assets/editor/lib/codemirror/mode/livescript/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/livescript/index.html rename to src/assets/editor/lib/codemirror/mode/livescript/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/livescript/livescript.js b/src/assets/editor/lib/codemirror/mode/livescript/livescript.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/livescript/livescript.js rename to src/assets/editor/lib/codemirror/mode/livescript/livescript.js diff --git a/index/src/assets/editor/lib/codemirror/mode/lua/index.html b/src/assets/editor/lib/codemirror/mode/lua/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/lua/index.html rename to src/assets/editor/lib/codemirror/mode/lua/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/lua/lua.js b/src/assets/editor/lib/codemirror/mode/lua/lua.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/lua/lua.js rename to src/assets/editor/lib/codemirror/mode/lua/lua.js diff --git a/index/src/assets/editor/lib/codemirror/mode/markdown/index.html b/src/assets/editor/lib/codemirror/mode/markdown/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/markdown/index.html rename to src/assets/editor/lib/codemirror/mode/markdown/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/markdown/markdown.js b/src/assets/editor/lib/codemirror/mode/markdown/markdown.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/markdown/markdown.js rename to src/assets/editor/lib/codemirror/mode/markdown/markdown.js diff --git a/index/src/assets/editor/lib/codemirror/mode/markdown/test.js b/src/assets/editor/lib/codemirror/mode/markdown/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/markdown/test.js rename to src/assets/editor/lib/codemirror/mode/markdown/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/meta.js b/src/assets/editor/lib/codemirror/mode/meta.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/meta.js rename to src/assets/editor/lib/codemirror/mode/meta.js diff --git a/index/src/assets/editor/lib/codemirror/mode/mirc/index.html b/src/assets/editor/lib/codemirror/mode/mirc/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/mirc/index.html rename to src/assets/editor/lib/codemirror/mode/mirc/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/mirc/mirc.js b/src/assets/editor/lib/codemirror/mode/mirc/mirc.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/mirc/mirc.js rename to src/assets/editor/lib/codemirror/mode/mirc/mirc.js diff --git a/index/src/assets/editor/lib/codemirror/mode/mllike/index.html b/src/assets/editor/lib/codemirror/mode/mllike/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/mllike/index.html rename to src/assets/editor/lib/codemirror/mode/mllike/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/mllike/mllike.js b/src/assets/editor/lib/codemirror/mode/mllike/mllike.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/mllike/mllike.js rename to src/assets/editor/lib/codemirror/mode/mllike/mllike.js diff --git a/index/src/assets/editor/lib/codemirror/mode/modelica/index.html b/src/assets/editor/lib/codemirror/mode/modelica/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/modelica/index.html rename to src/assets/editor/lib/codemirror/mode/modelica/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/modelica/modelica.js b/src/assets/editor/lib/codemirror/mode/modelica/modelica.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/modelica/modelica.js rename to src/assets/editor/lib/codemirror/mode/modelica/modelica.js diff --git a/index/src/assets/editor/lib/codemirror/mode/nginx/index.html b/src/assets/editor/lib/codemirror/mode/nginx/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/nginx/index.html rename to src/assets/editor/lib/codemirror/mode/nginx/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/nginx/nginx.js b/src/assets/editor/lib/codemirror/mode/nginx/nginx.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/nginx/nginx.js rename to src/assets/editor/lib/codemirror/mode/nginx/nginx.js diff --git a/index/src/assets/editor/lib/codemirror/mode/ntriples/index.html b/src/assets/editor/lib/codemirror/mode/ntriples/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/ntriples/index.html rename to src/assets/editor/lib/codemirror/mode/ntriples/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/ntriples/ntriples.js b/src/assets/editor/lib/codemirror/mode/ntriples/ntriples.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/ntriples/ntriples.js rename to src/assets/editor/lib/codemirror/mode/ntriples/ntriples.js diff --git a/index/src/assets/editor/lib/codemirror/mode/octave/index.html b/src/assets/editor/lib/codemirror/mode/octave/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/octave/index.html rename to src/assets/editor/lib/codemirror/mode/octave/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/octave/octave.js b/src/assets/editor/lib/codemirror/mode/octave/octave.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/octave/octave.js rename to src/assets/editor/lib/codemirror/mode/octave/octave.js diff --git a/index/src/assets/editor/lib/codemirror/mode/pascal/index.html b/src/assets/editor/lib/codemirror/mode/pascal/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/pascal/index.html rename to src/assets/editor/lib/codemirror/mode/pascal/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/pascal/pascal.js b/src/assets/editor/lib/codemirror/mode/pascal/pascal.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/pascal/pascal.js rename to src/assets/editor/lib/codemirror/mode/pascal/pascal.js diff --git a/index/src/assets/editor/lib/codemirror/mode/pegjs/index.html b/src/assets/editor/lib/codemirror/mode/pegjs/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/pegjs/index.html rename to src/assets/editor/lib/codemirror/mode/pegjs/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/pegjs/pegjs.js b/src/assets/editor/lib/codemirror/mode/pegjs/pegjs.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/pegjs/pegjs.js rename to src/assets/editor/lib/codemirror/mode/pegjs/pegjs.js diff --git a/index/src/assets/editor/lib/codemirror/mode/perl/index.html b/src/assets/editor/lib/codemirror/mode/perl/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/perl/index.html rename to src/assets/editor/lib/codemirror/mode/perl/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/perl/perl.js b/src/assets/editor/lib/codemirror/mode/perl/perl.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/perl/perl.js rename to src/assets/editor/lib/codemirror/mode/perl/perl.js diff --git a/index/src/assets/editor/lib/codemirror/mode/php/index.html b/src/assets/editor/lib/codemirror/mode/php/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/php/index.html rename to src/assets/editor/lib/codemirror/mode/php/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/php/php.js b/src/assets/editor/lib/codemirror/mode/php/php.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/php/php.js rename to src/assets/editor/lib/codemirror/mode/php/php.js diff --git a/index/src/assets/editor/lib/codemirror/mode/php/test.js b/src/assets/editor/lib/codemirror/mode/php/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/php/test.js rename to src/assets/editor/lib/codemirror/mode/php/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/pig/index.html b/src/assets/editor/lib/codemirror/mode/pig/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/pig/index.html rename to src/assets/editor/lib/codemirror/mode/pig/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/pig/pig.js b/src/assets/editor/lib/codemirror/mode/pig/pig.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/pig/pig.js rename to src/assets/editor/lib/codemirror/mode/pig/pig.js diff --git a/index/src/assets/editor/lib/codemirror/mode/properties/index.html b/src/assets/editor/lib/codemirror/mode/properties/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/properties/index.html rename to src/assets/editor/lib/codemirror/mode/properties/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/properties/properties.js b/src/assets/editor/lib/codemirror/mode/properties/properties.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/properties/properties.js rename to src/assets/editor/lib/codemirror/mode/properties/properties.js diff --git a/index/src/assets/editor/lib/codemirror/mode/puppet/index.html b/src/assets/editor/lib/codemirror/mode/puppet/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/puppet/index.html rename to src/assets/editor/lib/codemirror/mode/puppet/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/puppet/puppet.js b/src/assets/editor/lib/codemirror/mode/puppet/puppet.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/puppet/puppet.js rename to src/assets/editor/lib/codemirror/mode/puppet/puppet.js diff --git a/index/src/assets/editor/lib/codemirror/mode/python/index.html b/src/assets/editor/lib/codemirror/mode/python/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/python/index.html rename to src/assets/editor/lib/codemirror/mode/python/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/python/python.js b/src/assets/editor/lib/codemirror/mode/python/python.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/python/python.js rename to src/assets/editor/lib/codemirror/mode/python/python.js diff --git a/index/src/assets/editor/lib/codemirror/mode/q/index.html b/src/assets/editor/lib/codemirror/mode/q/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/q/index.html rename to src/assets/editor/lib/codemirror/mode/q/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/q/q.js b/src/assets/editor/lib/codemirror/mode/q/q.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/q/q.js rename to src/assets/editor/lib/codemirror/mode/q/q.js diff --git a/index/src/assets/editor/lib/codemirror/mode/r/index.html b/src/assets/editor/lib/codemirror/mode/r/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/r/index.html rename to src/assets/editor/lib/codemirror/mode/r/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/r/r.js b/src/assets/editor/lib/codemirror/mode/r/r.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/r/r.js rename to src/assets/editor/lib/codemirror/mode/r/r.js diff --git a/index/src/assets/editor/lib/codemirror/mode/rpm/changes/index.html b/src/assets/editor/lib/codemirror/mode/rpm/changes/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/rpm/changes/index.html rename to src/assets/editor/lib/codemirror/mode/rpm/changes/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/rpm/index.html b/src/assets/editor/lib/codemirror/mode/rpm/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/rpm/index.html rename to src/assets/editor/lib/codemirror/mode/rpm/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/rpm/rpm.js b/src/assets/editor/lib/codemirror/mode/rpm/rpm.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/rpm/rpm.js rename to src/assets/editor/lib/codemirror/mode/rpm/rpm.js diff --git a/index/src/assets/editor/lib/codemirror/mode/rst/index.html b/src/assets/editor/lib/codemirror/mode/rst/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/rst/index.html rename to src/assets/editor/lib/codemirror/mode/rst/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/rst/rst.js b/src/assets/editor/lib/codemirror/mode/rst/rst.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/rst/rst.js rename to src/assets/editor/lib/codemirror/mode/rst/rst.js diff --git a/index/src/assets/editor/lib/codemirror/mode/ruby/index.html b/src/assets/editor/lib/codemirror/mode/ruby/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/ruby/index.html rename to src/assets/editor/lib/codemirror/mode/ruby/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/ruby/ruby.js b/src/assets/editor/lib/codemirror/mode/ruby/ruby.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/ruby/ruby.js rename to src/assets/editor/lib/codemirror/mode/ruby/ruby.js diff --git a/index/src/assets/editor/lib/codemirror/mode/ruby/test.js b/src/assets/editor/lib/codemirror/mode/ruby/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/ruby/test.js rename to src/assets/editor/lib/codemirror/mode/ruby/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/rust/index.html b/src/assets/editor/lib/codemirror/mode/rust/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/rust/index.html rename to src/assets/editor/lib/codemirror/mode/rust/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/rust/rust.js b/src/assets/editor/lib/codemirror/mode/rust/rust.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/rust/rust.js rename to src/assets/editor/lib/codemirror/mode/rust/rust.js diff --git a/index/src/assets/editor/lib/codemirror/mode/sass/index.html b/src/assets/editor/lib/codemirror/mode/sass/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/sass/index.html rename to src/assets/editor/lib/codemirror/mode/sass/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/sass/sass.js b/src/assets/editor/lib/codemirror/mode/sass/sass.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/sass/sass.js rename to src/assets/editor/lib/codemirror/mode/sass/sass.js diff --git a/index/src/assets/editor/lib/codemirror/mode/scheme/index.html b/src/assets/editor/lib/codemirror/mode/scheme/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/scheme/index.html rename to src/assets/editor/lib/codemirror/mode/scheme/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/scheme/scheme.js b/src/assets/editor/lib/codemirror/mode/scheme/scheme.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/scheme/scheme.js rename to src/assets/editor/lib/codemirror/mode/scheme/scheme.js diff --git a/index/src/assets/editor/lib/codemirror/mode/shell/index.html b/src/assets/editor/lib/codemirror/mode/shell/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/shell/index.html rename to src/assets/editor/lib/codemirror/mode/shell/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/shell/shell.js b/src/assets/editor/lib/codemirror/mode/shell/shell.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/shell/shell.js rename to src/assets/editor/lib/codemirror/mode/shell/shell.js diff --git a/index/src/assets/editor/lib/codemirror/mode/shell/test.js b/src/assets/editor/lib/codemirror/mode/shell/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/shell/test.js rename to src/assets/editor/lib/codemirror/mode/shell/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/sieve/index.html b/src/assets/editor/lib/codemirror/mode/sieve/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/sieve/index.html rename to src/assets/editor/lib/codemirror/mode/sieve/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/sieve/sieve.js b/src/assets/editor/lib/codemirror/mode/sieve/sieve.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/sieve/sieve.js rename to src/assets/editor/lib/codemirror/mode/sieve/sieve.js diff --git a/index/src/assets/editor/lib/codemirror/mode/slim/index.html b/src/assets/editor/lib/codemirror/mode/slim/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/slim/index.html rename to src/assets/editor/lib/codemirror/mode/slim/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/slim/slim.js b/src/assets/editor/lib/codemirror/mode/slim/slim.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/slim/slim.js rename to src/assets/editor/lib/codemirror/mode/slim/slim.js diff --git a/index/src/assets/editor/lib/codemirror/mode/slim/test.js b/src/assets/editor/lib/codemirror/mode/slim/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/slim/test.js rename to src/assets/editor/lib/codemirror/mode/slim/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/smalltalk/index.html b/src/assets/editor/lib/codemirror/mode/smalltalk/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/smalltalk/index.html rename to src/assets/editor/lib/codemirror/mode/smalltalk/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/smalltalk/smalltalk.js b/src/assets/editor/lib/codemirror/mode/smalltalk/smalltalk.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/smalltalk/smalltalk.js rename to src/assets/editor/lib/codemirror/mode/smalltalk/smalltalk.js diff --git a/index/src/assets/editor/lib/codemirror/mode/smarty/index.html b/src/assets/editor/lib/codemirror/mode/smarty/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/smarty/index.html rename to src/assets/editor/lib/codemirror/mode/smarty/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/smarty/smarty.js b/src/assets/editor/lib/codemirror/mode/smarty/smarty.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/smarty/smarty.js rename to src/assets/editor/lib/codemirror/mode/smarty/smarty.js diff --git a/index/src/assets/editor/lib/codemirror/mode/smartymixed/index.html b/src/assets/editor/lib/codemirror/mode/smartymixed/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/smartymixed/index.html rename to src/assets/editor/lib/codemirror/mode/smartymixed/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/smartymixed/smartymixed.js b/src/assets/editor/lib/codemirror/mode/smartymixed/smartymixed.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/smartymixed/smartymixed.js rename to src/assets/editor/lib/codemirror/mode/smartymixed/smartymixed.js diff --git a/index/src/assets/editor/lib/codemirror/mode/solr/index.html b/src/assets/editor/lib/codemirror/mode/solr/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/solr/index.html rename to src/assets/editor/lib/codemirror/mode/solr/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/solr/solr.js b/src/assets/editor/lib/codemirror/mode/solr/solr.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/solr/solr.js rename to src/assets/editor/lib/codemirror/mode/solr/solr.js diff --git a/index/src/assets/editor/lib/codemirror/mode/soy/index.html b/src/assets/editor/lib/codemirror/mode/soy/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/soy/index.html rename to src/assets/editor/lib/codemirror/mode/soy/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/soy/soy.js b/src/assets/editor/lib/codemirror/mode/soy/soy.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/soy/soy.js rename to src/assets/editor/lib/codemirror/mode/soy/soy.js diff --git a/index/src/assets/editor/lib/codemirror/mode/sparql/index.html b/src/assets/editor/lib/codemirror/mode/sparql/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/sparql/index.html rename to src/assets/editor/lib/codemirror/mode/sparql/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/sparql/sparql.js b/src/assets/editor/lib/codemirror/mode/sparql/sparql.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/sparql/sparql.js rename to src/assets/editor/lib/codemirror/mode/sparql/sparql.js diff --git a/index/src/assets/editor/lib/codemirror/mode/spreadsheet/index.html b/src/assets/editor/lib/codemirror/mode/spreadsheet/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/spreadsheet/index.html rename to src/assets/editor/lib/codemirror/mode/spreadsheet/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/spreadsheet/spreadsheet.js b/src/assets/editor/lib/codemirror/mode/spreadsheet/spreadsheet.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/spreadsheet/spreadsheet.js rename to src/assets/editor/lib/codemirror/mode/spreadsheet/spreadsheet.js diff --git a/index/src/assets/editor/lib/codemirror/mode/sql/index.html b/src/assets/editor/lib/codemirror/mode/sql/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/sql/index.html rename to src/assets/editor/lib/codemirror/mode/sql/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/sql/sql.js b/src/assets/editor/lib/codemirror/mode/sql/sql.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/sql/sql.js rename to src/assets/editor/lib/codemirror/mode/sql/sql.js diff --git a/index/src/assets/editor/lib/codemirror/mode/stex/index.html b/src/assets/editor/lib/codemirror/mode/stex/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/stex/index.html rename to src/assets/editor/lib/codemirror/mode/stex/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/stex/stex.js b/src/assets/editor/lib/codemirror/mode/stex/stex.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/stex/stex.js rename to src/assets/editor/lib/codemirror/mode/stex/stex.js diff --git a/index/src/assets/editor/lib/codemirror/mode/stex/test.js b/src/assets/editor/lib/codemirror/mode/stex/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/stex/test.js rename to src/assets/editor/lib/codemirror/mode/stex/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/stylus/index.html b/src/assets/editor/lib/codemirror/mode/stylus/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/stylus/index.html rename to src/assets/editor/lib/codemirror/mode/stylus/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/stylus/stylus.js b/src/assets/editor/lib/codemirror/mode/stylus/stylus.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/stylus/stylus.js rename to src/assets/editor/lib/codemirror/mode/stylus/stylus.js diff --git a/index/src/assets/editor/lib/codemirror/mode/tcl/index.html b/src/assets/editor/lib/codemirror/mode/tcl/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tcl/index.html rename to src/assets/editor/lib/codemirror/mode/tcl/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/tcl/tcl.js b/src/assets/editor/lib/codemirror/mode/tcl/tcl.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tcl/tcl.js rename to src/assets/editor/lib/codemirror/mode/tcl/tcl.js diff --git a/index/src/assets/editor/lib/codemirror/mode/textile/index.html b/src/assets/editor/lib/codemirror/mode/textile/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/textile/index.html rename to src/assets/editor/lib/codemirror/mode/textile/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/textile/test.js b/src/assets/editor/lib/codemirror/mode/textile/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/textile/test.js rename to src/assets/editor/lib/codemirror/mode/textile/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/textile/textile.js b/src/assets/editor/lib/codemirror/mode/textile/textile.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/textile/textile.js rename to src/assets/editor/lib/codemirror/mode/textile/textile.js diff --git a/index/src/assets/editor/lib/codemirror/mode/tiddlywiki/index.html b/src/assets/editor/lib/codemirror/mode/tiddlywiki/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tiddlywiki/index.html rename to src/assets/editor/lib/codemirror/mode/tiddlywiki/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.css b/src/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.css rename to src/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.css diff --git a/index/src/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.js b/src/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.js rename to src/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.js diff --git a/index/src/assets/editor/lib/codemirror/mode/tiki/index.html b/src/assets/editor/lib/codemirror/mode/tiki/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tiki/index.html rename to src/assets/editor/lib/codemirror/mode/tiki/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/tiki/tiki.css b/src/assets/editor/lib/codemirror/mode/tiki/tiki.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tiki/tiki.css rename to src/assets/editor/lib/codemirror/mode/tiki/tiki.css diff --git a/index/src/assets/editor/lib/codemirror/mode/tiki/tiki.js b/src/assets/editor/lib/codemirror/mode/tiki/tiki.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tiki/tiki.js rename to src/assets/editor/lib/codemirror/mode/tiki/tiki.js diff --git a/index/src/assets/editor/lib/codemirror/mode/toml/index.html b/src/assets/editor/lib/codemirror/mode/toml/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/toml/index.html rename to src/assets/editor/lib/codemirror/mode/toml/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/toml/toml.js b/src/assets/editor/lib/codemirror/mode/toml/toml.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/toml/toml.js rename to src/assets/editor/lib/codemirror/mode/toml/toml.js diff --git a/index/src/assets/editor/lib/codemirror/mode/tornado/index.html b/src/assets/editor/lib/codemirror/mode/tornado/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tornado/index.html rename to src/assets/editor/lib/codemirror/mode/tornado/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/tornado/tornado.js b/src/assets/editor/lib/codemirror/mode/tornado/tornado.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/tornado/tornado.js rename to src/assets/editor/lib/codemirror/mode/tornado/tornado.js diff --git a/index/src/assets/editor/lib/codemirror/mode/turtle/index.html b/src/assets/editor/lib/codemirror/mode/turtle/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/turtle/index.html rename to src/assets/editor/lib/codemirror/mode/turtle/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/turtle/turtle.js b/src/assets/editor/lib/codemirror/mode/turtle/turtle.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/turtle/turtle.js rename to src/assets/editor/lib/codemirror/mode/turtle/turtle.js diff --git a/index/src/assets/editor/lib/codemirror/mode/vb/index.html b/src/assets/editor/lib/codemirror/mode/vb/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/vb/index.html rename to src/assets/editor/lib/codemirror/mode/vb/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/vb/vb.js b/src/assets/editor/lib/codemirror/mode/vb/vb.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/vb/vb.js rename to src/assets/editor/lib/codemirror/mode/vb/vb.js diff --git a/index/src/assets/editor/lib/codemirror/mode/vbscript/index.html b/src/assets/editor/lib/codemirror/mode/vbscript/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/vbscript/index.html rename to src/assets/editor/lib/codemirror/mode/vbscript/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/vbscript/vbscript.js b/src/assets/editor/lib/codemirror/mode/vbscript/vbscript.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/vbscript/vbscript.js rename to src/assets/editor/lib/codemirror/mode/vbscript/vbscript.js diff --git a/index/src/assets/editor/lib/codemirror/mode/velocity/index.html b/src/assets/editor/lib/codemirror/mode/velocity/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/velocity/index.html rename to src/assets/editor/lib/codemirror/mode/velocity/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/velocity/velocity.js b/src/assets/editor/lib/codemirror/mode/velocity/velocity.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/velocity/velocity.js rename to src/assets/editor/lib/codemirror/mode/velocity/velocity.js diff --git a/index/src/assets/editor/lib/codemirror/mode/verilog/index.html b/src/assets/editor/lib/codemirror/mode/verilog/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/verilog/index.html rename to src/assets/editor/lib/codemirror/mode/verilog/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/verilog/test.js b/src/assets/editor/lib/codemirror/mode/verilog/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/verilog/test.js rename to src/assets/editor/lib/codemirror/mode/verilog/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/verilog/verilog.js b/src/assets/editor/lib/codemirror/mode/verilog/verilog.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/verilog/verilog.js rename to src/assets/editor/lib/codemirror/mode/verilog/verilog.js diff --git a/index/src/assets/editor/lib/codemirror/mode/xml/index.html b/src/assets/editor/lib/codemirror/mode/xml/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/xml/index.html rename to src/assets/editor/lib/codemirror/mode/xml/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/xml/test.js b/src/assets/editor/lib/codemirror/mode/xml/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/xml/test.js rename to src/assets/editor/lib/codemirror/mode/xml/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/xml/xml.js b/src/assets/editor/lib/codemirror/mode/xml/xml.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/xml/xml.js rename to src/assets/editor/lib/codemirror/mode/xml/xml.js diff --git a/index/src/assets/editor/lib/codemirror/mode/xquery/index.html b/src/assets/editor/lib/codemirror/mode/xquery/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/xquery/index.html rename to src/assets/editor/lib/codemirror/mode/xquery/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/xquery/test.js b/src/assets/editor/lib/codemirror/mode/xquery/test.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/xquery/test.js rename to src/assets/editor/lib/codemirror/mode/xquery/test.js diff --git a/index/src/assets/editor/lib/codemirror/mode/xquery/xquery.js b/src/assets/editor/lib/codemirror/mode/xquery/xquery.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/xquery/xquery.js rename to src/assets/editor/lib/codemirror/mode/xquery/xquery.js diff --git a/index/src/assets/editor/lib/codemirror/mode/yaml/index.html b/src/assets/editor/lib/codemirror/mode/yaml/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/yaml/index.html rename to src/assets/editor/lib/codemirror/mode/yaml/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/yaml/yaml.js b/src/assets/editor/lib/codemirror/mode/yaml/yaml.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/yaml/yaml.js rename to src/assets/editor/lib/codemirror/mode/yaml/yaml.js diff --git a/index/src/assets/editor/lib/codemirror/mode/z80/index.html b/src/assets/editor/lib/codemirror/mode/z80/index.html similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/z80/index.html rename to src/assets/editor/lib/codemirror/mode/z80/index.html diff --git a/index/src/assets/editor/lib/codemirror/mode/z80/z80.js b/src/assets/editor/lib/codemirror/mode/z80/z80.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/mode/z80/z80.js rename to src/assets/editor/lib/codemirror/mode/z80/z80.js diff --git a/index/src/assets/editor/lib/codemirror/modes.min.js b/src/assets/editor/lib/codemirror/modes.min.js similarity index 100% rename from index/src/assets/editor/lib/codemirror/modes.min.js rename to src/assets/editor/lib/codemirror/modes.min.js diff --git a/index/src/assets/editor/lib/codemirror/package.json b/src/assets/editor/lib/codemirror/package.json similarity index 100% rename from index/src/assets/editor/lib/codemirror/package.json rename to src/assets/editor/lib/codemirror/package.json diff --git a/index/src/assets/editor/lib/codemirror/theme/3024-day.css b/src/assets/editor/lib/codemirror/theme/3024-day.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/3024-day.css rename to src/assets/editor/lib/codemirror/theme/3024-day.css diff --git a/index/src/assets/editor/lib/codemirror/theme/3024-night.css b/src/assets/editor/lib/codemirror/theme/3024-night.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/3024-night.css rename to src/assets/editor/lib/codemirror/theme/3024-night.css diff --git a/index/src/assets/editor/lib/codemirror/theme/ambiance-mobile.css b/src/assets/editor/lib/codemirror/theme/ambiance-mobile.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/ambiance-mobile.css rename to src/assets/editor/lib/codemirror/theme/ambiance-mobile.css diff --git a/index/src/assets/editor/lib/codemirror/theme/ambiance.css b/src/assets/editor/lib/codemirror/theme/ambiance.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/ambiance.css rename to src/assets/editor/lib/codemirror/theme/ambiance.css diff --git a/index/src/assets/editor/lib/codemirror/theme/base16-dark.css b/src/assets/editor/lib/codemirror/theme/base16-dark.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/base16-dark.css rename to src/assets/editor/lib/codemirror/theme/base16-dark.css diff --git a/index/src/assets/editor/lib/codemirror/theme/base16-light.css b/src/assets/editor/lib/codemirror/theme/base16-light.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/base16-light.css rename to src/assets/editor/lib/codemirror/theme/base16-light.css diff --git a/index/src/assets/editor/lib/codemirror/theme/blackboard.css b/src/assets/editor/lib/codemirror/theme/blackboard.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/blackboard.css rename to src/assets/editor/lib/codemirror/theme/blackboard.css diff --git a/index/src/assets/editor/lib/codemirror/theme/cobalt.css b/src/assets/editor/lib/codemirror/theme/cobalt.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/cobalt.css rename to src/assets/editor/lib/codemirror/theme/cobalt.css diff --git a/index/src/assets/editor/lib/codemirror/theme/colorforth.css b/src/assets/editor/lib/codemirror/theme/colorforth.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/colorforth.css rename to src/assets/editor/lib/codemirror/theme/colorforth.css diff --git a/index/src/assets/editor/lib/codemirror/theme/eclipse.css b/src/assets/editor/lib/codemirror/theme/eclipse.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/eclipse.css rename to src/assets/editor/lib/codemirror/theme/eclipse.css diff --git a/index/src/assets/editor/lib/codemirror/theme/elegant.css b/src/assets/editor/lib/codemirror/theme/elegant.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/elegant.css rename to src/assets/editor/lib/codemirror/theme/elegant.css diff --git a/index/src/assets/editor/lib/codemirror/theme/erlang-dark.css b/src/assets/editor/lib/codemirror/theme/erlang-dark.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/erlang-dark.css rename to src/assets/editor/lib/codemirror/theme/erlang-dark.css diff --git a/index/src/assets/editor/lib/codemirror/theme/lesser-dark.css b/src/assets/editor/lib/codemirror/theme/lesser-dark.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/lesser-dark.css rename to src/assets/editor/lib/codemirror/theme/lesser-dark.css diff --git a/index/src/assets/editor/lib/codemirror/theme/mbo.css b/src/assets/editor/lib/codemirror/theme/mbo.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/mbo.css rename to src/assets/editor/lib/codemirror/theme/mbo.css diff --git a/index/src/assets/editor/lib/codemirror/theme/mdn-like.css b/src/assets/editor/lib/codemirror/theme/mdn-like.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/mdn-like.css rename to src/assets/editor/lib/codemirror/theme/mdn-like.css diff --git a/index/src/assets/editor/lib/codemirror/theme/midnight.css b/src/assets/editor/lib/codemirror/theme/midnight.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/midnight.css rename to src/assets/editor/lib/codemirror/theme/midnight.css diff --git a/index/src/assets/editor/lib/codemirror/theme/monokai.css b/src/assets/editor/lib/codemirror/theme/monokai.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/monokai.css rename to src/assets/editor/lib/codemirror/theme/monokai.css diff --git a/index/src/assets/editor/lib/codemirror/theme/neat.css b/src/assets/editor/lib/codemirror/theme/neat.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/neat.css rename to src/assets/editor/lib/codemirror/theme/neat.css diff --git a/index/src/assets/editor/lib/codemirror/theme/neo.css b/src/assets/editor/lib/codemirror/theme/neo.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/neo.css rename to src/assets/editor/lib/codemirror/theme/neo.css diff --git a/index/src/assets/editor/lib/codemirror/theme/night.css b/src/assets/editor/lib/codemirror/theme/night.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/night.css rename to src/assets/editor/lib/codemirror/theme/night.css diff --git a/index/src/assets/editor/lib/codemirror/theme/paraiso-dark.css b/src/assets/editor/lib/codemirror/theme/paraiso-dark.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/paraiso-dark.css rename to src/assets/editor/lib/codemirror/theme/paraiso-dark.css diff --git a/index/src/assets/editor/lib/codemirror/theme/paraiso-light.css b/src/assets/editor/lib/codemirror/theme/paraiso-light.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/paraiso-light.css rename to src/assets/editor/lib/codemirror/theme/paraiso-light.css diff --git a/index/src/assets/editor/lib/codemirror/theme/pastel-on-dark.css b/src/assets/editor/lib/codemirror/theme/pastel-on-dark.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/pastel-on-dark.css rename to src/assets/editor/lib/codemirror/theme/pastel-on-dark.css diff --git a/index/src/assets/editor/lib/codemirror/theme/rubyblue.css b/src/assets/editor/lib/codemirror/theme/rubyblue.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/rubyblue.css rename to src/assets/editor/lib/codemirror/theme/rubyblue.css diff --git a/index/src/assets/editor/lib/codemirror/theme/solarized.css b/src/assets/editor/lib/codemirror/theme/solarized.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/solarized.css rename to src/assets/editor/lib/codemirror/theme/solarized.css diff --git a/index/src/assets/editor/lib/codemirror/theme/the-matrix.css b/src/assets/editor/lib/codemirror/theme/the-matrix.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/the-matrix.css rename to src/assets/editor/lib/codemirror/theme/the-matrix.css diff --git a/index/src/assets/editor/lib/codemirror/theme/tomorrow-night-bright.css b/src/assets/editor/lib/codemirror/theme/tomorrow-night-bright.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/tomorrow-night-bright.css rename to src/assets/editor/lib/codemirror/theme/tomorrow-night-bright.css diff --git a/index/src/assets/editor/lib/codemirror/theme/tomorrow-night-eighties.css b/src/assets/editor/lib/codemirror/theme/tomorrow-night-eighties.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/tomorrow-night-eighties.css rename to src/assets/editor/lib/codemirror/theme/tomorrow-night-eighties.css diff --git a/index/src/assets/editor/lib/codemirror/theme/twilight.css b/src/assets/editor/lib/codemirror/theme/twilight.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/twilight.css rename to src/assets/editor/lib/codemirror/theme/twilight.css diff --git a/index/src/assets/editor/lib/codemirror/theme/vibrant-ink.css b/src/assets/editor/lib/codemirror/theme/vibrant-ink.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/vibrant-ink.css rename to src/assets/editor/lib/codemirror/theme/vibrant-ink.css diff --git a/index/src/assets/editor/lib/codemirror/theme/xq-dark.css b/src/assets/editor/lib/codemirror/theme/xq-dark.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/xq-dark.css rename to src/assets/editor/lib/codemirror/theme/xq-dark.css diff --git a/index/src/assets/editor/lib/codemirror/theme/xq-light.css b/src/assets/editor/lib/codemirror/theme/xq-light.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/xq-light.css rename to src/assets/editor/lib/codemirror/theme/xq-light.css diff --git a/index/src/assets/editor/lib/codemirror/theme/zenburn.css b/src/assets/editor/lib/codemirror/theme/zenburn.css similarity index 100% rename from index/src/assets/editor/lib/codemirror/theme/zenburn.css rename to src/assets/editor/lib/codemirror/theme/zenburn.css diff --git a/index/src/assets/editor/lib/flowchart.min.js b/src/assets/editor/lib/flowchart.min.js similarity index 100% rename from index/src/assets/editor/lib/flowchart.min.js rename to src/assets/editor/lib/flowchart.min.js diff --git a/index/src/assets/editor/lib/jquery.flowchart.min.js b/src/assets/editor/lib/jquery.flowchart.min.js similarity index 100% rename from index/src/assets/editor/lib/jquery.flowchart.min.js rename to src/assets/editor/lib/jquery.flowchart.min.js diff --git a/index/src/assets/editor/lib/marked.min.js b/src/assets/editor/lib/marked.min.js similarity index 100% rename from index/src/assets/editor/lib/marked.min.js rename to src/assets/editor/lib/marked.min.js diff --git a/index/src/assets/editor/lib/prettify.min.js b/src/assets/editor/lib/prettify.min.js similarity index 100% rename from index/src/assets/editor/lib/prettify.min.js rename to src/assets/editor/lib/prettify.min.js diff --git a/index/src/assets/editor/lib/raphael.min.js b/src/assets/editor/lib/raphael.min.js similarity index 100% rename from index/src/assets/editor/lib/raphael.min.js rename to src/assets/editor/lib/raphael.min.js diff --git a/index/src/assets/editor/lib/sequence-diagram.min.js b/src/assets/editor/lib/sequence-diagram.min.js similarity index 100% rename from index/src/assets/editor/lib/sequence-diagram.min.js rename to src/assets/editor/lib/sequence-diagram.min.js diff --git a/index/src/assets/editor/lib/underscore.min.js b/src/assets/editor/lib/underscore.min.js similarity index 100% rename from index/src/assets/editor/lib/underscore.min.js rename to src/assets/editor/lib/underscore.min.js diff --git a/index/src/assets/editor/plugins/code-block-dialog/code-block-dialog.js b/src/assets/editor/plugins/code-block-dialog/code-block-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/code-block-dialog/code-block-dialog.js rename to src/assets/editor/plugins/code-block-dialog/code-block-dialog.js diff --git a/index/src/assets/editor/plugins/emoji-dialog/emoji-dialog.js b/src/assets/editor/plugins/emoji-dialog/emoji-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/emoji-dialog/emoji-dialog.js rename to src/assets/editor/plugins/emoji-dialog/emoji-dialog.js diff --git a/index/src/assets/editor/plugins/emoji-dialog/emoji.json b/src/assets/editor/plugins/emoji-dialog/emoji.json similarity index 100% rename from index/src/assets/editor/plugins/emoji-dialog/emoji.json rename to src/assets/editor/plugins/emoji-dialog/emoji.json diff --git a/index/src/assets/editor/plugins/goto-line-dialog/goto-line-dialog.js b/src/assets/editor/plugins/goto-line-dialog/goto-line-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/goto-line-dialog/goto-line-dialog.js rename to src/assets/editor/plugins/goto-line-dialog/goto-line-dialog.js diff --git a/index/src/assets/editor/plugins/help-dialog/help-dialog.js b/src/assets/editor/plugins/help-dialog/help-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/help-dialog/help-dialog.js rename to src/assets/editor/plugins/help-dialog/help-dialog.js diff --git a/index/src/assets/editor/plugins/help-dialog/help.md b/src/assets/editor/plugins/help-dialog/help.md similarity index 100% rename from index/src/assets/editor/plugins/help-dialog/help.md rename to src/assets/editor/plugins/help-dialog/help.md diff --git a/index/src/assets/editor/plugins/html-entities-dialog/html-entities-dialog.js b/src/assets/editor/plugins/html-entities-dialog/html-entities-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/html-entities-dialog/html-entities-dialog.js rename to src/assets/editor/plugins/html-entities-dialog/html-entities-dialog.js diff --git a/index/src/assets/editor/plugins/html-entities-dialog/html-entities.json b/src/assets/editor/plugins/html-entities-dialog/html-entities.json similarity index 100% rename from index/src/assets/editor/plugins/html-entities-dialog/html-entities.json rename to src/assets/editor/plugins/html-entities-dialog/html-entities.json diff --git a/index/src/assets/editor/plugins/image-dialog/image-dialog.js b/src/assets/editor/plugins/image-dialog/image-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/image-dialog/image-dialog.js rename to src/assets/editor/plugins/image-dialog/image-dialog.js diff --git a/index/src/assets/editor/plugins/link-dialog/link-dialog.js b/src/assets/editor/plugins/link-dialog/link-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/link-dialog/link-dialog.js rename to src/assets/editor/plugins/link-dialog/link-dialog.js diff --git a/index/src/assets/editor/plugins/plugin-template.js b/src/assets/editor/plugins/plugin-template.js similarity index 100% rename from index/src/assets/editor/plugins/plugin-template.js rename to src/assets/editor/plugins/plugin-template.js diff --git a/index/src/assets/editor/plugins/preformatted-text-dialog/preformatted-text-dialog.js b/src/assets/editor/plugins/preformatted-text-dialog/preformatted-text-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/preformatted-text-dialog/preformatted-text-dialog.js rename to src/assets/editor/plugins/preformatted-text-dialog/preformatted-text-dialog.js diff --git a/index/src/assets/editor/plugins/reference-link-dialog/reference-link-dialog.js b/src/assets/editor/plugins/reference-link-dialog/reference-link-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/reference-link-dialog/reference-link-dialog.js rename to src/assets/editor/plugins/reference-link-dialog/reference-link-dialog.js diff --git a/index/src/assets/editor/plugins/table-dialog/table-dialog.js b/src/assets/editor/plugins/table-dialog/table-dialog.js similarity index 100% rename from index/src/assets/editor/plugins/table-dialog/table-dialog.js rename to src/assets/editor/plugins/table-dialog/table-dialog.js diff --git a/index/src/assets/editor/plugins/test-plugin/test-plugin.js b/src/assets/editor/plugins/test-plugin/test-plugin.js similarity index 100% rename from index/src/assets/editor/plugins/test-plugin/test-plugin.js rename to src/assets/editor/plugins/test-plugin/test-plugin.js diff --git a/index/src/assets/img/404-m.jpg b/src/assets/img/404-m.jpg similarity index 100% rename from index/src/assets/img/404-m.jpg rename to src/assets/img/404-m.jpg diff --git a/index/src/assets/img/404.jpg b/src/assets/img/404.jpg similarity index 100% rename from index/src/assets/img/404.jpg rename to src/assets/img/404.jpg diff --git a/index/src/assets/img/bg_header.jpg b/src/assets/img/bg_header.jpg similarity index 100% rename from index/src/assets/img/bg_header.jpg rename to src/assets/img/bg_header.jpg diff --git a/index/src/environments/environment.prod.ts b/src/environments/environment.prod.ts similarity index 100% rename from index/src/environments/environment.prod.ts rename to src/environments/environment.prod.ts diff --git a/index/src/environments/environment.ts b/src/environments/environment.ts similarity index 100% rename from index/src/environments/environment.ts rename to src/environments/environment.ts diff --git a/index/src/index.html b/src/index.html similarity index 100% rename from index/src/index.html rename to src/index.html diff --git a/index/src/main.ts b/src/main.ts similarity index 100% rename from index/src/main.ts rename to src/main.ts diff --git a/index/src/polyfills.ts b/src/polyfills.ts similarity index 100% rename from index/src/polyfills.ts rename to src/polyfills.ts diff --git a/index/src/styles.less b/src/styles.less similarity index 53% rename from index/src/styles.less rename to src/styles.less index 0d60725..0d1c7f8 100644 --- a/index/src/styles.less +++ b/src/styles.less @@ -6,3 +6,19 @@ body { background: #ececec; } + +.inner-content { + padding: 10px; +} + +.edit-opt { + +} + +.show-opr { + color: #00aaaa; +} + +.del-opr { + color: red; +} diff --git a/index/src/test.ts b/src/test.ts similarity index 100% rename from index/src/test.ts rename to src/test.ts diff --git a/index/tsconfig.app.json b/tsconfig.app.json similarity index 100% rename from index/tsconfig.app.json rename to tsconfig.app.json diff --git a/index/tsconfig.json b/tsconfig.json similarity index 100% rename from index/tsconfig.json rename to tsconfig.json diff --git a/index/tsconfig.spec.json b/tsconfig.spec.json similarity index 100% rename from index/tsconfig.spec.json rename to tsconfig.spec.json diff --git a/index/tslint.json b/tslint.json similarity index 100% rename from index/tslint.json rename to tslint.json