From 2bcca393e1ace7291db33c5ace977364cd458cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Thu, 23 Apr 2020 21:59:32 +0800 Subject: [PATCH 01/53] =?UTF-8?q?=E7=AB=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/app-routing.module.ts | 1 + index/src/app/app.module.ts | 4 ++- .../admin-article.component.html | 1 + .../admin-article.component.less | 0 .../admin-article.component.spec.ts | 25 +++++++++++++ .../admin-article/admin-article.component.ts | 15 ++++++++ .../admin-category.component.html | 1 + .../admin-category.component.less | 0 .../admin-category.component.spec.ts | 25 +++++++++++++ .../admin-category.component.ts | 15 ++++++++ .../admin-comment.component.html | 1 + .../admin-comment.component.less | 0 .../admin-comment.component.spec.ts | 25 +++++++++++++ .../admin-comment/admin-comment.component.ts | 15 ++++++++ .../admin-index/admin-index.component.html | 1 + .../admin-index/admin-index.component.less | 0 .../admin-index/admin-index.component.spec.ts | 25 +++++++++++++ .../admin-index/admin-index.component.ts | 15 ++++++++ .../admin-link/admin-link.component.html | 1 + .../admin-link/admin-link.component.less | 0 .../admin-link/admin-link.component.spec.ts | 25 +++++++++++++ .../admin/admin-link/admin-link.component.ts | 15 ++++++++ .../app/view/admin/admin-routing.module.ts | 36 +++++++++++++++++++ .../admin/admin-tag/admin-tag.component.html | 1 + .../admin/admin-tag/admin-tag.component.less | 0 .../admin-tag/admin-tag.component.spec.ts | 25 +++++++++++++ .../admin/admin-tag/admin-tag.component.ts | 15 ++++++++ .../admin-update/admin-update.component.html | 1 + .../admin-update/admin-update.component.less | 0 .../admin-update.component.spec.ts | 25 +++++++++++++ .../admin-update/admin-update.component.ts | 15 ++++++++ .../admin-user/admin-user.component.html | 1 + .../admin-user/admin-user.component.less | 0 .../admin-user/admin-user.component.spec.ts | 25 +++++++++++++ .../admin/admin-user/admin-user.component.ts | 15 ++++++++ .../admin-userinfo.component.html | 1 + .../admin-userinfo.component.less | 0 .../admin-userinfo.component.spec.ts | 25 +++++++++++++ .../admin-userinfo.component.ts | 15 ++++++++ .../admin-visitor.component.html | 1 + .../admin-visitor.component.less | 0 .../admin-visitor.component.spec.ts | 25 +++++++++++++ .../admin-visitor/admin-visitor.component.ts | 15 ++++++++ index/src/app/view/admin/admin.module.ts | 35 ++++++++++++++++++ 44 files changed, 485 insertions(+), 1 deletion(-) create mode 100644 index/src/app/view/admin/admin-article/admin-article.component.html create mode 100644 index/src/app/view/admin/admin-article/admin-article.component.less create mode 100644 index/src/app/view/admin/admin-article/admin-article.component.spec.ts create mode 100644 index/src/app/view/admin/admin-article/admin-article.component.ts create mode 100644 index/src/app/view/admin/admin-category/admin-category.component.html create mode 100644 index/src/app/view/admin/admin-category/admin-category.component.less create mode 100644 index/src/app/view/admin/admin-category/admin-category.component.spec.ts create mode 100644 index/src/app/view/admin/admin-category/admin-category.component.ts create mode 100644 index/src/app/view/admin/admin-comment/admin-comment.component.html create mode 100644 index/src/app/view/admin/admin-comment/admin-comment.component.less create mode 100644 index/src/app/view/admin/admin-comment/admin-comment.component.spec.ts create mode 100644 index/src/app/view/admin/admin-comment/admin-comment.component.ts create mode 100644 index/src/app/view/admin/admin-index/admin-index.component.html create mode 100644 index/src/app/view/admin/admin-index/admin-index.component.less create mode 100644 index/src/app/view/admin/admin-index/admin-index.component.spec.ts create mode 100644 index/src/app/view/admin/admin-index/admin-index.component.ts create mode 100644 index/src/app/view/admin/admin-link/admin-link.component.html create mode 100644 index/src/app/view/admin/admin-link/admin-link.component.less create mode 100644 index/src/app/view/admin/admin-link/admin-link.component.spec.ts create mode 100644 index/src/app/view/admin/admin-link/admin-link.component.ts create mode 100644 index/src/app/view/admin/admin-routing.module.ts create mode 100644 index/src/app/view/admin/admin-tag/admin-tag.component.html create mode 100644 index/src/app/view/admin/admin-tag/admin-tag.component.less create mode 100644 index/src/app/view/admin/admin-tag/admin-tag.component.spec.ts create mode 100644 index/src/app/view/admin/admin-tag/admin-tag.component.ts create mode 100644 index/src/app/view/admin/admin-update/admin-update.component.html create mode 100644 index/src/app/view/admin/admin-update/admin-update.component.less create mode 100644 index/src/app/view/admin/admin-update/admin-update.component.spec.ts create mode 100644 index/src/app/view/admin/admin-update/admin-update.component.ts create mode 100644 index/src/app/view/admin/admin-user/admin-user.component.html create mode 100644 index/src/app/view/admin/admin-user/admin-user.component.less create mode 100644 index/src/app/view/admin/admin-user/admin-user.component.spec.ts create mode 100644 index/src/app/view/admin/admin-user/admin-user.component.ts create mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.component.html create mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.component.less create mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.component.spec.ts create mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.component.ts create mode 100644 index/src/app/view/admin/admin-visitor/admin-visitor.component.html create mode 100644 index/src/app/view/admin/admin-visitor/admin-visitor.component.less create mode 100644 index/src/app/view/admin/admin-visitor/admin-visitor.component.spec.ts create mode 100644 index/src/app/view/admin/admin-visitor/admin-visitor.component.ts create mode 100644 index/src/app/view/admin/admin.module.ts diff --git a/index/src/app/app-routing.module.ts b/index/src/app/app-routing.module.ts index 524a3ba..e4746c9 100644 --- a/index/src/app/app-routing.module.ts +++ b/index/src/app/app-routing.module.ts @@ -17,6 +17,7 @@ const routes: Routes = [ path: 'user', loadChildren: () => import('./view/login-registration/login-registration.module') .then(mod => mod.LoginRegistrationModule) }, + {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.module.ts b/index/src/app/app.module.ts index 8aa0b2b..8827d4f 100644 --- a/index/src/app/app.module.ts +++ b/index/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/view/admin/admin-article/admin-article.component.html b/index/src/app/view/admin/admin-article/admin-article.component.html new file mode 100644 index 0000000..90b1616 --- /dev/null +++ b/index/src/app/view/admin/admin-article/admin-article.component.html @@ -0,0 +1 @@ +

admin-article works!

diff --git a/index/src/app/view/admin/admin-article/admin-article.component.less b/index/src/app/view/admin/admin-article/admin-article.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-article/admin-article.component.spec.ts b/index/src/app/view/admin/admin-article/admin-article.component.spec.ts new file mode 100644 index 0000000..0da1a1e --- /dev/null +++ b/index/src/app/view/admin/admin-article/admin-article.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminArticleComponent } from './admin-article.component'; + +describe('AdminArticleComponent', () => { + let component: AdminArticleComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminArticleComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminArticleComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-article/admin-article.component.ts b/index/src/app/view/admin/admin-article/admin-article.component.ts new file mode 100644 index 0000000..51515ed --- /dev/null +++ b/index/src/app/view/admin/admin-article/admin-article.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-article', + templateUrl: './admin-article.component.html', + styleUrls: ['./admin-article.component.less'] +}) +export class AdminArticleComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin-category/admin-category.component.html b/index/src/app/view/admin/admin-category/admin-category.component.html new file mode 100644 index 0000000..bdbf67b --- /dev/null +++ b/index/src/app/view/admin/admin-category/admin-category.component.html @@ -0,0 +1 @@ +

admin-category works!

diff --git a/index/src/app/view/admin/admin-category/admin-category.component.less b/index/src/app/view/admin/admin-category/admin-category.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-category/admin-category.component.spec.ts b/index/src/app/view/admin/admin-category/admin-category.component.spec.ts new file mode 100644 index 0000000..a1220d5 --- /dev/null +++ b/index/src/app/view/admin/admin-category/admin-category.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminCategoryComponent } from './admin-category.component'; + +describe('AdminCategoryComponent', () => { + let component: AdminCategoryComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminCategoryComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminCategoryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-category/admin-category.component.ts b/index/src/app/view/admin/admin-category/admin-category.component.ts new file mode 100644 index 0000000..df2ad45 --- /dev/null +++ b/index/src/app/view/admin/admin-category/admin-category.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-category', + templateUrl: './admin-category.component.html', + styleUrls: ['./admin-category.component.less'] +}) +export class AdminCategoryComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.html b/index/src/app/view/admin/admin-comment/admin-comment.component.html new file mode 100644 index 0000000..e4e9602 --- /dev/null +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.html @@ -0,0 +1 @@ +

admin-comment works!

diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.less b/index/src/app/view/admin/admin-comment/admin-comment.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.spec.ts b/index/src/app/view/admin/admin-comment/admin-comment.component.spec.ts new file mode 100644 index 0000000..8fc0388 --- /dev/null +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminCommentComponent } from './admin-comment.component'; + +describe('AdminCommentComponent', () => { + let component: AdminCommentComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminCommentComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminCommentComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.ts b/index/src/app/view/admin/admin-comment/admin-comment.component.ts new file mode 100644 index 0000000..521c388 --- /dev/null +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-comment', + templateUrl: './admin-comment.component.html', + styleUrls: ['./admin-comment.component.less'] +}) +export class AdminCommentComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin-index/admin-index.component.html b/index/src/app/view/admin/admin-index/admin-index.component.html new file mode 100644 index 0000000..1b00d67 --- /dev/null +++ b/index/src/app/view/admin/admin-index/admin-index.component.html @@ -0,0 +1 @@ +

admin-index works!

diff --git a/index/src/app/view/admin/admin-index/admin-index.component.less b/index/src/app/view/admin/admin-index/admin-index.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-index/admin-index.component.spec.ts b/index/src/app/view/admin/admin-index/admin-index.component.spec.ts new file mode 100644 index 0000000..fb50896 --- /dev/null +++ b/index/src/app/view/admin/admin-index/admin-index.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminIndexComponent } from './admin-index.component'; + +describe('AdminIndexComponent', () => { + let component: AdminIndexComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminIndexComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminIndexComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-index/admin-index.component.ts b/index/src/app/view/admin/admin-index/admin-index.component.ts new file mode 100644 index 0000000..e5366a9 --- /dev/null +++ b/index/src/app/view/admin/admin-index/admin-index.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-index', + templateUrl: './admin-index.component.html', + styleUrls: ['./admin-index.component.less'] +}) +export class AdminIndexComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin-link/admin-link.component.html b/index/src/app/view/admin/admin-link/admin-link.component.html new file mode 100644 index 0000000..b5d07e0 --- /dev/null +++ b/index/src/app/view/admin/admin-link/admin-link.component.html @@ -0,0 +1 @@ +

admin-link works!

diff --git a/index/src/app/view/admin/admin-link/admin-link.component.less b/index/src/app/view/admin/admin-link/admin-link.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-link/admin-link.component.spec.ts b/index/src/app/view/admin/admin-link/admin-link.component.spec.ts new file mode 100644 index 0000000..7342f26 --- /dev/null +++ b/index/src/app/view/admin/admin-link/admin-link.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminLinkComponent } from './admin-link.component'; + +describe('AdminLinkComponent', () => { + let component: AdminLinkComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminLinkComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminLinkComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-link/admin-link.component.ts b/index/src/app/view/admin/admin-link/admin-link.component.ts new file mode 100644 index 0000000..8a6cf9b --- /dev/null +++ b/index/src/app/view/admin/admin-link/admin-link.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-link', + templateUrl: './admin-link.component.html', + styleUrls: ['./admin-link.component.less'] +}) +export class AdminLinkComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin-routing.module.ts b/index/src/app/view/admin/admin-routing.module.ts new file mode 100644 index 0000000..afeadd4 --- /dev/null +++ b/index/src/app/view/admin/admin-routing.module.ts @@ -0,0 +1,36 @@ +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from '@angular/router'; +import {AdminIndexComponent} from './admin-index/admin-index.component'; +import {AdminCommentComponent} from './admin-comment/admin-comment.component'; +import {AdminArticleComponent} from './admin-article/admin-article.component'; +import {AdminCategoryComponent} from './admin-category/admin-category.component'; +import {AdminLinkComponent} from './admin-link/admin-link.component'; +import {AdminTagComponent} from './admin-tag/admin-tag.component'; +import {AdminUpdateComponent} from './admin-update/admin-update.component'; +import {AdminUserComponent} from './admin-user/admin-user.component'; +import {AdminUserinfoComponent} from './admin-userinfo/admin-userinfo.component'; +import {AdminVisitorComponent} from './admin-visitor/admin-visitor.component'; + + +const routes: Routes = [ + {path: '', pathMatch: 'full', component: AdminIndexComponent}, + {path: 'article', component: AdminArticleComponent}, + {path: 'comment', component: AdminCommentComponent}, + {path: 'category', component: AdminCategoryComponent}, + {path: 'link', component: AdminLinkComponent}, + {path: 'tag', component: AdminTagComponent}, + {path: 'update', component: AdminUpdateComponent}, + {path: 'user', component: AdminUserComponent}, + {path: 'userInfo', component: AdminUserinfoComponent}, + {path: 'visitor', component: AdminVisitorComponent}, +]; + +@NgModule({ + imports: [ + RouterModule.forChild(routes) + ], + exports: [RouterModule] +}) + +export class AdminRoutingModule { +} diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.html b/index/src/app/view/admin/admin-tag/admin-tag.component.html new file mode 100644 index 0000000..27cd5d7 --- /dev/null +++ b/index/src/app/view/admin/admin-tag/admin-tag.component.html @@ -0,0 +1 @@ +

admin-tag works!

diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.less b/index/src/app/view/admin/admin-tag/admin-tag.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.spec.ts b/index/src/app/view/admin/admin-tag/admin-tag.component.spec.ts new file mode 100644 index 0000000..8110273 --- /dev/null +++ b/index/src/app/view/admin/admin-tag/admin-tag.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminTagComponent } from './admin-tag.component'; + +describe('AdminTagComponent', () => { + let component: AdminTagComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminTagComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminTagComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.ts b/index/src/app/view/admin/admin-tag/admin-tag.component.ts new file mode 100644 index 0000000..8070fcd --- /dev/null +++ b/index/src/app/view/admin/admin-tag/admin-tag.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-tag', + templateUrl: './admin-tag.component.html', + styleUrls: ['./admin-tag.component.less'] +}) +export class AdminTagComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin-update/admin-update.component.html b/index/src/app/view/admin/admin-update/admin-update.component.html new file mode 100644 index 0000000..6cd743c --- /dev/null +++ b/index/src/app/view/admin/admin-update/admin-update.component.html @@ -0,0 +1 @@ +

admin-update works!

diff --git a/index/src/app/view/admin/admin-update/admin-update.component.less b/index/src/app/view/admin/admin-update/admin-update.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-update/admin-update.component.spec.ts b/index/src/app/view/admin/admin-update/admin-update.component.spec.ts new file mode 100644 index 0000000..dc0aaf0 --- /dev/null +++ b/index/src/app/view/admin/admin-update/admin-update.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminUpdateComponent } from './admin-update.component'; + +describe('AdminUpdateComponent', () => { + let component: AdminUpdateComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminUpdateComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminUpdateComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-update/admin-update.component.ts b/index/src/app/view/admin/admin-update/admin-update.component.ts new file mode 100644 index 0000000..83ce40e --- /dev/null +++ b/index/src/app/view/admin/admin-update/admin-update.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-update', + templateUrl: './admin-update.component.html', + styleUrls: ['./admin-update.component.less'] +}) +export class AdminUpdateComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin-user/admin-user.component.html b/index/src/app/view/admin/admin-user/admin-user.component.html new file mode 100644 index 0000000..d7514d9 --- /dev/null +++ b/index/src/app/view/admin/admin-user/admin-user.component.html @@ -0,0 +1 @@ +

admin-user works!

diff --git a/index/src/app/view/admin/admin-user/admin-user.component.less b/index/src/app/view/admin/admin-user/admin-user.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-user/admin-user.component.spec.ts b/index/src/app/view/admin/admin-user/admin-user.component.spec.ts new file mode 100644 index 0000000..8c56ffd --- /dev/null +++ b/index/src/app/view/admin/admin-user/admin-user.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminUserComponent } from './admin-user.component'; + +describe('AdminUserComponent', () => { + let component: AdminUserComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminUserComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminUserComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-user/admin-user.component.ts b/index/src/app/view/admin/admin-user/admin-user.component.ts new file mode 100644 index 0000000..6c03f9d --- /dev/null +++ b/index/src/app/view/admin/admin-user/admin-user.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-user', + templateUrl: './admin-user.component.html', + styleUrls: ['./admin-user.component.less'] +}) +export class AdminUserComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.html b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.html new file mode 100644 index 0000000..fc404c8 --- /dev/null +++ b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.html @@ -0,0 +1 @@ +

admin-userinfo works!

diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.less b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.spec.ts b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.spec.ts new file mode 100644 index 0000000..f819b19 --- /dev/null +++ b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminUserinfoComponent } from './admin-userinfo.component'; + +describe('AdminUserinfoComponent', () => { + let component: AdminUserinfoComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminUserinfoComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminUserinfoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.ts b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.ts new file mode 100644 index 0000000..3bb27f0 --- /dev/null +++ b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-userinfo', + templateUrl: './admin-userinfo.component.html', + styleUrls: ['./admin-userinfo.component.less'] +}) +export class AdminUserinfoComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.html b/index/src/app/view/admin/admin-visitor/admin-visitor.component.html new file mode 100644 index 0000000..7720c45 --- /dev/null +++ b/index/src/app/view/admin/admin-visitor/admin-visitor.component.html @@ -0,0 +1 @@ +

admin-visitor works!

diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.less b/index/src/app/view/admin/admin-visitor/admin-visitor.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.spec.ts b/index/src/app/view/admin/admin-visitor/admin-visitor.component.spec.ts new file mode 100644 index 0000000..15b7259 --- /dev/null +++ b/index/src/app/view/admin/admin-visitor/admin-visitor.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminVisitorComponent } from './admin-visitor.component'; + +describe('AdminVisitorComponent', () => { + let component: AdminVisitorComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AdminVisitorComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminVisitorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.ts b/index/src/app/view/admin/admin-visitor/admin-visitor.component.ts new file mode 100644 index 0000000..c6df431 --- /dev/null +++ b/index/src/app/view/admin/admin-visitor/admin-visitor.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-admin-visitor', + templateUrl: './admin-visitor.component.html', + styleUrls: ['./admin-visitor.component.less'] +}) +export class AdminVisitorComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/index/src/app/view/admin/admin.module.ts b/index/src/app/view/admin/admin.module.ts new file mode 100644 index 0000000..010b9df --- /dev/null +++ b/index/src/app/view/admin/admin.module.ts @@ -0,0 +1,35 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {AdminRoutingModule} from './admin-routing.module'; +import {AdminIndexComponent} from './admin-index/admin-index.component'; +import {AdminArticleComponent} from './admin-article/admin-article.component'; +import {AdminCategoryComponent} from './admin-category/admin-category.component'; +import {AdminCommentComponent} from './admin-comment/admin-comment.component'; +import {AdminTagComponent} from './admin-tag/admin-tag.component'; +import {AdminLinkComponent} from './admin-link/admin-link.component'; +import {AdminUpdateComponent} from './admin-update/admin-update.component'; +import {AdminUserComponent} from './admin-user/admin-user.component'; +import {AdminUserinfoComponent} from './admin-userinfo/admin-userinfo.component'; +import {AdminVisitorComponent} from './admin-visitor/admin-visitor.component'; + + +@NgModule({ + declarations: [ + AdminIndexComponent, + AdminArticleComponent, + AdminCategoryComponent, + AdminCommentComponent, + AdminTagComponent, + AdminLinkComponent, + AdminUpdateComponent, + AdminUserComponent, + AdminUserinfoComponent, + AdminVisitorComponent + ], + imports: [ + CommonModule, + AdminRoutingModule + ] +}) +export class AdminModule { +} -- 2.49.1 From 6f9eb718ce1d66ddb4085ab18944521d0c42c89e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Thu, 23 Apr 2020 23:18:29 +0800 Subject: [PATCH 02/53] =?UTF-8?q?=E5=B0=86=E7=BB=84=E4=BB=B6=E7=9A=84?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=BA=A4=E7=BB=99=E6=9C=8D=E5=8A=A1=E6=9D=A5?= =?UTF-8?q?=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/app.component.html | 14 +++-- index/src/app/app.component.ts | 4 ++ .../components/footer/footer.component.html | 4 +- .../app/components/footer/footer.component.ts | 14 +---- .../app/components/header/header.component.ts | 18 ++---- .../services/component-state.service.spec.ts | 16 +++++ .../app/services/component-state.service.ts | 61 +++++++++++++++++++ .../app/view/admin/admin-routing.module.ts | 2 +- 8 files changed, 100 insertions(+), 33 deletions(-) create mode 100644 index/src/app/services/component-state.service.spec.ts create mode 100644 index/src/app/services/component-state.service.ts diff --git a/index/src/app/app.component.html b/index/src/app/app.component.html index cffec2c..dee15f6 100644 --- a/index/src/app/app.component.html +++ b/index/src/app/app.component.html @@ -1,11 +1,13 @@ - + + + + + + - - - - + + + + + + + +
+ + + + + + + + + + + + +
+ + diff --git a/index/src/app/components/admin-header/admin-header.component.less b/index/src/app/components/admin-header/admin-header.component.less new file mode 100644 index 0000000..d6794f8 --- /dev/null +++ b/index/src/app/components/admin-header/admin-header.component.less @@ -0,0 +1,44 @@ +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: 20px; + top: 20px; +} + + +#blogTitle, #desc { + display: block; + margin-left: 15px; +} + +#blogTitle { + font-weight: bold; + font-size: 20px; +} + +#desc { + font-size: 10px; +} + diff --git a/index/src/app/components/admin-header/admin-header.component.spec.ts b/index/src/app/components/admin-header/admin-header.component.spec.ts new file mode 100644 index 0000000..33284cb --- /dev/null +++ b/index/src/app/components/admin-header/admin-header.component.spec.ts @@ -0,0 +1,25 @@ +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/index/src/app/components/admin-header/admin-header.component.ts b/index/src/app/components/admin-header/admin-header.component.ts new file mode 100644 index 0000000..e002d25 --- /dev/null +++ b/index/src/app/components/admin-header/admin-header.component.ts @@ -0,0 +1,27 @@ +import {Component, OnInit} from '@angular/core'; +import {UserService} from '../../services/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: UserService) { + } + + user: User + + logout = () => this.userService.logout(); + + ngOnInit(): void { + this.userService.watchUserInfo({ + next: data => this.user = data.result, + error: err => this.user = null, + complete: null + }) + } + +} -- 2.49.1 From f74aca491b9e7e2290597949c68cd854e48bd212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 25 Apr 2020 17:29:29 +0800 Subject: [PATCH 12/53] =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E4=B8=BB=E4=BD=93=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/view/admin/admin.component.html | 105 ++++++++++++++++-- index/src/app/view/admin/admin.component.less | 42 ++++++- index/src/app/view/admin/admin.component.ts | 29 +++-- index/src/app/view/admin/admin.module.ts | 10 +- 4 files changed, 162 insertions(+), 24 deletions(-) diff --git a/index/src/app/view/admin/admin.component.html b/index/src/app/view/admin/admin.component.html index 8a9131c..725b33b 100644 --- a/index/src/app/view/admin/admin.component.html +++ b/index/src/app/view/admin/admin.component.html @@ -1,12 +1,93 @@ -

admin works!

-indec -article -category -comment -link -tag -update -user -userInfo -visitor - + + + +
    +
  • + + 后台首页 +
  • + +
  • + +
  • + +
  • + + 评论管理 +
  • + +
  • + + 标签管理 +
  • + +
  • + + 分类管理 +
  • + +
  • + + 修改信息 +
  • + +
  • + + 用户管理 +
  • + +
  • + + 友链管理 +
  • + +
  • + + 访问管理 +
  • + +
  • + + 更新管理 +
  • + + + +

    别管别人言语

    +

    做最好的自己

    +
    + +

    欢迎来访小海博客

    +
    + +
+
+ + +
+ +
+
+ © 小海博客 - Design by 小海 +
+
+ + + diff --git a/index/src/app/view/admin/admin.component.less b/index/src/app/view/admin/admin.component.less index 04b3e9a..4f07094 100644 --- a/index/src/app/view/admin/admin.component.less +++ b/index/src/app/view/admin/admin.component.less @@ -1,4 +1,40 @@ -a{ - margin: 5px; - padding: 10px; + +.myCard { + width: 180px; + margin-left: 10px; +} + +nz-layout, nz-sider { + 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%; +} + +nz-footer { + text-align: center; +} + +@media only screen and (max-width: 768px) { + nz-content { + margin-left: 10px; + margin-right: 10px; + } } diff --git a/index/src/app/view/admin/admin.component.ts b/index/src/app/view/admin/admin.component.ts index 76def9d..cf2c729 100644 --- a/index/src/app/view/admin/admin.component.ts +++ b/index/src/app/view/admin/admin.component.ts @@ -1,15 +1,30 @@ -import { Component, OnInit } from '@angular/core'; +import {Component, OnInit} from '@angular/core'; +import {UserService} from '../../services/user.service'; +import {User} from '../../class/User'; @Component({ - selector: 'app-admin', - templateUrl: './admin.component.html', - styleUrls: ['./admin.component.less'] + selector: 'app-admin', + templateUrl: './admin.component.html', + styleUrls: ['./admin.component.less'] }) export class AdminComponent implements OnInit { - constructor() { } + constructor(public userService: UserService) { + } - ngOnInit(): void { - } + user: User; + isCollapsed: boolean = false; + + ngOnInit(): void { + this.userService.watchUserInfo({ + complete: () => null, + error: (err) => null, + next: data => { + console.log('更新user') + this.user = data.result + } + } + ) + } } diff --git a/index/src/app/view/admin/admin.module.ts b/index/src/app/view/admin/admin.module.ts index 8f06c5b..97ab26c 100644 --- a/index/src/app/view/admin/admin.module.ts +++ b/index/src/app/view/admin/admin.module.ts @@ -11,11 +11,15 @@ import {AdminUpdateComponent} from './admin-update/admin-update.component'; import {AdminUserComponent} from './admin-user/admin-user.component'; import {AdminUserinfoComponent} from './admin-userinfo/admin-userinfo.component'; import {AdminVisitorComponent} from './admin-visitor/admin-visitor.component'; -import { AdminComponent } from './admin.component'; +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'; @NgModule({ declarations: [ + AdminHeaderComponent, AdminIndexComponent, AdminArticleComponent, AdminCategoryComponent, @@ -30,7 +34,9 @@ import { AdminComponent } from './admin.component'; ], imports: [ CommonModule, - AdminRoutingModule + AdminRoutingModule, + NgZorroAntdModule, + NzSpaceModule ] }) export class AdminModule { -- 2.49.1 From b2709cffd8ff6846be7a4d3931b2bce23c645073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 25 Apr 2020 21:53:57 +0800 Subject: [PATCH 13/53] . --- index/src/app/api/http/http.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index/src/app/api/http/http.service.ts b/index/src/app/api/http/http.service.ts index ecea0d2..f08f30d 100644 --- a/index/src/app/api/http/http.service.ts +++ b/index/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 }; -- 2.49.1 From c40837b1b20cb312250b45fe642f3377d220c056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sun, 26 Apr 2020 08:11:43 +0800 Subject: [PATCH 14/53] =?UTF-8?q?=E5=AE=8C=E5=96=84api=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/api/api.service.ts | 271 +++++++++++++++++++++++++++++- index/src/app/class/Link.ts | 3 +- index/src/app/class/UpdateInfo.ts | 5 + index/src/app/class/User.ts | 5 +- index/src/app/class/Visitor.ts | 9 + 5 files changed, 286 insertions(+), 7 deletions(-) create mode 100644 index/src/app/class/UpdateInfo.ts create mode 100644 index/src/app/class/Visitor.ts diff --git a/index/src/app/api/api.service.ts b/index/src/app/api/api.service.ts index 369d73e..1933630 100644 --- a/index/src/app/api/api.service.ts +++ b/index/src/app/api/api.service.ts @@ -6,7 +6,7 @@ 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'; @@ -14,6 +14,8 @@ import {User} from '../class/User'; import {LoginReq} from '../class/User'; import {LocalStorageService} from '../services/local-storage.service'; +import {Visitor} from '../class/Visitor'; +import {UpdateInfo} from '../class/UpdateInfo'; @Injectable({ providedIn: 'root' @@ -39,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', @@ -50,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', @@ -96,6 +117,30 @@ export class ApiService extends HttpService { }); } + 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({ path: '/tags', @@ -114,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: { @@ -125,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', @@ -172,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', @@ -273,10 +418,105 @@ export class ApiService extends HttpService { }); } - visit() { + 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/del/${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 + } + }); + } + + visit() { + 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', }); } @@ -301,6 +541,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/class/Link.ts b/index/src/app/class/Link.ts index 782ccf6..a44c984 100644 --- a/index/src/app/class/Link.ts +++ b/index/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/UpdateInfo.ts b/index/src/app/class/UpdateInfo.ts new file mode 100644 index 0000000..f937b24 --- /dev/null +++ b/index/src/app/class/UpdateInfo.ts @@ -0,0 +1,5 @@ +export class UpdateInfo { + id: number; + info: string; + time: string; +} diff --git a/index/src/app/class/User.ts b/index/src/app/class/User.ts index 09c84c3..4fe382d 100644 --- a/index/src/app/class/User.ts +++ b/index/src/app/class/User.ts @@ -3,10 +3,11 @@ export class User { email: string; displayName: string; emailStatus: boolean; - avatarImgUrl: string; + avatarImgUrl?: string; desc: string; role: string; token?: string; + pwd?: string; } export class LoginReq { @@ -19,4 +20,4 @@ export class LoginReq { this.isRememberMe = isRememberMe; this.password = password; } -} \ No newline at end of file +} diff --git a/index/src/app/class/Visitor.ts b/index/src/app/class/Visitor.ts new file mode 100644 index 0000000..5e498a5 --- /dev/null +++ b/index/src/app/class/Visitor.ts @@ -0,0 +1,9 @@ +export class Visitor { + id: number; + ip: string; + date: string; + browserName: string; + browserVersion: string; + osname: string; + location: string; +} -- 2.49.1 From 76a9f590b896fd6cba070b98e1e60c9038e312cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Wed, 29 Apr 2020 14:09:02 +0800 Subject: [PATCH 15/53] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=96=87=E7=AB=A0?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-article.component.html | 33 ++++++++++++- .../admin-article/admin-article.component.ts | 47 ++++++++++++++++--- index/src/app/view/admin/admin.component.less | 2 +- index/src/app/view/admin/auth.guard.ts | 4 +- 4 files changed, 76 insertions(+), 10 deletions(-) diff --git a/index/src/app/view/admin/admin-article/admin-article.component.html b/index/src/app/view/admin/admin-article/admin-article.component.html index 90b1616..5df3f55 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.html +++ b/index/src/app/view/admin/admin-article/admin-article.component.html @@ -1 +1,32 @@ -

admin-article works!

+ + + + 标题 + 发布日期 + 更新日期 + 阅读量 + 文章状态 + 管理 + + + + + {{ data.title }} + {{ data.publishDateFormat }} + {{ data.updateDateFormat }} + {{ data.readingNumber }} + + {{ data.open ? '可见' : '不可见' }} + + + 编辑 + + 查看 + + 删除 + + + + diff --git a/index/src/app/view/admin/admin-article/admin-article.component.ts b/index/src/app/view/admin/admin-article/admin-article.component.ts index 51515ed..29dea42 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.ts +++ b/index/src/app/view/admin/admin-article/admin-article.component.ts @@ -1,15 +1,48 @@ -import { Component, OnInit } from '@angular/core'; +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'; @Component({ - selector: 'app-admin-article', - templateUrl: './admin-article.component.html', - styleUrls: ['./admin-article.component.less'] + selector: 'app-admin-article', + templateUrl: './admin-article.component.html', + styleUrls: ['./admin-article.component.less'] }) export class AdminArticleComponent implements OnInit { - constructor() { } + constructor(private apiService: ApiService, private nzMessage: NzMessageService) { + } - ngOnInit(): void { - } + page: number = 1; + pageSize: number = 10; + pageList: PageList
; + + loading: boolean = true; + + ngOnInit(): void { + 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.getArticle(); + }, + complete: () => this.loading = false, + error: err => { + this.nzMessage.error(err.msg) + this.loading = false + } + }) + } } diff --git a/index/src/app/view/admin/admin.component.less b/index/src/app/view/admin/admin.component.less index 4f07094..5d83457 100644 --- a/index/src/app/view/admin/admin.component.less +++ b/index/src/app/view/admin/admin.component.less @@ -5,7 +5,7 @@ } nz-layout, nz-sider { - height: 100%; + min-height: 100%; } .layout { diff --git a/index/src/app/view/admin/auth.guard.ts b/index/src/app/view/admin/auth.guard.ts index 5797d2d..3d0dd03 100644 --- a/index/src/app/view/admin/auth.guard.ts +++ b/index/src/app/view/admin/auth.guard.ts @@ -12,7 +12,9 @@ export class AuthGuard implements CanActivate { constructor(private userService: UserService) { userService.watchUserInfo({ complete: () => null, - error: (err) => null, + error: (err) => { + // 未登录 重定向 + }, next: data => { this.userInfo = data.result console.log(this.path); -- 2.49.1 From dd38eaac543fcfe84254303dfa003192f94906cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Tue, 5 May 2020 21:12:14 +0800 Subject: [PATCH 16/53] =?UTF-8?q?=E5=93=8D=E5=BA=94=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/api/api.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index/src/app/api/api.service.ts b/index/src/app/api/api.service.ts index 1933630..a591d08 100644 --- a/index/src/app/api/api.service.ts +++ b/index/src/app/api/api.service.ts @@ -111,7 +111,7 @@ export class ApiService extends HttpService { } categories() { - return super.Service({ + return super.Service({ path: '/categories', method: 'GET' }); -- 2.49.1 From ce251b12177a82659556b19190355f1ec0306b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Tue, 5 May 2020 21:13:17 +0800 Subject: [PATCH 17/53] Copy files --- index/src/app/utils/dataUtil.ts | 26 +++++ .../services/article/article.service.spec.ts | 12 +++ .../admin/services/article/article.service.ts | 48 +++++++++ .../category/category.service.spec.ts | 12 +++ .../services/category/category.service.ts | 56 +++++++++++ .../services/comment/comment.service.spec.ts | 12 +++ .../admin/services/comment/comment.service.ts | 98 +++++++++++++++++++ .../admin/services/link/link.service.spec.ts | 12 +++ .../view/admin/services/link/link.service.ts | 39 ++++++++ .../admin/services/log/log.service.spec.ts | 12 +++ .../view/admin/services/log/log.service.ts | 22 +++++ .../admin/services/tag/tag.service.spec.ts | 12 +++ .../view/admin/services/tag/tag.service.ts | 43 ++++++++ .../update/web-update.service.spec.ts | 12 +++ .../services/update/web-update.service.ts | 48 +++++++++ .../admin/services/user/user.service.spec.ts | 12 +++ .../view/admin/services/user/user.service.ts | 90 +++++++++++++++++ .../services/visitor/visitor.service.spec.ts | 12 +++ .../admin/services/visitor/visitor.service.ts | 76 ++++++++++++++ 19 files changed, 654 insertions(+) create mode 100644 index/src/app/utils/dataUtil.ts create mode 100644 index/src/app/view/admin/services/article/article.service.spec.ts create mode 100644 index/src/app/view/admin/services/article/article.service.ts create mode 100644 index/src/app/view/admin/services/category/category.service.spec.ts create mode 100644 index/src/app/view/admin/services/category/category.service.ts create mode 100644 index/src/app/view/admin/services/comment/comment.service.spec.ts create mode 100644 index/src/app/view/admin/services/comment/comment.service.ts create mode 100644 index/src/app/view/admin/services/link/link.service.spec.ts create mode 100644 index/src/app/view/admin/services/link/link.service.ts create mode 100644 index/src/app/view/admin/services/log/log.service.spec.ts create mode 100644 index/src/app/view/admin/services/log/log.service.ts create mode 100644 index/src/app/view/admin/services/tag/tag.service.spec.ts create mode 100644 index/src/app/view/admin/services/tag/tag.service.ts create mode 100644 index/src/app/view/admin/services/update/web-update.service.spec.ts create mode 100644 index/src/app/view/admin/services/update/web-update.service.ts create mode 100644 index/src/app/view/admin/services/user/user.service.spec.ts create mode 100644 index/src/app/view/admin/services/user/user.service.ts create mode 100644 index/src/app/view/admin/services/visitor/visitor.service.spec.ts create mode 100644 index/src/app/view/admin/services/visitor/visitor.service.ts diff --git a/index/src/app/utils/dataUtil.ts b/index/src/app/utils/dataUtil.ts new file mode 100644 index 0000000..185f0ea --- /dev/null +++ b/index/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/view/admin/services/article/article.service.spec.ts b/index/src/app/view/admin/services/article/article.service.spec.ts new file mode 100644 index 0000000..f60e5f5 --- /dev/null +++ b/index/src/app/view/admin/services/article/article.service.spec.ts @@ -0,0 +1,12 @@ +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/index/src/app/view/admin/services/article/article.service.ts b/index/src/app/view/admin/services/article/article.service.ts new file mode 100644 index 0000000..6d38494 --- /dev/null +++ b/index/src/app/view/admin/services/article/article.service.ts @@ -0,0 +1,48 @@ +import {Injectable} from '@angular/core'; +import {HttpService} from '../http.service'; +import {PageList} from "../../../../class/HttpReqAndResp"; +import {Article} from "../../../../class/Article"; +import {exist} from "../../../../utils/dataUtil"; + +@Injectable({ + providedIn: 'root' +}) +export class ArticleService { + + + constructor(public http: HttpService) { + } + + // 存储所有已经请求过的数据<首页数据> + pageList: PageList
[] = []; + + currentPage: PageList
; + + /** + * 获取文章 + * @param pageNum 页码数 + * @param pageSize 单页数据量 + */ + getArticle(pageNum: number, pageSize: number) { + 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/index/src/app/view/admin/services/category/category.service.spec.ts b/index/src/app/view/admin/services/category/category.service.spec.ts new file mode 100644 index 0000000..7fd26e6 --- /dev/null +++ b/index/src/app/view/admin/services/category/category.service.spec.ts @@ -0,0 +1,12 @@ +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/index/src/app/view/admin/services/category/category.service.ts b/index/src/app/view/admin/services/category/category.service.ts new file mode 100644 index 0000000..bfc7b9b --- /dev/null +++ b/index/src/app/view/admin/services/category/category.service.ts @@ -0,0 +1,56 @@ +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/index/src/app/view/admin/services/comment/comment.service.spec.ts b/index/src/app/view/admin/services/comment/comment.service.spec.ts new file mode 100644 index 0000000..ec3f811 --- /dev/null +++ b/index/src/app/view/admin/services/comment/comment.service.spec.ts @@ -0,0 +1,12 @@ +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/index/src/app/view/admin/services/comment/comment.service.ts b/index/src/app/view/admin/services/comment/comment.service.ts new file mode 100644 index 0000000..5448ebc --- /dev/null +++ b/index/src/app/view/admin/services/comment/comment.service.ts @@ -0,0 +1,98 @@ +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/index/src/app/view/admin/services/link/link.service.spec.ts b/index/src/app/view/admin/services/link/link.service.spec.ts new file mode 100644 index 0000000..d24d674 --- /dev/null +++ b/index/src/app/view/admin/services/link/link.service.spec.ts @@ -0,0 +1,12 @@ +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/index/src/app/view/admin/services/link/link.service.ts b/index/src/app/view/admin/services/link/link.service.ts new file mode 100644 index 0000000..334900b --- /dev/null +++ b/index/src/app/view/admin/services/link/link.service.ts @@ -0,0 +1,39 @@ +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/index/src/app/view/admin/services/log/log.service.spec.ts b/index/src/app/view/admin/services/log/log.service.spec.ts new file mode 100644 index 0000000..caf56e9 --- /dev/null +++ b/index/src/app/view/admin/services/log/log.service.spec.ts @@ -0,0 +1,12 @@ +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/index/src/app/view/admin/services/log/log.service.ts b/index/src/app/view/admin/services/log/log.service.ts new file mode 100644 index 0000000..6ba2892 --- /dev/null +++ b/index/src/app/view/admin/services/log/log.service.ts @@ -0,0 +1,22 @@ +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/index/src/app/view/admin/services/tag/tag.service.spec.ts b/index/src/app/view/admin/services/tag/tag.service.spec.ts new file mode 100644 index 0000000..4db95b5 --- /dev/null +++ b/index/src/app/view/admin/services/tag/tag.service.spec.ts @@ -0,0 +1,12 @@ +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/index/src/app/view/admin/services/tag/tag.service.ts b/index/src/app/view/admin/services/tag/tag.service.ts new file mode 100644 index 0000000..080a95c --- /dev/null +++ b/index/src/app/view/admin/services/tag/tag.service.ts @@ -0,0 +1,43 @@ +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/index/src/app/view/admin/services/update/web-update.service.spec.ts b/index/src/app/view/admin/services/update/web-update.service.spec.ts new file mode 100644 index 0000000..9d632b7 --- /dev/null +++ b/index/src/app/view/admin/services/update/web-update.service.spec.ts @@ -0,0 +1,12 @@ +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/index/src/app/view/admin/services/update/web-update.service.ts b/index/src/app/view/admin/services/update/web-update.service.ts new file mode 100644 index 0000000..7042a14 --- /dev/null +++ b/index/src/app/view/admin/services/update/web-update.service.ts @@ -0,0 +1,48 @@ +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/index/src/app/view/admin/services/user/user.service.spec.ts b/index/src/app/view/admin/services/user/user.service.spec.ts new file mode 100644 index 0000000..9e7fd1c --- /dev/null +++ b/index/src/app/view/admin/services/user/user.service.spec.ts @@ -0,0 +1,12 @@ +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/index/src/app/view/admin/services/user/user.service.ts b/index/src/app/view/admin/services/user/user.service.ts new file mode 100644 index 0000000..3da2711 --- /dev/null +++ b/index/src/app/view/admin/services/user/user.service.ts @@ -0,0 +1,90 @@ +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/index/src/app/view/admin/services/visitor/visitor.service.spec.ts b/index/src/app/view/admin/services/visitor/visitor.service.spec.ts new file mode 100644 index 0000000..0e96b3e --- /dev/null +++ b/index/src/app/view/admin/services/visitor/visitor.service.spec.ts @@ -0,0 +1,12 @@ +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/index/src/app/view/admin/services/visitor/visitor.service.ts b/index/src/app/view/admin/services/visitor/visitor.service.ts new file mode 100644 index 0000000..2f0937d --- /dev/null +++ b/index/src/app/view/admin/services/visitor/visitor.service.ts @@ -0,0 +1,76 @@ +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; + } + } + } +} -- 2.49.1 From 52f51138cb78a3e054b4e508cbde3d3b706b2053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Tue, 5 May 2020 21:30:19 +0800 Subject: [PATCH 18/53] delete test file --- .../admin/services/article/article.service.spec.ts | 12 ------------ .../admin/services/category/category.service.spec.ts | 12 ------------ .../admin/services/comment/comment.service.spec.ts | 12 ------------ .../view/admin/services/link/link.service.spec.ts | 12 ------------ .../app/view/admin/services/log/log.service.spec.ts | 12 ------------ .../app/view/admin/services/tag/tag.service.spec.ts | 12 ------------ .../admin/services/update/web-update.service.spec.ts | 12 ------------ .../view/admin/services/user/user.service.spec.ts | 12 ------------ .../admin/services/visitor/visitor.service.spec.ts | 12 ------------ 9 files changed, 108 deletions(-) delete mode 100644 index/src/app/view/admin/services/article/article.service.spec.ts delete mode 100644 index/src/app/view/admin/services/category/category.service.spec.ts delete mode 100644 index/src/app/view/admin/services/comment/comment.service.spec.ts delete mode 100644 index/src/app/view/admin/services/link/link.service.spec.ts delete mode 100644 index/src/app/view/admin/services/log/log.service.spec.ts delete mode 100644 index/src/app/view/admin/services/tag/tag.service.spec.ts delete mode 100644 index/src/app/view/admin/services/update/web-update.service.spec.ts delete mode 100644 index/src/app/view/admin/services/user/user.service.spec.ts delete mode 100644 index/src/app/view/admin/services/visitor/visitor.service.spec.ts diff --git a/index/src/app/view/admin/services/article/article.service.spec.ts b/index/src/app/view/admin/services/article/article.service.spec.ts deleted file mode 100644 index f60e5f5..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/category/category.service.spec.ts b/index/src/app/view/admin/services/category/category.service.spec.ts deleted file mode 100644 index 7fd26e6..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/comment/comment.service.spec.ts b/index/src/app/view/admin/services/comment/comment.service.spec.ts deleted file mode 100644 index ec3f811..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/link/link.service.spec.ts b/index/src/app/view/admin/services/link/link.service.spec.ts deleted file mode 100644 index d24d674..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/log/log.service.spec.ts b/index/src/app/view/admin/services/log/log.service.spec.ts deleted file mode 100644 index caf56e9..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/tag/tag.service.spec.ts b/index/src/app/view/admin/services/tag/tag.service.spec.ts deleted file mode 100644 index 4db95b5..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/update/web-update.service.spec.ts b/index/src/app/view/admin/services/update/web-update.service.spec.ts deleted file mode 100644 index 9d632b7..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/user/user.service.spec.ts b/index/src/app/view/admin/services/user/user.service.spec.ts deleted file mode 100644 index 9e7fd1c..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/visitor/visitor.service.spec.ts b/index/src/app/view/admin/services/visitor/visitor.service.spec.ts deleted file mode 100644 index 0e96b3e..0000000 --- a/index/src/app/view/admin/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(); - }); -}); -- 2.49.1 From 349431c1d8758070f3f9ca9187a281971ecf7227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 18:00:15 +0800 Subject: [PATCH 19/53] delete test files --- .../admin-article.component.spec.ts | 25 ------------------- .../admin-category.component.spec.ts | 25 ------------------- .../admin-comment.component.spec.ts | 25 ------------------- .../admin-index/admin-index.component.spec.ts | 25 ------------------- .../admin-link/admin-link.component.spec.ts | 25 ------------------- .../admin-tag/admin-tag.component.spec.ts | 25 ------------------- .../admin-update.component.spec.ts | 25 ------------------- .../admin-user/admin-user.component.spec.ts | 25 ------------------- .../admin-userinfo.component.spec.ts | 25 ------------------- .../admin-visitor.component.spec.ts | 25 ------------------- 10 files changed, 250 deletions(-) delete mode 100644 index/src/app/view/admin/admin-article/admin-article.component.spec.ts delete mode 100644 index/src/app/view/admin/admin-category/admin-category.component.spec.ts delete mode 100644 index/src/app/view/admin/admin-comment/admin-comment.component.spec.ts delete mode 100644 index/src/app/view/admin/admin-index/admin-index.component.spec.ts delete mode 100644 index/src/app/view/admin/admin-link/admin-link.component.spec.ts delete mode 100644 index/src/app/view/admin/admin-tag/admin-tag.component.spec.ts delete mode 100644 index/src/app/view/admin/admin-update/admin-update.component.spec.ts delete mode 100644 index/src/app/view/admin/admin-user/admin-user.component.spec.ts delete mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.component.spec.ts delete mode 100644 index/src/app/view/admin/admin-visitor/admin-visitor.component.spec.ts diff --git a/index/src/app/view/admin/admin-article/admin-article.component.spec.ts b/index/src/app/view/admin/admin-article/admin-article.component.spec.ts deleted file mode 100644 index 0da1a1e..0000000 --- a/index/src/app/view/admin/admin-article/admin-article.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminArticleComponent } from './admin-article.component'; - -describe('AdminArticleComponent', () => { - let component: AdminArticleComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminArticleComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminArticleComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin-category/admin-category.component.spec.ts b/index/src/app/view/admin/admin-category/admin-category.component.spec.ts deleted file mode 100644 index a1220d5..0000000 --- a/index/src/app/view/admin/admin-category/admin-category.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminCategoryComponent } from './admin-category.component'; - -describe('AdminCategoryComponent', () => { - let component: AdminCategoryComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminCategoryComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminCategoryComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.spec.ts b/index/src/app/view/admin/admin-comment/admin-comment.component.spec.ts deleted file mode 100644 index 8fc0388..0000000 --- a/index/src/app/view/admin/admin-comment/admin-comment.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminCommentComponent } from './admin-comment.component'; - -describe('AdminCommentComponent', () => { - let component: AdminCommentComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminCommentComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminCommentComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin-index/admin-index.component.spec.ts b/index/src/app/view/admin/admin-index/admin-index.component.spec.ts deleted file mode 100644 index fb50896..0000000 --- a/index/src/app/view/admin/admin-index/admin-index.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminIndexComponent } from './admin-index.component'; - -describe('AdminIndexComponent', () => { - let component: AdminIndexComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminIndexComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminIndexComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin-link/admin-link.component.spec.ts b/index/src/app/view/admin/admin-link/admin-link.component.spec.ts deleted file mode 100644 index 7342f26..0000000 --- a/index/src/app/view/admin/admin-link/admin-link.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminLinkComponent } from './admin-link.component'; - -describe('AdminLinkComponent', () => { - let component: AdminLinkComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminLinkComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminLinkComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.spec.ts b/index/src/app/view/admin/admin-tag/admin-tag.component.spec.ts deleted file mode 100644 index 8110273..0000000 --- a/index/src/app/view/admin/admin-tag/admin-tag.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminTagComponent } from './admin-tag.component'; - -describe('AdminTagComponent', () => { - let component: AdminTagComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminTagComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminTagComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin-update/admin-update.component.spec.ts b/index/src/app/view/admin/admin-update/admin-update.component.spec.ts deleted file mode 100644 index dc0aaf0..0000000 --- a/index/src/app/view/admin/admin-update/admin-update.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminUpdateComponent } from './admin-update.component'; - -describe('AdminUpdateComponent', () => { - let component: AdminUpdateComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminUpdateComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminUpdateComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin-user/admin-user.component.spec.ts b/index/src/app/view/admin/admin-user/admin-user.component.spec.ts deleted file mode 100644 index 8c56ffd..0000000 --- a/index/src/app/view/admin/admin-user/admin-user.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminUserComponent } from './admin-user.component'; - -describe('AdminUserComponent', () => { - let component: AdminUserComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminUserComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminUserComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.spec.ts b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.spec.ts deleted file mode 100644 index f819b19..0000000 --- a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminUserinfoComponent } from './admin-userinfo.component'; - -describe('AdminUserinfoComponent', () => { - let component: AdminUserinfoComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminUserinfoComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminUserinfoComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.spec.ts b/index/src/app/view/admin/admin-visitor/admin-visitor.component.spec.ts deleted file mode 100644 index 15b7259..0000000 --- a/index/src/app/view/admin/admin-visitor/admin-visitor.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminVisitorComponent } from './admin-visitor.component'; - -describe('AdminVisitorComponent', () => { - let component: AdminVisitorComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminVisitorComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminVisitorComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); -- 2.49.1 From c18c32de98a0d60b221ff6950f1639c2f6f320a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 18:01:36 +0800 Subject: [PATCH 20/53] delete service files --- .../admin/services/article/article.service.ts | 48 --------- .../services/category/category.service.ts | 56 ----------- .../admin/services/comment/comment.service.ts | 98 ------------------- .../view/admin/services/link/link.service.ts | 39 -------- .../view/admin/services/log/log.service.ts | 22 ----- .../view/admin/services/tag/tag.service.ts | 43 -------- .../services/update/web-update.service.ts | 48 --------- .../view/admin/services/user/user.service.ts | 90 ----------------- .../admin/services/visitor/visitor.service.ts | 76 -------------- 9 files changed, 520 deletions(-) delete mode 100644 index/src/app/view/admin/services/article/article.service.ts delete mode 100644 index/src/app/view/admin/services/category/category.service.ts delete mode 100644 index/src/app/view/admin/services/comment/comment.service.ts delete mode 100644 index/src/app/view/admin/services/link/link.service.ts delete mode 100644 index/src/app/view/admin/services/log/log.service.ts delete mode 100644 index/src/app/view/admin/services/tag/tag.service.ts delete mode 100644 index/src/app/view/admin/services/update/web-update.service.ts delete mode 100644 index/src/app/view/admin/services/user/user.service.ts delete mode 100644 index/src/app/view/admin/services/visitor/visitor.service.ts diff --git a/index/src/app/view/admin/services/article/article.service.ts b/index/src/app/view/admin/services/article/article.service.ts deleted file mode 100644 index 6d38494..0000000 --- a/index/src/app/view/admin/services/article/article.service.ts +++ /dev/null @@ -1,48 +0,0 @@ -import {Injectable} from '@angular/core'; -import {HttpService} from '../http.service'; -import {PageList} from "../../../../class/HttpReqAndResp"; -import {Article} from "../../../../class/Article"; -import {exist} from "../../../../utils/dataUtil"; - -@Injectable({ - providedIn: 'root' -}) -export class ArticleService { - - - constructor(public http: HttpService) { - } - - // 存储所有已经请求过的数据<首页数据> - pageList: PageList
[] = []; - - currentPage: PageList
; - - /** - * 获取文章 - * @param pageNum 页码数 - * @param pageSize 单页数据量 - */ - getArticle(pageNum: number, pageSize: number) { - 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/index/src/app/view/admin/services/category/category.service.ts b/index/src/app/view/admin/services/category/category.service.ts deleted file mode 100644 index bfc7b9b..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/comment/comment.service.ts b/index/src/app/view/admin/services/comment/comment.service.ts deleted file mode 100644 index 5448ebc..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/link/link.service.ts b/index/src/app/view/admin/services/link/link.service.ts deleted file mode 100644 index 334900b..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/log/log.service.ts b/index/src/app/view/admin/services/log/log.service.ts deleted file mode 100644 index 6ba2892..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/tag/tag.service.ts b/index/src/app/view/admin/services/tag/tag.service.ts deleted file mode 100644 index 080a95c..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/update/web-update.service.ts b/index/src/app/view/admin/services/update/web-update.service.ts deleted file mode 100644 index 7042a14..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/user/user.service.ts b/index/src/app/view/admin/services/user/user.service.ts deleted file mode 100644 index 3da2711..0000000 --- a/index/src/app/view/admin/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/index/src/app/view/admin/services/visitor/visitor.service.ts b/index/src/app/view/admin/services/visitor/visitor.service.ts deleted file mode 100644 index 2f0937d..0000000 --- a/index/src/app/view/admin/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; - } - } - } -} -- 2.49.1 From d7a0adacb21b05756c35f65adf254f101e8e1938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 18:02:45 +0800 Subject: [PATCH 21/53] =?UTF-8?q?=E6=87=92=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-article/admin-article.module.ts | 16 +++++ .../admin-category/admin-category.module.ts | 16 +++++ .../admin-comment/admin-comment.module.ts | 17 +++++ .../admin/admin-index/admin-index.module.ts | 17 +++++ .../admin/admin-link/admin-link.module.ts | 17 +++++ .../app/view/admin/admin-routing.module.ts | 70 +++++++++++++------ .../view/admin/admin-tag/admin-tag.module.ts | 17 +++++ .../admin/admin-update/admin-update.module.ts | 17 +++++ .../admin/admin-user/admin-user.module.ts | 18 +++++ .../admin-userinfo/admin-userinfo.module.ts | 17 +++++ .../admin-visitor/admin-visitor.module.ts | 17 +++++ index/src/app/view/admin/admin.module.ts | 20 ------ 12 files changed, 219 insertions(+), 40 deletions(-) create mode 100644 index/src/app/view/admin/admin-article/admin-article.module.ts create mode 100644 index/src/app/view/admin/admin-category/admin-category.module.ts create mode 100644 index/src/app/view/admin/admin-comment/admin-comment.module.ts create mode 100644 index/src/app/view/admin/admin-index/admin-index.module.ts create mode 100644 index/src/app/view/admin/admin-link/admin-link.module.ts create mode 100644 index/src/app/view/admin/admin-tag/admin-tag.module.ts create mode 100644 index/src/app/view/admin/admin-update/admin-update.module.ts create mode 100644 index/src/app/view/admin/admin-user/admin-user.module.ts create mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.module.ts create mode 100644 index/src/app/view/admin/admin-visitor/admin-visitor.module.ts diff --git a/index/src/app/view/admin/admin-article/admin-article.module.ts b/index/src/app/view/admin/admin-article/admin-article.module.ts new file mode 100644 index 0000000..9619cad --- /dev/null +++ b/index/src/app/view/admin/admin-article/admin-article.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminArticleComponent} from './admin-article.component'; + +@NgModule({ + declarations: [ + AdminArticleComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminArticleComponent}]) + ] +}) +export class AdminArticleModule { +} diff --git a/index/src/app/view/admin/admin-category/admin-category.module.ts b/index/src/app/view/admin/admin-category/admin-category.module.ts new file mode 100644 index 0000000..e9ca4e4 --- /dev/null +++ b/index/src/app/view/admin/admin-category/admin-category.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminCategoryComponent} from './admin-category.component'; + +@NgModule({ + declarations: [ + AdminCategoryComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminCategoryComponent}]) + ] +}) +export class AdminCategoryModule { +} diff --git a/index/src/app/view/admin/admin-comment/admin-comment.module.ts b/index/src/app/view/admin/admin-comment/admin-comment.module.ts new file mode 100644 index 0000000..d65a619 --- /dev/null +++ b/index/src/app/view/admin/admin-comment/admin-comment.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminCommentComponent} from './admin-comment.component'; + + +@NgModule({ + declarations: [ + AdminCommentComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminCommentComponent}]) + ] +}) +export class AdminCommentModule { +} diff --git a/index/src/app/view/admin/admin-index/admin-index.module.ts b/index/src/app/view/admin/admin-index/admin-index.module.ts new file mode 100644 index 0000000..b14bf1c --- /dev/null +++ b/index/src/app/view/admin/admin-index/admin-index.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminIndexComponent} from './admin-index.component'; + + +@NgModule({ + declarations: [ + AdminIndexComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminIndexComponent}]) + ] +}) +export class AdminIndexModule { +} diff --git a/index/src/app/view/admin/admin-link/admin-link.module.ts b/index/src/app/view/admin/admin-link/admin-link.module.ts new file mode 100644 index 0000000..d873613 --- /dev/null +++ b/index/src/app/view/admin/admin-link/admin-link.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminLinkComponent} from './admin-link.component'; + + +@NgModule({ + declarations: [ + AdminLinkComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminLinkComponent}]) + ] +}) +export class AdminLinkModule { +} diff --git a/index/src/app/view/admin/admin-routing.module.ts b/index/src/app/view/admin/admin-routing.module.ts index 6d63b80..ec277be 100644 --- a/index/src/app/view/admin/admin-routing.module.ts +++ b/index/src/app/view/admin/admin-routing.module.ts @@ -1,15 +1,5 @@ import {NgModule} from '@angular/core'; import {RouterModule, Routes} from '@angular/router'; -import {AdminIndexComponent} from './admin-index/admin-index.component'; -import {AdminCommentComponent} from './admin-comment/admin-comment.component'; -import {AdminArticleComponent} from './admin-article/admin-article.component'; -import {AdminCategoryComponent} from './admin-category/admin-category.component'; -import {AdminLinkComponent} from './admin-link/admin-link.component'; -import {AdminTagComponent} from './admin-tag/admin-tag.component'; -import {AdminUpdateComponent} from './admin-update/admin-update.component'; -import {AdminUserComponent} from './admin-user/admin-user.component'; -import {AdminUserinfoComponent} from './admin-userinfo/admin-userinfo.component'; -import {AdminVisitorComponent} from './admin-visitor/admin-visitor.component'; import {AdminComponent} from './admin.component'; import {AuthGuard} from './auth.guard'; @@ -19,16 +9,56 @@ const routes: Routes = [ path: '', component: AdminComponent, children: [ - {path: 'article', component: AdminArticleComponent, canActivate: [AuthGuard]}, - {path: 'comment', component: AdminCommentComponent, canActivate: [AuthGuard]}, - {path: 'category', component: AdminCategoryComponent, canActivate: [AuthGuard]}, - {path: 'link', component: AdminLinkComponent, canActivate: [AuthGuard]}, - {path: 'tag', component: AdminTagComponent, canActivate: [AuthGuard]}, - {path: 'update', component: AdminUpdateComponent, canActivate: [AuthGuard]}, - {path: 'user', component: AdminUserComponent, canActivate: [AuthGuard]}, - {path: 'userInfo', component: AdminUserinfoComponent, canActivate: [AuthGuard]}, - {path: 'visitor', component: AdminVisitorComponent, canActivate: [AuthGuard]}, - {path: '**', component: AdminIndexComponent, canActivate: [AuthGuard]} + { + 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: 'category', + loadChildren: () => import('./admin-category/admin-category.module').then(mod => mod.AdminCategoryModule), + 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: 'userInfo', + loadChildren: () => import('./admin-userInfo/admin-userInfo.module').then(mod => mod.AdminUserinfoModule), + canActivate: [AuthGuard] + }, + { + path: 'visitor', + loadChildren: () => import('./admin-visitor/admin-visitor.module').then(mod => mod.AdminVisitorModule), + canActivate: [AuthGuard] + }, + { + path: '**', + loadChildren: () => import('./admin-index/admin-index.module').then(mod => mod.AdminIndexModule), + canActivate: [AuthGuard] + } ] } ]; diff --git a/index/src/app/view/admin/admin-tag/admin-tag.module.ts b/index/src/app/view/admin/admin-tag/admin-tag.module.ts new file mode 100644 index 0000000..8c6a40c --- /dev/null +++ b/index/src/app/view/admin/admin-tag/admin-tag.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminTagComponent} from './admin-tag.component'; + + +@NgModule({ + declarations: [ + AdminTagComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminTagComponent}]) + ] +}) +export class AdminTagModule { +} diff --git a/index/src/app/view/admin/admin-update/admin-update.module.ts b/index/src/app/view/admin/admin-update/admin-update.module.ts new file mode 100644 index 0000000..b5b71d9 --- /dev/null +++ b/index/src/app/view/admin/admin-update/admin-update.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminUpdateComponent} from './admin-update.component'; + + +@NgModule({ + declarations: [ + AdminUpdateComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminUpdateComponent}]) + ] +}) +export class AdminUpdateModule { +} diff --git a/index/src/app/view/admin/admin-user/admin-user.module.ts b/index/src/app/view/admin/admin-user/admin-user.module.ts new file mode 100644 index 0000000..febeefe --- /dev/null +++ b/index/src/app/view/admin/admin-user/admin-user.module.ts @@ -0,0 +1,18 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminUserComponent} from './admin-user.component'; + + +@NgModule({ + declarations: [ + AdminUserComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminUserComponent}]) + + ] +}) +export class AdminUserModule { +} diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.module.ts b/index/src/app/view/admin/admin-userinfo/admin-userinfo.module.ts new file mode 100644 index 0000000..d4dbf6b --- /dev/null +++ b/index/src/app/view/admin/admin-userinfo/admin-userinfo.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminUserinfoComponent} from './admin-userinfo.component'; + + +@NgModule({ + declarations: [ + AdminUserinfoComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminUserinfoComponent}]) + ] +}) +export class AdminUserinfoModule { +} diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.module.ts b/index/src/app/view/admin/admin-visitor/admin-visitor.module.ts new file mode 100644 index 0000000..a59493b --- /dev/null +++ b/index/src/app/view/admin/admin-visitor/admin-visitor.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {AdminVisitorComponent} from './admin-visitor.component'; + + +@NgModule({ + declarations: [ + AdminVisitorComponent + ], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminVisitorComponent}]) + ] +}) +export class AdminVisitorModule { +} diff --git a/index/src/app/view/admin/admin.module.ts b/index/src/app/view/admin/admin.module.ts index 97ab26c..7d62c4e 100644 --- a/index/src/app/view/admin/admin.module.ts +++ b/index/src/app/view/admin/admin.module.ts @@ -1,16 +1,6 @@ import {NgModule} from '@angular/core'; import {CommonModule} from '@angular/common'; import {AdminRoutingModule} from './admin-routing.module'; -import {AdminIndexComponent} from './admin-index/admin-index.component'; -import {AdminArticleComponent} from './admin-article/admin-article.component'; -import {AdminCategoryComponent} from './admin-category/admin-category.component'; -import {AdminCommentComponent} from './admin-comment/admin-comment.component'; -import {AdminTagComponent} from './admin-tag/admin-tag.component'; -import {AdminLinkComponent} from './admin-link/admin-link.component'; -import {AdminUpdateComponent} from './admin-update/admin-update.component'; -import {AdminUserComponent} from './admin-user/admin-user.component'; -import {AdminUserinfoComponent} from './admin-userinfo/admin-userinfo.component'; -import {AdminVisitorComponent} from './admin-visitor/admin-visitor.component'; import {AdminComponent} from './admin.component'; import {NgZorroAntdModule} from 'ng-zorro-antd'; import {NzSpaceModule} from 'ng-zorro-antd/space'; @@ -20,16 +10,6 @@ import {AdminHeaderComponent} from '../../components/admin-header/admin-header.c @NgModule({ declarations: [ AdminHeaderComponent, - AdminIndexComponent, - AdminArticleComponent, - AdminCategoryComponent, - AdminCommentComponent, - AdminTagComponent, - AdminLinkComponent, - AdminUpdateComponent, - AdminUserComponent, - AdminUserinfoComponent, - AdminVisitorComponent, AdminComponent ], imports: [ -- 2.49.1 From 6a4775f503d0579b77f53a619811835bbad611e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 18:08:22 +0800 Subject: [PATCH 22/53] . --- .../admin-article.component.html | 32 ------------------- 1 file changed, 32 deletions(-) diff --git a/index/src/app/view/admin/admin-article/admin-article.component.html b/index/src/app/view/admin/admin-article/admin-article.component.html index 5df3f55..e69de29 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.html +++ b/index/src/app/view/admin/admin-article/admin-article.component.html @@ -1,32 +0,0 @@ - - - - 标题 - 发布日期 - 更新日期 - 阅读量 - 文章状态 - 管理 - - - - - {{ data.title }} - {{ data.publishDateFormat }} - {{ data.updateDateFormat }} - {{ data.readingNumber }} - - {{ data.open ? '可见' : '不可见' }} - - - 编辑 - - 查看 - - 删除 - - - - -- 2.49.1 From eb7b3f60224e1311cbdeb6853fab8b5dfa87da75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 19:24:59 +0800 Subject: [PATCH 23/53] =?UTF-8?q?=E6=9B=B4=E5=90=8D=EF=BC=8C=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=B5=8B=E8=AF=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/class/User.ts | 1 + .../services/component-state.service.spec.ts | 16 ------------ ...user.service.ts => global-user.service.ts} | 2 +- .../services/local-storage.service.spec.ts | 12 --------- index/src/app/services/user.service.spec.ts | 16 ------------ .../app/view/admin/admin.component.spec.ts | 25 ------------------- index/src/app/view/admin/auth.guard.spec.ts | 16 ------------ 7 files changed, 2 insertions(+), 86 deletions(-) delete mode 100644 index/src/app/services/component-state.service.spec.ts rename index/src/app/services/{user.service.ts => global-user.service.ts} (99%) delete mode 100644 index/src/app/services/local-storage.service.spec.ts delete mode 100644 index/src/app/services/user.service.spec.ts delete mode 100644 index/src/app/view/admin/admin.component.spec.ts delete mode 100644 index/src/app/view/admin/auth.guard.spec.ts diff --git a/index/src/app/class/User.ts b/index/src/app/class/User.ts index 4fe382d..50395a1 100644 --- a/index/src/app/class/User.ts +++ b/index/src/app/class/User.ts @@ -8,6 +8,7 @@ export class User { role: string; token?: string; pwd?: string; + recentlyLandedDate?: string } export class LoginReq { diff --git a/index/src/app/services/component-state.service.spec.ts b/index/src/app/services/component-state.service.spec.ts deleted file mode 100644 index 72998f5..0000000 --- a/index/src/app/services/component-state.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { ComponentStateService } from './component-state.service'; - -describe('CompentStateService', () => { - let service: ComponentStateService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(ComponentStateService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/index/src/app/services/user.service.ts b/index/src/app/services/global-user.service.ts similarity index 99% rename from index/src/app/services/user.service.ts rename to index/src/app/services/global-user.service.ts index 462e04e..91e287f 100644 --- a/index/src/app/services/user.service.ts +++ b/index/src/app/services/global-user.service.ts @@ -8,7 +8,7 @@ import {LocalStorageService} from './local-storage.service'; @Injectable({ providedIn: 'root' }) -export class UserService { +export class GlobalUserService { constructor(private apiService: ApiService, private localStorageService: LocalStorageService) { 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/services/user.service.spec.ts b/index/src/app/services/user.service.spec.ts deleted file mode 100644 index 3f804c9..0000000 --- a/index/src/app/services/user.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { UserService } from './user.service'; - -describe('UserService', () => { - let service: UserService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(UserService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/admin.component.spec.ts b/index/src/app/view/admin/admin.component.spec.ts deleted file mode 100644 index 72e742f..0000000 --- a/index/src/app/view/admin/admin.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AdminComponent } from './admin.component'; - -describe('AdminComponent', () => { - let component: AdminComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ AdminComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(AdminComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/index/src/app/view/admin/auth.guard.spec.ts b/index/src/app/view/admin/auth.guard.spec.ts deleted file mode 100644 index e362298..0000000 --- a/index/src/app/view/admin/auth.guard.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {TestBed} from '@angular/core/testing'; - -import {AuthGuard} from './auth.guard'; - -describe('AuthGuard', () => { - let guard: AuthGuard; - - beforeEach(() => { - TestBed.configureTestingModule({}); - guard = TestBed.inject(AuthGuard); - }); - - it('should be created', () => { - expect(guard).toBeTruthy(); - }); -}); -- 2.49.1 From a5dcdea130b6b3f081d93c4a7978c6ae741aa6b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 19:26:00 +0800 Subject: [PATCH 24/53] =?UTF-8?q?=E6=9B=B4=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-header/admin-header.component.ts | 8 +++--- .../app/components/header/header.component.ts | 4 +-- index/src/app/view/admin/admin.component.ts | 26 ++++++++++++++++--- index/src/app/view/admin/auth.guard.ts | 4 +-- .../src/app/view/article/article.component.ts | 4 +-- .../components/login/login.component.ts | 4 +-- index/src/app/view/write/write.component.ts | 4 +-- 7 files changed, 38 insertions(+), 16 deletions(-) diff --git a/index/src/app/components/admin-header/admin-header.component.ts b/index/src/app/components/admin-header/admin-header.component.ts index e002d25..17d26a2 100644 --- a/index/src/app/components/admin-header/admin-header.component.ts +++ b/index/src/app/components/admin-header/admin-header.component.ts @@ -1,5 +1,5 @@ -import {Component, OnInit} from '@angular/core'; -import {UserService} from '../../services/user.service'; +import {Component, EventEmitter, OnInit, Output} from '@angular/core'; +import {GlobalUserService} from '../../services/global-user.service'; import {User} from '../../class/User'; @Component({ @@ -9,12 +9,14 @@ import {User} from '../../class/User'; }) export class AdminHeaderComponent implements OnInit { - constructor(private userService: UserService) { + constructor(private userService: GlobalUserService) { } user: User + @Output() infoClicked = new EventEmitter() logout = () => this.userService.logout(); + infoClickedEvent = () => this.infoClicked.emit(); ngOnInit(): void { this.userService.watchUserInfo({ diff --git a/index/src/app/components/header/header.component.ts b/index/src/app/components/header/header.component.ts index 709f805..46c6ebc 100644 --- a/index/src/app/components/header/header.component.ts +++ b/index/src/app/components/header/header.component.ts @@ -4,7 +4,7 @@ import {windowWidthChange} from '../../utils/util'; import {ApiService} from '../../api/api.service'; import {User} from '../../class/User'; import {ComponentStateService} from '../../services/component-state.service'; -import {UserService} from '../../services/user.service'; +import {GlobalUserService} from '../../services/global-user.service'; @Component({ selector: 'app-header', @@ -15,7 +15,7 @@ export class HeaderComponent implements OnInit { constructor(private router: Router, public componentStateService: ComponentStateService, - private userService: UserService) { + private userService: GlobalUserService) { this.pageList = [ {name: '首页', path: '/', icon: 'home', iconType: 'fill', show: true}, {name: '分类', path: '/categories', icon: 'project', iconType: 'fill', show: true}, diff --git a/index/src/app/view/admin/admin.component.ts b/index/src/app/view/admin/admin.component.ts index cf2c729..b6af547 100644 --- a/index/src/app/view/admin/admin.component.ts +++ b/index/src/app/view/admin/admin.component.ts @@ -1,6 +1,7 @@ import {Component, OnInit} from '@angular/core'; -import {UserService} from '../../services/user.service'; +import {GlobalUserService} from '../../services/global-user.service'; import {User} from '../../class/User'; +import {ApiService} from '../../api/api.service'; @Component({ selector: 'app-admin', @@ -9,14 +10,16 @@ import {User} from '../../class/User'; }) export class AdminComponent implements OnInit { - constructor(public userService: UserService) { + constructor(public gUserService: GlobalUserService, private apiService: ApiService) { } user: User; isCollapsed: boolean = false; + infoDrawerVisible: boolean = false; + sayHelloContent: string; ngOnInit(): void { - this.userService.watchUserInfo({ + this.gUserService.watchUserInfo({ complete: () => null, error: (err) => null, next: data => { @@ -25,6 +28,23 @@ export class AdminComponent implements OnInit { } } ) + 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}` + } } + showInfoDrawer() { + this.infoDrawerVisible = !this.infoDrawerVisible; + } } diff --git a/index/src/app/view/admin/auth.guard.ts b/index/src/app/view/admin/auth.guard.ts index 3d0dd03..7010457 100644 --- a/index/src/app/view/admin/auth.guard.ts +++ b/index/src/app/view/admin/auth.guard.ts @@ -2,14 +2,14 @@ import {Injectable} from '@angular/core'; import {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree} from '@angular/router'; import {Observable} from 'rxjs'; import {User} from '../../class/User'; -import {UserService} from '../../services/user.service'; +import {GlobalUserService} from '../../services/global-user.service'; @Injectable({ providedIn: 'root' }) export class AuthGuard implements CanActivate { - constructor(private userService: UserService) { + constructor(private userService: GlobalUserService) { userService.watchUserInfo({ complete: () => null, error: (err) => { diff --git a/index/src/app/view/article/article.component.ts b/index/src/app/view/article/article.component.ts index aadd841..5356071 100644 --- a/index/src/app/view/article/article.component.ts +++ b/index/src/app/view/article/article.component.ts @@ -7,7 +7,7 @@ import {User} from '../../class/User'; import {CommentReq} from '../../class/Comment'; import {PageList} from '../../class/HttpReqAndResp'; import {Comment} from '../../class/Comment'; -import {UserService} from '../../services/user.service'; +import {GlobalUserService} from '../../services/global-user.service'; declare var editormd; declare var $; @@ -21,7 +21,7 @@ export class ArticleComponent implements OnInit { constructor(private activatedRoute: ActivatedRoute, private apiService: ApiService, - private userService: UserService, + private userService: GlobalUserService, private titleService: Title, private router: Router) { this.articleId = +activatedRoute.snapshot.paramMap.get('id'); diff --git a/index/src/app/view/login-registration/components/login/login.component.ts b/index/src/app/view/login-registration/components/login/login.component.ts index d5348a0..5336e13 100644 --- a/index/src/app/view/login-registration/components/login/login.component.ts +++ b/index/src/app/view/login-registration/components/login/login.component.ts @@ -4,7 +4,7 @@ import {LoginReq} from '../../../../class/User'; import {ActivatedRoute, Router} from '@angular/router'; import {LoginRegistrationService} from '../../service/login-registration.service'; import {Title} from '@angular/platform-browser'; -import {UserService} from '../../../../services/user.service'; +import {GlobalUserService} from '../../../../services/global-user.service'; @Component({ selector: 'c-login', @@ -14,7 +14,7 @@ import {UserService} from '../../../../services/user.service'; export class LoginComponent implements OnInit { constructor(private nzMessageService: NzMessageService, - private userService: UserService, + private userService: GlobalUserService, private activatedRoute: ActivatedRoute, private router: Router, private loginRegistrationService: LoginRegistrationService, diff --git a/index/src/app/view/write/write.component.ts b/index/src/app/view/write/write.component.ts index 4995426..716a3bc 100644 --- a/index/src/app/view/write/write.component.ts +++ b/index/src/app/view/write/write.component.ts @@ -7,7 +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 {UserService} from '../../services/user.service'; +import {GlobalUserService} from '../../services/global-user.service'; @Component({ selector: 'view-write', @@ -19,7 +19,7 @@ export class WriteComponent implements OnInit { constructor(private router: Router, private activatedRoute: ActivatedRoute, private apiService: ApiService, - private userService: UserService, + private userService: GlobalUserService, private message: NzMessageService, private titleService: Title) { this.titleService.setTitle('小海博客 | 创作'); -- 2.49.1 From e54726b4e810724ccf8287d9bc65bb1c9d11dce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 19:52:20 +0800 Subject: [PATCH 25/53] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-header/admin-header.component.html | 16 +----- .../admin-header/admin-header.component.less | 5 +- index/src/app/services/global-user.service.ts | 42 ++++++++------ index/src/app/view/admin/admin.component.html | 56 ++++++++++++++++++- index/src/app/view/admin/admin.component.less | 8 +++ index/src/app/view/admin/admin.component.ts | 38 ++++++++++++- index/src/app/view/admin/admin.module.ts | 4 +- 7 files changed, 133 insertions(+), 36 deletions(-) diff --git a/index/src/app/components/admin-header/admin-header.component.html b/index/src/app/components/admin-header/admin-header.component.html index 0fb20c9..2cd9cd6 100644 --- a/index/src/app/components/admin-header/admin-header.component.html +++ b/index/src/app/components/admin-header/admin-header.component.html @@ -10,21 +10,9 @@ -
+
- - - - + {{user.displayName}}
diff --git a/index/src/app/components/admin-header/admin-header.component.less b/index/src/app/components/admin-header/admin-header.component.less index d6794f8..96d0ba1 100644 --- a/index/src/app/components/admin-header/admin-header.component.less +++ b/index/src/app/components/admin-header/admin-header.component.less @@ -23,14 +23,16 @@ a { #landr, #loged { position: absolute; - right: 20px; + right: 60px; top: 20px; + cursor: pointer; } #blogTitle, #desc { display: block; margin-left: 15px; + max-width: 300px; } #blogTitle { @@ -40,5 +42,6 @@ a { #desc { font-size: 10px; + } diff --git a/index/src/app/services/global-user.service.ts b/index/src/app/services/global-user.service.ts index 91e287f..904fa2b 100644 --- a/index/src/app/services/global-user.service.ts +++ b/index/src/app/services/global-user.service.ts @@ -41,22 +41,8 @@ export class GlobalUserService { // 不符合 请求网络数据并更新缓存 // 向订阅者传数据 this.lastRequestTime = Date.now(); - const subscription = 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)); - } - }); + // 获取数据 + const subscription = this.getUserInfoFromServer(); return { unsubscribe() { observer.complete(); @@ -65,6 +51,11 @@ export class GlobalUserService { } } + // 刷新用户信息 + refreshUserInfo(): void { + this.getUserInfoFromServer(); + } + login(loginReq: LoginReq, observer: Observer>) { const oob = new Observable>(o => observer = o); const subscription = this.apiService.login(loginReq).subscribe({ @@ -107,4 +98,23 @@ export class GlobalUserService { } }) } + + 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/view/admin/admin.component.html b/index/src/app/view/admin/admin.component.html index 725b33b..0700ffe 100644 --- a/index/src/app/view/admin/admin.component.html +++ b/index/src/app/view/admin/admin.component.html @@ -1,4 +1,4 @@ - + © 小海博客 - Design by 小海 + +

您最近一次登录是在:

+

{{user.recentlyLandedDate}}

+

+ + + + {{user.email}} + + + + + {{user.displayName}} + + + + + {{user.desc}} + + + + +
+ + +
+ + 邮箱 + + + + + + 昵称 + + + + + + 描述 + + + + +
+
+ + + + {{sayHelloContent}} + + diff --git a/index/src/app/view/admin/admin.component.less b/index/src/app/view/admin/admin.component.less index 5d83457..c609a9d 100644 --- a/index/src/app/view/admin/admin.component.less +++ b/index/src/app/view/admin/admin.component.less @@ -28,6 +28,14 @@ nz-content { height: 100%; } +.icon { + margin-right: 5px; +} +.edit-icon{ + margin-left: 10px; + cursor: pointer; +} + nz-footer { text-align: center; } diff --git a/index/src/app/view/admin/admin.component.ts b/index/src/app/view/admin/admin.component.ts index b6af547..1049c9c 100644 --- a/index/src/app/view/admin/admin.component.ts +++ b/index/src/app/view/admin/admin.component.ts @@ -1,4 +1,6 @@ import {Component, OnInit} from '@angular/core'; +import {FormControl, FormGroup} from '@angular/forms'; +import {NzMessageService} from 'ng-zorro-antd'; import {GlobalUserService} from '../../services/global-user.service'; import {User} from '../../class/User'; import {ApiService} from '../../api/api.service'; @@ -10,13 +12,17 @@ import {ApiService} from '../../api/api.service'; }) export class AdminComponent implements OnInit { - constructor(public gUserService: GlobalUserService, private apiService: ApiService) { + constructor(public gUserService: GlobalUserService, private apiService: ApiService, private messageService: NzMessageService) { } user: User; isCollapsed: boolean = false; infoDrawerVisible: boolean = false; sayHelloContent: string; + editInfoModalVisible: boolean = false; + editInfoFormGroup: FormGroup; + + showInfoDrawer = () => this.infoDrawerVisible = !this.infoDrawerVisible; ngOnInit(): void { this.gUserService.watchUserInfo({ @@ -28,6 +34,15 @@ export class AdminComponent implements OnInit { } } ) + this.editInfoFormGroup = new FormGroup({ + desc: new FormControl(), + displayName: new FormControl(), + email: new FormControl() + }); + this.initHelloWords() + } + + private initHelloWords() { const hours = new Date().getHours(); if (hours < 6) { this.sayHelloContent = `夜深了,注意早点休息哦!${this.user.displayName}` @@ -44,7 +59,24 @@ export class AdminComponent implements OnInit { } } - showInfoDrawer() { - this.infoDrawerVisible = !this.infoDrawerVisible; + showEditInfoModal() { + this.editInfoModalVisible = true; + 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); + }, + complete: null + }); + this.editInfoModalVisible = false; } } diff --git a/index/src/app/view/admin/admin.module.ts b/index/src/app/view/admin/admin.module.ts index 7d62c4e..0ab942c 100644 --- a/index/src/app/view/admin/admin.module.ts +++ b/index/src/app/view/admin/admin.module.ts @@ -5,6 +5,7 @@ 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({ @@ -16,7 +17,8 @@ import {AdminHeaderComponent} from '../../components/admin-header/admin-header.c CommonModule, AdminRoutingModule, NgZorroAntdModule, - NzSpaceModule + NzSpaceModule, + ReactiveFormsModule ] }) export class AdminModule { -- 2.49.1 From b266340ef1306f61ea357382e09f8268978f165a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 20:46:02 +0800 Subject: [PATCH 26/53] =?UTF-8?q?=E5=AE=8C=E5=96=84=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E5=AE=88=E5=8D=AB=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/services/global-user.service.ts | 6 +++-- .../src/app/services/local-storage.service.ts | 4 ++-- .../app/view/admin/admin-routing.module.ts | 1 + index/src/app/view/admin/auth.guard.ts | 22 ++++++++++++++----- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/index/src/app/services/global-user.service.ts b/index/src/app/services/global-user.service.ts index 904fa2b..2955f25 100644 --- a/index/src/app/services/global-user.service.ts +++ b/index/src/app/services/global-user.service.ts @@ -33,7 +33,8 @@ export class GlobalUserService { } if (this.lastRequestTime && Date.now() - this.lastRequestTime < 1000) { return { - unsubscribe() { + unsubscribe: () => { + this.userObserverArray.splice(this.userObserverArray.indexOf(observer), 1); observer.complete(); } } @@ -44,7 +45,8 @@ export class GlobalUserService { // 获取数据 const subscription = this.getUserInfoFromServer(); return { - unsubscribe() { + unsubscribe:()=>{ + this.userObserverArray.splice(this.userObserverArray.indexOf(observer), 1); observer.complete(); subscription.unsubscribe() } diff --git a/index/src/app/services/local-storage.service.ts b/index/src/app/services/local-storage.service.ts index ed2dcb9..8aba216 100644 --- a/index/src/app/services/local-storage.service.ts +++ b/index/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/view/admin/admin-routing.module.ts b/index/src/app/view/admin/admin-routing.module.ts index ec277be..8ad3ba4 100644 --- a/index/src/app/view/admin/admin-routing.module.ts +++ b/index/src/app/view/admin/admin-routing.module.ts @@ -8,6 +8,7 @@ const routes: Routes = [ { path: '', component: AdminComponent, + canActivate: [AuthGuard], children: [ { path: 'article', diff --git a/index/src/app/view/admin/auth.guard.ts b/index/src/app/view/admin/auth.guard.ts index 7010457..3c12748 100644 --- a/index/src/app/view/admin/auth.guard.ts +++ b/index/src/app/view/admin/auth.guard.ts @@ -1,5 +1,5 @@ import {Injectable} from '@angular/core'; -import {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree} from '@angular/router'; +import {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router'; import {Observable} from 'rxjs'; import {User} from '../../class/User'; import {GlobalUserService} from '../../services/global-user.service'; @@ -9,28 +9,36 @@ import {GlobalUserService} from '../../services/global-user.service'; }) export class AuthGuard implements CanActivate { - constructor(private userService: GlobalUserService) { + constructor(private userService: GlobalUserService, private router: Router) { userService.watchUserInfo({ complete: () => null, error: (err) => { - // 未登录 重定向 + // 请求重复 + console.log(err); + if (err.code !== -1) { + this.userInfo = null; + this.router.navigateByUrl(this.loginPath); + } }, next: data => { this.userInfo = data.result - console.log(this.path); - // todo :用户信息更新时 重新判断下path } }) } userInfo: User; private path: string; + private readonly loginPath: string = '/user/login'; canActivate( next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree { const path = state.url.indexOf('?') > 0 ? state.url.substr(0, state.url.indexOf('?')) : state.url; this.path = path + if (path.split('/')[1] === 'admin' && !this.userInfo) { + this.router.navigateByUrl(this.loginPath); + return false; + } switch (path) { case '/admin/article': case '/admin/category': @@ -39,7 +47,9 @@ export class AuthGuard implements CanActivate { case '/admin/update': case '/admin/user': case '/admin/visitor': - if (!this.userInfo || this.userInfo.role !== 'admin') return false; + if (this.userInfo.role !== 'admin') { + return false; + } } return true; } -- 2.49.1 From dd6f85dc623293bbb4de7b50910be46e1ca6fd42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 20:46:13 +0800 Subject: [PATCH 27/53] ... --- index/src/app/view/admin/admin.component.ts | 3 ++- index/src/app/view/admin/admin.module.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/index/src/app/view/admin/admin.component.ts b/index/src/app/view/admin/admin.component.ts index 1049c9c..a626179 100644 --- a/index/src/app/view/admin/admin.component.ts +++ b/index/src/app/view/admin/admin.component.ts @@ -37,7 +37,7 @@ export class AdminComponent implements OnInit { this.editInfoFormGroup = new FormGroup({ desc: new FormControl(), displayName: new FormControl(), - email: new FormControl() + email: new FormControl({value: null, disabled: true}) }); this.initHelloWords() } @@ -74,6 +74,7 @@ export class AdminComponent implements OnInit { }, error: err => { this.messageService.error(err.msg); + this.gUserService.refreshUserInfo(); }, complete: null }); diff --git a/index/src/app/view/admin/admin.module.ts b/index/src/app/view/admin/admin.module.ts index 0ab942c..2e49390 100644 --- a/index/src/app/view/admin/admin.module.ts +++ b/index/src/app/view/admin/admin.module.ts @@ -5,7 +5,7 @@ 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"; +import {ReactiveFormsModule} from '@angular/forms'; @NgModule({ -- 2.49.1 From 6f540acebcaee7a91e6d650aa64ad97155c66cc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Fri, 15 May 2020 21:01:10 +0800 Subject: [PATCH 28/53] delete test files --- index/src/app/api/api.service.spec.ts | 12 ------------ index/src/app/api/http/http.service.spec.ts | 15 --------------- 2 files changed, 27 deletions(-) delete mode 100644 index/src/app/api/api.service.spec.ts delete mode 100644 index/src/app/api/http/http.service.spec.ts 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); - }); -}); -- 2.49.1 From dbc69956d42dea825a42b5d463b7a894fd1634af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 00:32:10 +0800 Subject: [PATCH 29/53] =?UTF-8?q?=E6=96=87=E7=AB=A0=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-article.component.html | 36 +++++++++++++++++++ .../admin-article.component.less | 3 ++ .../admin-article/admin-article.component.ts | 2 +- .../admin-article/admin-article.module.ts | 18 +++++++++- index/src/app/view/admin/admin.component.ts | 1 + index/src/styles.less | 16 +++++++++ 6 files changed, 74 insertions(+), 2 deletions(-) diff --git a/index/src/app/view/admin/admin-article/admin-article.component.html b/index/src/app/view/admin/admin-article/admin-article.component.html index e69de29..035908a 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.html +++ b/index/src/app/view/admin/admin-article/admin-article.component.html @@ -0,0 +1,36 @@ +
+ + + + 标题 + 发布日期 + 更新日期 + 文章类型 + 阅读量 + 是否可见 + 操作 + + + + {{data.title}} + {{data.publishDateFormat}} + {{data.updateDateFormat}} + {{data.original ? '原创' : '转载'}} + {{data.readingNumber}} + + + 编辑 + + 查看 + + 删除 + + + + + +
diff --git a/index/src/app/view/admin/admin-article/admin-article.component.less b/index/src/app/view/admin/admin-article/admin-article.component.less index e69de29..5bfd2a0 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.less +++ b/index/src/app/view/admin/admin-article/admin-article.component.less @@ -0,0 +1,3 @@ +td { + max-width: 200px; +} diff --git a/index/src/app/view/admin/admin-article/admin-article.component.ts b/index/src/app/view/admin/admin-article/admin-article.component.ts index 29dea42..5513091 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.ts +++ b/index/src/app/view/admin/admin-article/admin-article.component.ts @@ -17,7 +17,7 @@ export class AdminArticleComponent implements OnInit { page: number = 1; pageSize: number = 10; - pageList: PageList
; + pageList: PageList
= new PageList
(); loading: boolean = true; diff --git a/index/src/app/view/admin/admin-article/admin-article.module.ts b/index/src/app/view/admin/admin-article/admin-article.module.ts index 9619cad..4664de6 100644 --- a/index/src/app/view/admin/admin-article/admin-article.module.ts +++ b/index/src/app/view/admin/admin-article/admin-article.module.ts @@ -2,6 +2,15 @@ import {NgModule} from '@angular/core'; import {CommonModule} from '@angular/common'; import {RouterModule} from '@angular/router'; import {AdminArticleComponent} from './admin-article.component'; +import {CommonTableModule} from '../components/common-table/common-table.module'; +import { + NzCardModule, + NzDividerModule, + NzPopconfirmModule, + NzTableModule, + NzToolTipModule, + NzTypographyModule +} from 'ng-zorro-antd'; @NgModule({ declarations: [ @@ -9,7 +18,14 @@ import {AdminArticleComponent} from './admin-article.component'; ], imports: [ CommonModule, - RouterModule.forChild([{path: '', component: AdminArticleComponent}]) + RouterModule.forChild([{path: '', component: AdminArticleComponent}]), + CommonTableModule, + NzTableModule, + NzTypographyModule, + NzToolTipModule, + NzCardModule, + NzDividerModule, + NzPopconfirmModule, ] }) export class AdminArticleModule { diff --git a/index/src/app/view/admin/admin.component.ts b/index/src/app/view/admin/admin.component.ts index a626179..b2fe207 100644 --- a/index/src/app/view/admin/admin.component.ts +++ b/index/src/app/view/admin/admin.component.ts @@ -61,6 +61,7 @@ export class AdminComponent implements OnInit { showEditInfoModal() { this.editInfoModalVisible = true; + this.infoDrawerVisible = false; this.editInfoFormGroup.patchValue(this.user); } diff --git a/index/src/styles.less b/index/src/styles.less index 0d60725..0d1c7f8 100644 --- a/index/src/styles.less +++ b/index/src/styles.less @@ -6,3 +6,19 @@ body { background: #ececec; } + +.inner-content { + padding: 10px; +} + +.edit-opt { + +} + +.show-opr { + color: #00aaaa; +} + +.del-opr { + color: red; +} -- 2.49.1 From ea8be8501591ff9bc276949fd24e703b838052b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 00:35:23 +0800 Subject: [PATCH 30/53] . --- index/src/app/view/admin/admin-article/admin-article.module.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/index/src/app/view/admin/admin-article/admin-article.module.ts b/index/src/app/view/admin/admin-article/admin-article.module.ts index 4664de6..84db093 100644 --- a/index/src/app/view/admin/admin-article/admin-article.module.ts +++ b/index/src/app/view/admin/admin-article/admin-article.module.ts @@ -2,7 +2,6 @@ import {NgModule} from '@angular/core'; import {CommonModule} from '@angular/common'; import {RouterModule} from '@angular/router'; import {AdminArticleComponent} from './admin-article.component'; -import {CommonTableModule} from '../components/common-table/common-table.module'; import { NzCardModule, NzDividerModule, @@ -19,7 +18,6 @@ import { imports: [ CommonModule, RouterModule.forChild([{path: '', component: AdminArticleComponent}]), - CommonTableModule, NzTableModule, NzTypographyModule, NzToolTipModule, -- 2.49.1 From bc512d17b0b472c63c7d2f0f86467ec69dbb9bd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 01:59:38 +0800 Subject: [PATCH 31/53] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/api/api.service.ts | 2 +- .../admin-article.component.html | 2 +- .../admin-article/admin-article.component.ts | 2 +- .../app/view/admin/admin-routing.module.ts | 10 +- .../admin/admin-tag/admin-tag.component.html | 89 ++++++++++- .../admin/admin-tag/admin-tag.component.ts | 138 +++++++++++++++++- .../view/admin/admin-tag/admin-tag.module.ts | 19 ++- index/src/app/view/admin/admin.component.html | 10 +- 8 files changed, 250 insertions(+), 22 deletions(-) diff --git a/index/src/app/api/api.service.ts b/index/src/app/api/api.service.ts index a591d08..485fa0c 100644 --- a/index/src/app/api/api.service.ts +++ b/index/src/app/api/api.service.ts @@ -142,7 +142,7 @@ export class ApiService extends HttpService { } tags(pageNumber: number = 1, pageSize: number = 10) { - return super.Service({ + return super.Service>({ path: '/tags', method: 'GET', queryParam: { diff --git a/index/src/app/view/admin/admin-article/admin-article.component.html b/index/src/app/view/admin/admin-article/admin-article.component.html index 035908a..f149e55 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.html +++ b/index/src/app/view/admin/admin-article/admin-article.component.html @@ -1,7 +1,7 @@
标题 diff --git a/index/src/app/view/admin/admin-article/admin-article.component.ts b/index/src/app/view/admin/admin-article/admin-article.component.ts index 5513091..35d239b 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.ts +++ b/index/src/app/view/admin/admin-article/admin-article.component.ts @@ -36,9 +36,9 @@ export class AdminArticleComponent implements OnInit { this.apiService.deleteArticle(id).subscribe({ next: data => { this.nzMessage.success('删除成功') + this.loading = false; this.getArticle(); }, - complete: () => this.loading = false, error: err => { this.nzMessage.error(err.msg) this.loading = false diff --git a/index/src/app/view/admin/admin-routing.module.ts b/index/src/app/view/admin/admin-routing.module.ts index 8ad3ba4..b442849 100644 --- a/index/src/app/view/admin/admin-routing.module.ts +++ b/index/src/app/view/admin/admin-routing.module.ts @@ -20,11 +20,11 @@ const routes: Routes = [ loadChildren: () => import('./admin-comment/admin-comment.module').then(mod => mod.AdminCommentModule), canActivate: [AuthGuard] }, - { - path: 'category', - loadChildren: () => import('./admin-category/admin-category.module').then(mod => mod.AdminCategoryModule), - canActivate: [AuthGuard] - }, + // { + // path: 'category', + // loadChildren: () => import('./admin-category/admin-category.module').then(mod => mod.AdminCategoryModule), + // canActivate: [AuthGuard] + // }, { path: 'link', loadChildren: () => import('./admin-link/admin-link.module').then(mod => mod.AdminLinkModule), diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.html b/index/src/app/view/admin/admin-tag/admin-tag.component.html index 27cd5d7..af06947 100644 --- a/index/src/app/view/admin/admin-tag/admin-tag.component.html +++ b/index/src/app/view/admin/admin-tag/admin-tag.component.html @@ -1 +1,88 @@ -

admin-tag works!

+
+ + + +
+ + + + + +
+ + + 分类名 + 分类文章数量 + 操作 + + + + + {{data.name}} + + + + + + + {{data.articles ? data.articles.length : 0}} + + 编辑 + + 查看 + + 删除 + + + + +
+ + + + 标签名 + 分类文章数量 + 操作 + + + + + {{data.name}} + + + + + + + {{data.articles ? data.articles.length : 0}} + + 编辑 + + 查看 + + 删除 + + + + + +
+
+
+ diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.ts b/index/src/app/view/admin/admin-tag/admin-tag.component.ts index 8070fcd..d169875 100644 --- a/index/src/app/view/admin/admin-tag/admin-tag.component.ts +++ b/index/src/app/view/admin/admin-tag/admin-tag.component.ts @@ -1,15 +1,139 @@ -import { Component, OnInit } from '@angular/core'; +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'; @Component({ - selector: 'app-admin-tag', - templateUrl: './admin-tag.component.html', - styleUrls: ['./admin-tag.component.less'] + selector: 'app-admin-tag', + templateUrl: './admin-tag.component.html', + styleUrls: ['./admin-tag.component.less'] }) export class AdminTagComponent implements OnInit { - constructor() { } + constructor(private apiService: ApiService, private nzMessageService: NzMessageService) { + } - ngOnInit(): void { - } + 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.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/index/src/app/view/admin/admin-tag/admin-tag.module.ts b/index/src/app/view/admin/admin-tag/admin-tag.module.ts index 8c6a40c..7797fb7 100644 --- a/index/src/app/view/admin/admin-tag/admin-tag.module.ts +++ b/index/src/app/view/admin/admin-tag/admin-tag.module.ts @@ -2,6 +2,14 @@ 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, +} from 'ng-zorro-antd'; +import {FormsModule} from '@angular/forms'; @NgModule({ @@ -10,7 +18,16 @@ import {AdminTagComponent} from './admin-tag.component'; ], imports: [ CommonModule, - RouterModule.forChild([{path: '', component: AdminTagComponent}]) + RouterModule.forChild([{path: '', component: AdminTagComponent}]), + NzCardModule, + NzTableModule, + NzDividerModule, + NzInputModule, + FormsModule, + NzTabsModule, + NzPopconfirmModule, + NzButtonModule, + NzIconModule, ] }) export class AdminTagModule { diff --git a/index/src/app/view/admin/admin.component.html b/index/src/app/view/admin/admin.component.html index 0700ffe..4d741ae 100644 --- a/index/src/app/view/admin/admin.component.html +++ b/index/src/app/view/admin/admin.component.html @@ -35,13 +35,13 @@
  • - 标签管理 + 分类标签管理
  • -
  • - - 分类管理 -
  • + + + +
  • -- 2.49.1 From 035966e5e7f18715de5f89f11731d50b41e47a36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 02:01:50 +0800 Subject: [PATCH 32/53] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=97=A0=E6=95=88?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-category.component.html | 1 - .../admin-category.component.less | 0 .../admin-category/admin-category.component.ts | 15 --------------- .../admin-category/admin-category.module.ts | 16 ---------------- .../src/app/view/admin/admin-routing.module.ts | 10 ---------- .../admin-userinfo.component.html | 1 - .../admin-userinfo.component.less | 0 .../admin-userinfo/admin-userinfo.component.ts | 15 --------------- .../admin-userinfo/admin-userinfo.module.ts | 17 ----------------- 9 files changed, 75 deletions(-) delete mode 100644 index/src/app/view/admin/admin-category/admin-category.component.html delete mode 100644 index/src/app/view/admin/admin-category/admin-category.component.less delete mode 100644 index/src/app/view/admin/admin-category/admin-category.component.ts delete mode 100644 index/src/app/view/admin/admin-category/admin-category.module.ts delete mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.component.html delete mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.component.less delete mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.component.ts delete mode 100644 index/src/app/view/admin/admin-userinfo/admin-userinfo.module.ts diff --git a/index/src/app/view/admin/admin-category/admin-category.component.html b/index/src/app/view/admin/admin-category/admin-category.component.html deleted file mode 100644 index bdbf67b..0000000 --- a/index/src/app/view/admin/admin-category/admin-category.component.html +++ /dev/null @@ -1 +0,0 @@ -

    admin-category works!

    diff --git a/index/src/app/view/admin/admin-category/admin-category.component.less b/index/src/app/view/admin/admin-category/admin-category.component.less deleted file mode 100644 index e69de29..0000000 diff --git a/index/src/app/view/admin/admin-category/admin-category.component.ts b/index/src/app/view/admin/admin-category/admin-category.component.ts deleted file mode 100644 index df2ad45..0000000 --- a/index/src/app/view/admin/admin-category/admin-category.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-admin-category', - templateUrl: './admin-category.component.html', - styleUrls: ['./admin-category.component.less'] -}) -export class AdminCategoryComponent implements OnInit { - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/index/src/app/view/admin/admin-category/admin-category.module.ts b/index/src/app/view/admin/admin-category/admin-category.module.ts deleted file mode 100644 index e9ca4e4..0000000 --- a/index/src/app/view/admin/admin-category/admin-category.module.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {NgModule} from '@angular/core'; -import {CommonModule} from '@angular/common'; -import {RouterModule} from '@angular/router'; -import {AdminCategoryComponent} from './admin-category.component'; - -@NgModule({ - declarations: [ - AdminCategoryComponent - ], - imports: [ - CommonModule, - RouterModule.forChild([{path: '', component: AdminCategoryComponent}]) - ] -}) -export class AdminCategoryModule { -} diff --git a/index/src/app/view/admin/admin-routing.module.ts b/index/src/app/view/admin/admin-routing.module.ts index b442849..c5d2359 100644 --- a/index/src/app/view/admin/admin-routing.module.ts +++ b/index/src/app/view/admin/admin-routing.module.ts @@ -20,11 +20,6 @@ const routes: Routes = [ loadChildren: () => import('./admin-comment/admin-comment.module').then(mod => mod.AdminCommentModule), canActivate: [AuthGuard] }, - // { - // path: 'category', - // loadChildren: () => import('./admin-category/admin-category.module').then(mod => mod.AdminCategoryModule), - // canActivate: [AuthGuard] - // }, { path: 'link', loadChildren: () => import('./admin-link/admin-link.module').then(mod => mod.AdminLinkModule), @@ -45,11 +40,6 @@ const routes: Routes = [ loadChildren: () => import('./admin-user/admin-user.module').then(mod => mod.AdminUserModule), canActivate: [AuthGuard] }, - { - path: 'userInfo', - loadChildren: () => import('./admin-userInfo/admin-userInfo.module').then(mod => mod.AdminUserinfoModule), - canActivate: [AuthGuard] - }, { path: 'visitor', loadChildren: () => import('./admin-visitor/admin-visitor.module').then(mod => mod.AdminVisitorModule), diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.html b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.html deleted file mode 100644 index fc404c8..0000000 --- a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.html +++ /dev/null @@ -1 +0,0 @@ -

    admin-userinfo works!

    diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.less b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.less deleted file mode 100644 index e69de29..0000000 diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.ts b/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.ts deleted file mode 100644 index 3bb27f0..0000000 --- a/index/src/app/view/admin/admin-userinfo/admin-userinfo.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-admin-userinfo', - templateUrl: './admin-userinfo.component.html', - styleUrls: ['./admin-userinfo.component.less'] -}) -export class AdminUserinfoComponent implements OnInit { - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/index/src/app/view/admin/admin-userinfo/admin-userinfo.module.ts b/index/src/app/view/admin/admin-userinfo/admin-userinfo.module.ts deleted file mode 100644 index d4dbf6b..0000000 --- a/index/src/app/view/admin/admin-userinfo/admin-userinfo.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {NgModule} from '@angular/core'; -import {CommonModule} from '@angular/common'; -import {RouterModule} from '@angular/router'; -import {AdminUserinfoComponent} from './admin-userinfo.component'; - - -@NgModule({ - declarations: [ - AdminUserinfoComponent - ], - imports: [ - CommonModule, - RouterModule.forChild([{path: '', component: AdminUserinfoComponent}]) - ] -}) -export class AdminUserinfoModule { -} -- 2.49.1 From 441b5c9d10aea11346f98419f0e537f8f9179c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 13:34:54 +0800 Subject: [PATCH 33/53] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/admin-article/admin-article.component.html | 9 +++++++-- .../view/admin/admin-article/admin-article.component.ts | 4 +++- .../app/view/admin/admin-article/admin-article.module.ts | 3 ++- .../app/view/admin/admin-tag/admin-tag.component.html | 8 ++++++-- .../src/app/view/admin/admin-tag/admin-tag.component.ts | 4 +++- index/src/app/view/admin/admin-tag/admin-tag.module.ts | 3 ++- 6 files changed, 23 insertions(+), 8 deletions(-) diff --git a/index/src/app/view/admin/admin-article/admin-article.component.html b/index/src/app/view/admin/admin-article/admin-article.component.html index f149e55..ef9c6c9 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.html +++ b/index/src/app/view/admin/admin-article/admin-article.component.html @@ -18,8 +18,13 @@ nz-tooltip>{{data.title}} {{data.publishDateFormat}} {{data.updateDateFormat}} - {{data.original ? '原创' : '转载'}} - {{data.readingNumber}} + + 原创 + 转载 + + + {{data.readingNumber}} + 编辑 diff --git a/index/src/app/view/admin/admin-article/admin-article.component.ts b/index/src/app/view/admin/admin-article/admin-article.component.ts index 35d239b..59d37c3 100644 --- a/index/src/app/view/admin/admin-article/admin-article.component.ts +++ b/index/src/app/view/admin/admin-article/admin-article.component.ts @@ -3,6 +3,7 @@ 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', @@ -11,7 +12,7 @@ import {Article} from '../../../class/Article'; }) export class AdminArticleComponent implements OnInit { - constructor(private apiService: ApiService, private nzMessage: NzMessageService) { + constructor(private apiService: ApiService, private nzMessage: NzMessageService, private title: Title) { } page: number = 1; @@ -22,6 +23,7 @@ export class AdminArticleComponent implements OnInit { loading: boolean = true; ngOnInit(): void { + this.title.setTitle('小海博客 | 文章管理') this.getArticle(); } diff --git a/index/src/app/view/admin/admin-article/admin-article.module.ts b/index/src/app/view/admin/admin-article/admin-article.module.ts index 84db093..2e1e461 100644 --- a/index/src/app/view/admin/admin-article/admin-article.module.ts +++ b/index/src/app/view/admin/admin-article/admin-article.module.ts @@ -6,7 +6,7 @@ import { NzCardModule, NzDividerModule, NzPopconfirmModule, - NzTableModule, + NzTableModule, NzTagModule, NzToolTipModule, NzTypographyModule } from 'ng-zorro-antd'; @@ -24,6 +24,7 @@ import { NzCardModule, NzDividerModule, NzPopconfirmModule, + NzTagModule, ] }) export class AdminArticleModule { diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.html b/index/src/app/view/admin/admin-tag/admin-tag.component.html index af06947..aab61b7 100644 --- a/index/src/app/view/admin/admin-tag/admin-tag.component.html +++ b/index/src/app/view/admin/admin-tag/admin-tag.component.html @@ -34,7 +34,9 @@ - {{data.articles ? data.articles.length : 0}} + + {{data.articles ? data.articles.length : 0}} + 编辑 @@ -69,7 +71,9 @@ - {{data.articles ? data.articles.length : 0}} + + {{data.articles ? data.articles.length : 0}} + 编辑 diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.ts b/index/src/app/view/admin/admin-tag/admin-tag.component.ts index d169875..04cba13 100644 --- a/index/src/app/view/admin/admin-tag/admin-tag.component.ts +++ b/index/src/app/view/admin/admin-tag/admin-tag.component.ts @@ -3,6 +3,7 @@ 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', @@ -11,7 +12,7 @@ import {PageList} from '../../../class/HttpReqAndResp'; }) export class AdminTagComponent implements OnInit { - constructor(private apiService: ApiService, private nzMessageService: NzMessageService) { + constructor(private apiService: ApiService, private nzMessageService: NzMessageService, private title: Title) { } loading: boolean = true; @@ -30,6 +31,7 @@ export class AdminTagComponent implements OnInit { ngOnInit(): void { + this.title.setTitle('小海博客 | 标签分类管理') this.getCategory(); this.getTag(); } diff --git a/index/src/app/view/admin/admin-tag/admin-tag.module.ts b/index/src/app/view/admin/admin-tag/admin-tag.module.ts index 7797fb7..2595bc1 100644 --- a/index/src/app/view/admin/admin-tag/admin-tag.module.ts +++ b/index/src/app/view/admin/admin-tag/admin-tag.module.ts @@ -7,7 +7,7 @@ import { NzCardModule, NzDividerModule, NzIconModule, NzInputModule, NzPopconfirmModule, - NzTableModule, NzTabsModule, + NzTableModule, NzTabsModule, NzTagModule, } from 'ng-zorro-antd'; import {FormsModule} from '@angular/forms'; @@ -28,6 +28,7 @@ import {FormsModule} from '@angular/forms'; NzPopconfirmModule, NzButtonModule, NzIconModule, + NzTagModule, ] }) export class AdminTagModule { -- 2.49.1 From 61d9d8949caa4c762bd23481a7c8c44d5ec4af5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 14:46:43 +0800 Subject: [PATCH 34/53] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E9=99=90=E5=88=B6=E6=97=B6=E9=97=B4=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/services/global-user.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index/src/app/services/global-user.service.ts b/index/src/app/services/global-user.service.ts index 2955f25..2215a44 100644 --- a/index/src/app/services/global-user.service.ts +++ b/index/src/app/services/global-user.service.ts @@ -31,7 +31,7 @@ export class GlobalUserService { } } } - if (this.lastRequestTime && Date.now() - this.lastRequestTime < 1000) { + if (this.lastRequestTime && Date.now() - this.lastRequestTime < 500) { return { unsubscribe: () => { this.userObserverArray.splice(this.userObserverArray.indexOf(observer), 1); -- 2.49.1 From 1930fe2f76bc7218808caa0cc03566a0797ea39f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 14:47:38 +0800 Subject: [PATCH 35/53] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E5=AE=88=E5=8D=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/view/admin/admin.component.html | 18 ++--- index/src/app/view/admin/admin.component.ts | 20 +++--- index/src/app/view/admin/auth.guard.ts | 66 +++++++++++-------- 3 files changed, 57 insertions(+), 47 deletions(-) diff --git a/index/src/app/view/admin/admin.component.html b/index/src/app/view/admin/admin.component.html index 4d741ae..6db67a4 100644 --- a/index/src/app/view/admin/admin.component.html +++ b/index/src/app/view/admin/admin.component.html @@ -38,15 +38,15 @@ 分类标签管理
  • - - - - + + + + -
  • - - 修改信息 -
  • + + + +
  • @@ -89,7 +89,7 @@ + [nzTitle]="sayHelloTemp" (nzOnClose)="infoDrawerVisible = false" >

    您最近一次登录是在:

    {{user.recentlyLandedDate}}



    diff --git a/index/src/app/view/admin/admin.component.ts b/index/src/app/view/admin/admin.component.ts index b2fe207..d1c3602 100644 --- a/index/src/app/view/admin/admin.component.ts +++ b/index/src/app/view/admin/admin.component.ts @@ -13,6 +13,16 @@ import {ApiService} from '../../api/api.service'; export class AdminComponent implements OnInit { constructor(public gUserService: GlobalUserService, private apiService: ApiService, private messageService: NzMessageService) { + this.gUserService.watchUserInfo({ + complete: () => null, + error: (err) => null, + next: data => { + console.log('更新user') + this.user = data.result + this.initHelloWords() + } + } + ) } user: User; @@ -25,21 +35,11 @@ export class AdminComponent implements OnInit { showInfoDrawer = () => this.infoDrawerVisible = !this.infoDrawerVisible; ngOnInit(): void { - this.gUserService.watchUserInfo({ - complete: () => null, - error: (err) => null, - next: data => { - console.log('更新user') - this.user = data.result - } - } - ) this.editInfoFormGroup = new FormGroup({ desc: new FormControl(), displayName: new FormControl(), email: new FormControl({value: null, disabled: true}) }); - this.initHelloWords() } private initHelloWords() { diff --git a/index/src/app/view/admin/auth.guard.ts b/index/src/app/view/admin/auth.guard.ts index 3c12748..fb7cd72 100644 --- a/index/src/app/view/admin/auth.guard.ts +++ b/index/src/app/view/admin/auth.guard.ts @@ -1,6 +1,6 @@ import {Injectable} from '@angular/core'; import {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router} from '@angular/router'; -import {Observable} from 'rxjs'; +import {Observable, Observer} from 'rxjs'; import {User} from '../../class/User'; import {GlobalUserService} from '../../services/global-user.service'; @@ -10,48 +10,58 @@ import {GlobalUserService} from '../../services/global-user.service'; export class AuthGuard implements CanActivate { constructor(private userService: GlobalUserService, private router: Router) { - userService.watchUserInfo({ - complete: () => null, - error: (err) => { - // 请求重复 - console.log(err); - if (err.code !== -1) { - this.userInfo = null; - this.router.navigateByUrl(this.loginPath); - } - }, - next: data => { - this.userInfo = data.result - } - }) + this.userService.refreshUserInfo(); } userInfo: User; private path: string; private readonly loginPath: string = '/user/login'; + private observable: Observable; - canActivate( - next: ActivatedRouteSnapshot, - state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree { - const path = state.url.indexOf('?') > 0 ? state.url.substr(0, state.url.indexOf('?')) : state.url; - this.path = path - if (path.split('/')[1] === 'admin' && !this.userInfo) { - this.router.navigateByUrl(this.loginPath); - return false; - } - switch (path) { + canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { + this.path = state.url.indexOf('?') > 0 ? state.url.substr(0, state.url.indexOf('?')) : state.url; + 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/category': case '/admin/link': case '/admin/tag': case '/admin/update': case '/admin/user': case '/admin/visitor': if (this.userInfo.role !== 'admin') { - return false; + observer.next(false) + return; } } - return true; + observer.next(true); } } -- 2.49.1 From 4571d52e5d8c232e3cf6602d5c33cdb7e0cfb914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 15:41:20 +0800 Subject: [PATCH 36/53] =?UTF-8?q?=E8=AF=84=E8=AE=BA=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/class/Comment.ts | 3 +- .../admin-comment.component.html | 41 +++++++++- .../admin-comment.component.less | 3 + .../admin-comment/admin-comment.component.ts | 76 +++++++++++++++++-- .../admin-comment/admin-comment.module.ts | 22 +++++- index/src/app/view/admin/auth.guard.ts | 2 +- 6 files changed, 136 insertions(+), 11 deletions(-) diff --git a/index/src/app/class/Comment.ts b/index/src/app/class/Comment.ts index 3637817..449e558 100644 --- a/index/src/app/class/Comment.ts +++ b/index/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/view/admin/admin-comment/admin-comment.component.html b/index/src/app/view/admin/admin-comment/admin-comment.component.html index e4e9602..1cdd02d 100644 --- a/index/src/app/view/admin/admin-comment/admin-comment.component.html +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.html @@ -1 +1,40 @@ -

    admin-comment works!

    +
    + + + + 文章标题 + 评论内容 + 评论日期 + 操作 + + + + {{data.articleTitle}} + + {{data.content}} + + + + + + + {{data.date}} + + 编辑 + + 删除 + + + + + +
    + diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.less b/index/src/app/view/admin/admin-comment/admin-comment.component.less index e69de29..35aa4ab 100644 --- a/index/src/app/view/admin/admin-comment/admin-comment.component.less +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.less @@ -0,0 +1,3 @@ +td { + max-width: 300px; +} diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.ts b/index/src/app/view/admin/admin-comment/admin-comment.component.ts index 521c388..c7804f3 100644 --- a/index/src/app/view/admin/admin-comment/admin-comment.component.ts +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.ts @@ -1,15 +1,77 @@ -import { Component, OnInit } from '@angular/core'; +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'; @Component({ - selector: 'app-admin-comment', - templateUrl: './admin-comment.component.html', - styleUrls: ['./admin-comment.component.less'] + selector: 'app-admin-comment', + templateUrl: './admin-comment.component.html', + styleUrls: ['./admin-comment.component.less'] }) export class AdminCommentComponent implements OnInit { - constructor() { } + constructor(private apiService: ApiService, private messageService: NzMessageService) { + } - ngOnInit(): void { - } + loading: boolean = true; + pageIndex: number = 1; + pageSize: number = 10; + pageList: PageList = new PageList(); + editInfo = { + id: null, + content: new CommentReq(true), + editFocus: false, + } + ngOnInit(): void { + this.getComment(); + } + + getComment = () => this.apiService.getCommentByTypeForAdmin(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.success(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/index/src/app/view/admin/admin-comment/admin-comment.module.ts b/index/src/app/view/admin/admin-comment/admin-comment.module.ts index d65a619..b070182 100644 --- a/index/src/app/view/admin/admin-comment/admin-comment.module.ts +++ b/index/src/app/view/admin/admin-comment/admin-comment.module.ts @@ -2,6 +2,16 @@ 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({ @@ -10,7 +20,17 @@ import {AdminCommentComponent} from './admin-comment.component'; ], imports: [ CommonModule, - RouterModule.forChild([{path: '', component: AdminCommentComponent}]) + RouterModule.forChild([{path: '', component: AdminCommentComponent}]), + NzCardModule, + NzTableModule, + NzDividerModule, + NzPopconfirmModule, + NzTypographyModule, + NzToolTipModule, + NzInputModule, + FormsModule, + NzIconModule, + NzButtonModule ] }) export class AdminCommentModule { diff --git a/index/src/app/view/admin/auth.guard.ts b/index/src/app/view/admin/auth.guard.ts index fb7cd72..e0ec194 100644 --- a/index/src/app/view/admin/auth.guard.ts +++ b/index/src/app/view/admin/auth.guard.ts @@ -10,7 +10,7 @@ import {GlobalUserService} from '../../services/global-user.service'; export class AuthGuard implements CanActivate { constructor(private userService: GlobalUserService, private router: Router) { - this.userService.refreshUserInfo(); + // this.userService.refreshUserInfo(); } userInfo: User; -- 2.49.1 From 05143da5e2fb8e33a6230c59308be5635f8e3d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 16:25:22 +0800 Subject: [PATCH 37/53] =?UTF-8?q?=E5=8F=8B=E9=93=BE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-comment/admin-comment.component.ts | 2 +- .../admin-link/admin-link.component.html | 63 ++++++++++++- .../admin/admin-link/admin-link.component.ts | 90 +++++++++++++++++-- .../admin/admin-link/admin-link.module.ts | 22 ++++- 4 files changed, 167 insertions(+), 10 deletions(-) diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.ts b/index/src/app/view/admin/admin-comment/admin-comment.component.ts index c7804f3..c17b567 100644 --- a/index/src/app/view/admin/admin-comment/admin-comment.component.ts +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.ts @@ -43,7 +43,7 @@ export class AdminCommentComponent implements OnInit { }, error: err => { this.loading = false; - this.messageService.success(err.msg); + this.messageService.error(err.msg); }, complete: () => this.loading = false }) diff --git a/index/src/app/view/admin/admin-link/admin-link.component.html b/index/src/app/view/admin/admin-link/admin-link.component.html index b5d07e0..8ce023f 100644 --- a/index/src/app/view/admin/admin-link/admin-link.component.html +++ b/index/src/app/view/admin/admin-link/admin-link.component.html @@ -1 +1,62 @@ -

    admin-link works!

    +
    + + + + + 友链名称 + 友链地址 + 是否可见 + 操作 + + + + {{data.name}} + {{data.url}} + + + + + 编辑 + + 删除 + + + + + +
    + + +
    + + 网站名称 + + + + + + 网站链接 + + + +
    网站链接不可为空
    +
    网站链接格式不正确
    +
    +
    +
    +
    + + 是否公开 + + + + + + + +
    +
    diff --git a/index/src/app/view/admin/admin-link/admin-link.component.ts b/index/src/app/view/admin/admin-link/admin-link.component.ts index 8a6cf9b..ec3fd0b 100644 --- a/index/src/app/view/admin/admin-link/admin-link.component.ts +++ b/index/src/app/view/admin/admin-link/admin-link.component.ts @@ -1,15 +1,91 @@ -import { Component, OnInit } from '@angular/core'; +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'] + selector: 'app-admin-link', + templateUrl: './admin-link.component.html', + styleUrls: ['./admin-link.component.less'] }) export class AdminLinkComponent implements OnInit { - constructor() { } + 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) + }) + } - ngOnInit(): void { - } + 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/index/src/app/view/admin/admin-link/admin-link.module.ts b/index/src/app/view/admin/admin-link/admin-link.module.ts index d873613..961d6e4 100644 --- a/index/src/app/view/admin/admin-link/admin-link.module.ts +++ b/index/src/app/view/admin/admin-link/admin-link.module.ts @@ -2,6 +2,16 @@ 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({ @@ -10,7 +20,17 @@ import {AdminLinkComponent} from './admin-link.component'; ], imports: [ CommonModule, - RouterModule.forChild([{path: '', component: AdminLinkComponent}]) + RouterModule.forChild([{path: '', component: AdminLinkComponent}]), + NzCardModule, + NzTableModule, + NzDividerModule, + NzPopconfirmModule, + NzModalModule, + NzFormModule, + ReactiveFormsModule, + NzInputModule, + NzSelectModule, + NzButtonModule ] }) export class AdminLinkModule { -- 2.49.1 From bc55aa48ff91d0e686ee56b2d0698de0226eaeec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 16:25:48 +0800 Subject: [PATCH 38/53] ... --- index/src/app/view/admin/admin-link/admin-link.component.ts | 2 +- index/src/app/view/admin/admin-link/admin-link.module.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index/src/app/view/admin/admin-link/admin-link.component.ts b/index/src/app/view/admin/admin-link/admin-link.component.ts index ec3fd0b..96b9396 100644 --- a/index/src/app/view/admin/admin-link/admin-link.component.ts +++ b/index/src/app/view/admin/admin-link/admin-link.component.ts @@ -4,7 +4,7 @@ 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"; +import {Observable} from 'rxjs'; @Component({ selector: 'app-admin-link', diff --git a/index/src/app/view/admin/admin-link/admin-link.module.ts b/index/src/app/view/admin/admin-link/admin-link.module.ts index 961d6e4..ed478fb 100644 --- a/index/src/app/view/admin/admin-link/admin-link.module.ts +++ b/index/src/app/view/admin/admin-link/admin-link.module.ts @@ -10,8 +10,8 @@ import { NzModalModule, NzPopconfirmModule, NzSelectModule, NzTableModule -} from "ng-zorro-antd"; -import {ReactiveFormsModule} from "@angular/forms"; +} from 'ng-zorro-antd'; +import {ReactiveFormsModule} from '@angular/forms'; @NgModule({ -- 2.49.1 From 4537f78015ebfda380b2ac6fa9cd5192e4fa4ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 18:08:48 +0800 Subject: [PATCH 39/53] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/api/api.service.ts | 2 +- .../admin-user/admin-user.component.html | 118 +++++++++++++++++- .../admin/admin-user/admin-user.component.ts | 91 ++++++++++++-- .../admin/admin-user/admin-user.module.ts | 25 +++- 4 files changed, 226 insertions(+), 10 deletions(-) diff --git a/index/src/app/api/api.service.ts b/index/src/app/api/api.service.ts index 485fa0c..d37f8a8 100644 --- a/index/src/app/api/api.service.ts +++ b/index/src/app/api/api.service.ts @@ -429,7 +429,7 @@ export class ApiService extends HttpService { deleteUser(id: number) { return super.Service({ - path: `/admin/user/del/${id}`, + path: `/admin/user/delete/${id}`, method: 'DELETE', }); } diff --git a/index/src/app/view/admin/admin-user/admin-user.component.html b/index/src/app/view/admin/admin-user/admin-user.component.html index d7514d9..10fb3a6 100644 --- a/index/src/app/view/admin/admin-user/admin-user.component.html +++ b/index/src/app/view/admin/admin-user/admin-user.component.html @@ -1 +1,117 @@ -

    admin-user works!

    +
    + + + + 邮箱 + 昵称 + 角色 + 邮箱验证状态 + 操作 + + + + {{data.email}} + {{data.displayName}} + + {{data.role}} + {{data.role}} + + + 已验证 + 未验证 + + + 编辑 + + 查看 + + 删除 + + + + + +
    + + + +
    + + 邮箱 + + + + + + + 昵称 + + + + + + + + 角色 + + + + + + + + + + 状态 + + + + + + + + + + 密码 + + + 重设密码 + + + + + + + + + + + + 描述 + + + + +
    +
    + + + + + + + + + + +
    diff --git a/index/src/app/view/admin/admin-user/admin-user.component.ts b/index/src/app/view/admin/admin-user/admin-user.component.ts index 6c03f9d..134ea13 100644 --- a/index/src/app/view/admin/admin-user/admin-user.component.ts +++ b/index/src/app/view/admin/admin-user/admin-user.component.ts @@ -1,15 +1,92 @@ -import { Component, OnInit } from '@angular/core'; +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'] + selector: 'app-admin-user', + templateUrl: './admin-user.component.html', + styleUrls: ['./admin-user.component.less'] }) export class AdminUserComponent implements OnInit { - constructor() { } + 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 + }) + } - ngOnInit(): void { - } + 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/index/src/app/view/admin/admin-user/admin-user.module.ts b/index/src/app/view/admin/admin-user/admin-user.module.ts index febeefe..e3d9344 100644 --- a/index/src/app/view/admin/admin-user/admin-user.module.ts +++ b/index/src/app/view/admin/admin-user/admin-user.module.ts @@ -2,6 +2,16 @@ 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({ @@ -10,7 +20,20 @@ import {AdminUserComponent} from './admin-user.component'; ], imports: [ CommonModule, - RouterModule.forChild([{path: '', component: AdminUserComponent}]) + RouterModule.forChild([{path: '', component: AdminUserComponent}]), + NzCardModule, + NzTableModule, + NzPopconfirmModule, + NzDividerModule, + NzTagModule, + NzModalModule, + NzButtonModule, + NzFormModule, + ReactiveFormsModule, + NzInputModule, + NzSelectModule, + NzRadioModule, + NzIconModule ] }) -- 2.49.1 From 92e17f58ea241de657308fcc930c360aeb99d4db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 18:09:15 +0800 Subject: [PATCH 40/53] ... --- index/src/app/view/admin/admin-user/admin-user.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index/src/app/view/admin/admin-user/admin-user.component.ts b/index/src/app/view/admin/admin-user/admin-user.component.ts index 134ea13..d066f55 100644 --- a/index/src/app/view/admin/admin-user/admin-user.component.ts +++ b/index/src/app/view/admin/admin-user/admin-user.component.ts @@ -14,7 +14,8 @@ import {GlobalUserService} from '../../../services/global-user.service'; }) export class AdminUserComponent implements OnInit { - constructor(private apiService: ApiService, private title: Title, private messageService: NzMessageService, private userService: GlobalUserService) { + constructor(private apiService: ApiService, private title: Title, private messageService: NzMessageService, + private userService: GlobalUserService) { this.formGroup = new FormGroup({ id: new FormControl(null), email: new FormControl(''), -- 2.49.1 From adaa54b7ec82950105c2c1bea8b877294028f230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 18:41:57 +0800 Subject: [PATCH 41/53] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/api/api.service.ts | 11 +++ .../admin-update/admin-update.component.html | 33 ++++++- .../admin-update/admin-update.component.less | 3 + .../admin-update/admin-update.component.ts | 94 +++++++++++++++++-- .../admin/admin-update/admin-update.module.ts | 22 ++++- 5 files changed, 154 insertions(+), 9 deletions(-) diff --git a/index/src/app/api/api.service.ts b/index/src/app/api/api.service.ts index d37f8a8..83ac859 100644 --- a/index/src/app/api/api.service.ts +++ b/index/src/app/api/api.service.ts @@ -527,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; diff --git a/index/src/app/view/admin/admin-update/admin-update.component.html b/index/src/app/view/admin/admin-update/admin-update.component.html index 6cd743c..4dbfa90 100644 --- a/index/src/app/view/admin/admin-update/admin-update.component.html +++ b/index/src/app/view/admin/admin-update/admin-update.component.html @@ -1 +1,32 @@ -

    admin-update works!

    +
    + + + + + 更新内容 + 更新日期 + 操作 + + + + {{data.info}} + {{data.time}} + + 编辑 + + 删除 + + + + + +
    + + + + diff --git a/index/src/app/view/admin/admin-update/admin-update.component.less b/index/src/app/view/admin/admin-update/admin-update.component.less index e69de29..35aa4ab 100644 --- a/index/src/app/view/admin/admin-update/admin-update.component.less +++ b/index/src/app/view/admin/admin-update/admin-update.component.less @@ -0,0 +1,3 @@ +td { + max-width: 300px; +} diff --git a/index/src/app/view/admin/admin-update/admin-update.component.ts b/index/src/app/view/admin/admin-update/admin-update.component.ts index 83ce40e..44e7632 100644 --- a/index/src/app/view/admin/admin-update/admin-update.component.ts +++ b/index/src/app/view/admin/admin-update/admin-update.component.ts @@ -1,15 +1,95 @@ -import { Component, OnInit } from '@angular/core'; +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'] + selector: 'app-admin-update', + templateUrl: './admin-update.component.html', + styleUrls: ['./admin-update.component.less'] }) export class AdminUpdateComponent implements OnInit { - constructor() { } - ngOnInit(): void { - } + 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/index/src/app/view/admin/admin-update/admin-update.module.ts b/index/src/app/view/admin/admin-update/admin-update.module.ts index b5b71d9..a368774 100644 --- a/index/src/app/view/admin/admin-update/admin-update.module.ts +++ b/index/src/app/view/admin/admin-update/admin-update.module.ts @@ -2,6 +2,16 @@ 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({ @@ -10,7 +20,17 @@ import {AdminUpdateComponent} from './admin-update.component'; ], imports: [ CommonModule, - RouterModule.forChild([{path: '', component: AdminUpdateComponent}]) + RouterModule.forChild([{path: '', component: AdminUpdateComponent}]), + NzCardModule, + NzTableModule, + NzTypographyModule, + NzToolTipModule, + NzDividerModule, + NzPopconfirmModule, + NzModalModule, + FormsModule, + NzButtonModule, + NzInputModule ] }) export class AdminUpdateModule { -- 2.49.1 From 992f0919cf809c0ab81df017f0ec12cff4103cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 18:49:12 +0800 Subject: [PATCH 42/53] =?UTF-8?q?=E8=AE=BF=E5=AE=A2=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-visitor.component.html | 25 +++++++++++++- .../admin-visitor/admin-visitor.component.ts | 33 +++++++++++++++---- .../admin-visitor/admin-visitor.module.ts | 7 +++- 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.html b/index/src/app/view/admin/admin-visitor/admin-visitor.component.html index 7720c45..d5cf0c7 100644 --- a/index/src/app/view/admin/admin-visitor/admin-visitor.component.html +++ b/index/src/app/view/admin/admin-visitor/admin-visitor.component.html @@ -1 +1,24 @@ -

    admin-visitor works!

    +
    + + + + ip地址 + 访问日期 + 浏览器类型 + 浏览器版本 + 系统 + + + + {{data.ip}} + {{data.date}} + {{data.browserName}} + {{data.browserVersion}} + {{data.osname}} + + + + +
    diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.ts b/index/src/app/view/admin/admin-visitor/admin-visitor.component.ts index c6df431..0df1eb7 100644 --- a/index/src/app/view/admin/admin-visitor/admin-visitor.component.ts +++ b/index/src/app/view/admin/admin-visitor/admin-visitor.component.ts @@ -1,15 +1,34 @@ -import { Component, OnInit } from '@angular/core'; +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'] + selector: 'app-admin-visitor', + templateUrl: './admin-visitor.component.html', + styleUrls: ['./admin-visitor.component.less'] }) export class AdminVisitorComponent implements OnInit { - constructor() { } + constructor(private apiService: ApiService, private title: Title) { + } - ngOnInit(): void { - } + 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/index/src/app/view/admin/admin-visitor/admin-visitor.module.ts b/index/src/app/view/admin/admin-visitor/admin-visitor.module.ts index a59493b..b673ee9 100644 --- a/index/src/app/view/admin/admin-visitor/admin-visitor.module.ts +++ b/index/src/app/view/admin/admin-visitor/admin-visitor.module.ts @@ -2,6 +2,7 @@ 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({ @@ -10,7 +11,11 @@ import {AdminVisitorComponent} from './admin-visitor.component'; ], imports: [ CommonModule, - RouterModule.forChild([{path: '', component: AdminVisitorComponent}]) + RouterModule.forChild([{path: '', component: AdminVisitorComponent}]), + NzCardModule, + NzTableModule, + NzButtonModule, + NzDividerModule ] }) export class AdminVisitorModule { -- 2.49.1 From ae62cbc58ff1e5a6d85bf26cc268c4ae676717e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 18:51:14 +0800 Subject: [PATCH 43/53] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/view/admin/admin-comment/admin-comment.component.html | 2 +- index/src/app/view/admin/admin-user/admin-user.component.html | 4 ++-- index/src/app/view/admin/admin.component.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.html b/index/src/app/view/admin/admin-comment/admin-comment.component.html index 1cdd02d..be94174 100644 --- a/index/src/app/view/admin/admin-comment/admin-comment.component.html +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.html @@ -10,7 +10,7 @@ 操作 - + {{data.articleTitle}} - + @@ -11,7 +11,7 @@ 操作 - + {{data.email}} {{data.displayName}} diff --git a/index/src/app/view/admin/admin.component.html b/index/src/app/view/admin/admin.component.html index 6db67a4..8c4d4aa 100644 --- a/index/src/app/view/admin/admin.component.html +++ b/index/src/app/view/admin/admin.component.html @@ -35,7 +35,7 @@
  • - 分类标签管理 + 标签管理
  • -- 2.49.1 From 7faebe83d5bb34f2faf825a375bb57fee1d36648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 19:53:23 +0800 Subject: [PATCH 44/53] . --- .../admin-index/admin-index.component.html | 1 - .../admin-index/admin-index.component.less | 0 .../admin/admin-index/admin-index.component.ts | 15 --------------- .../admin/admin-index/admin-index.module.ts | 17 ----------------- 4 files changed, 33 deletions(-) delete mode 100644 index/src/app/view/admin/admin-index/admin-index.component.html delete mode 100644 index/src/app/view/admin/admin-index/admin-index.component.less delete mode 100644 index/src/app/view/admin/admin-index/admin-index.component.ts delete mode 100644 index/src/app/view/admin/admin-index/admin-index.module.ts diff --git a/index/src/app/view/admin/admin-index/admin-index.component.html b/index/src/app/view/admin/admin-index/admin-index.component.html deleted file mode 100644 index 1b00d67..0000000 --- a/index/src/app/view/admin/admin-index/admin-index.component.html +++ /dev/null @@ -1 +0,0 @@ -

    admin-index works!

    diff --git a/index/src/app/view/admin/admin-index/admin-index.component.less b/index/src/app/view/admin/admin-index/admin-index.component.less deleted file mode 100644 index e69de29..0000000 diff --git a/index/src/app/view/admin/admin-index/admin-index.component.ts b/index/src/app/view/admin/admin-index/admin-index.component.ts deleted file mode 100644 index e5366a9..0000000 --- a/index/src/app/view/admin/admin-index/admin-index.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-admin-index', - templateUrl: './admin-index.component.html', - styleUrls: ['./admin-index.component.less'] -}) -export class AdminIndexComponent implements OnInit { - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/index/src/app/view/admin/admin-index/admin-index.module.ts b/index/src/app/view/admin/admin-index/admin-index.module.ts deleted file mode 100644 index b14bf1c..0000000 --- a/index/src/app/view/admin/admin-index/admin-index.module.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {NgModule} from '@angular/core'; -import {CommonModule} from '@angular/common'; -import {RouterModule} from '@angular/router'; -import {AdminIndexComponent} from './admin-index.component'; - - -@NgModule({ - declarations: [ - AdminIndexComponent - ], - imports: [ - CommonModule, - RouterModule.forChild([{path: '', component: AdminIndexComponent}]) - ] -}) -export class AdminIndexModule { -} -- 2.49.1 From e61e59fa5f055eefac99fbe7f1dd8abcefc402af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 20:48:09 +0800 Subject: [PATCH 45/53] =?UTF-8?q?=E4=BB=AA=E8=A1=A8=E7=9B=98=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-dashboard.component.html | 41 ++++++++++++++ .../admin-dashboard.component.less | 0 .../admin-dashboard.component.ts | 55 +++++++++++++++++++ .../admin-dashboard/admin-dashboard.module.ts | 22 ++++++++ .../app/view/admin/admin-routing.module.ts | 2 +- 5 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html create mode 100644 index/src/app/view/admin/admin-dashboard/admin-dashboard.component.less create mode 100644 index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts create mode 100644 index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html new file mode 100644 index 0000000..72daad6 --- /dev/null +++ b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html @@ -0,0 +1,41 @@ +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + +
    {{logText}}
    +
    +
    +
    diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.less b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.less new file mode 100644 index 0000000..e69de29 diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts new file mode 100644 index 0000000..200f37b --- /dev/null +++ b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts @@ -0,0 +1,55 @@ +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.getLog(); + this.getCounts(); + this.getDayVisitCount(); + this.getUserInfo(); + } + + logLoading: true; + logText: string; + counts: { + articleCount: number, + visitorCount: number, + categoryCount: number, + leaveMsgCount: number, + tagCount: number, + commentCount: number + } + dayVisitCount: number + userInfo: User; + + ngOnInit(): void { + } + + getLog() { + this.http.get('https://api.celess.cn/blog.log', {responseType: 'text'}).subscribe(data => { + this.logText = data; + }); + } + + 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, + error: null, + complete: null + }) +} diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts b/index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts new file mode 100644 index 0000000..014d469 --- /dev/null +++ b/index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts @@ -0,0 +1,22 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {AdminDashboardComponent} from './admin-dashboard.component'; +import {RouterModule} from '@angular/router'; +import {NzButtonModule, NzCardModule, NzGridModule, NzIconModule, NzSpinModule, NzStatisticModule} from 'ng-zorro-antd'; + + +@NgModule({ + declarations: [AdminDashboardComponent], + imports: [ + CommonModule, + RouterModule.forChild([{path: '', component: AdminDashboardComponent}]), + NzGridModule, + NzCardModule, + NzButtonModule, + NzSpinModule, + NzIconModule, + NzStatisticModule + ] +}) +export class AdminDashboardModule { +} diff --git a/index/src/app/view/admin/admin-routing.module.ts b/index/src/app/view/admin/admin-routing.module.ts index c5d2359..9053df7 100644 --- a/index/src/app/view/admin/admin-routing.module.ts +++ b/index/src/app/view/admin/admin-routing.module.ts @@ -47,7 +47,7 @@ const routes: Routes = [ }, { path: '**', - loadChildren: () => import('./admin-index/admin-index.module').then(mod => mod.AdminIndexModule), + loadChildren: () => import('./admin-dashboard/admin-dashboard.module').then(mod => mod.AdminDashboardModule), canActivate: [AuthGuard] } ] -- 2.49.1 From 5371a9a5c5c0e51e2ca4eee66d2461f70d3c99eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 20:50:20 +0800 Subject: [PATCH 46/53] . --- .../app/view/admin/admin-comment/admin-comment.component.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.html b/index/src/app/view/admin/admin-comment/admin-comment.component.html index be94174..5d1e959 100644 --- a/index/src/app/view/admin/admin-comment/admin-comment.component.html +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.html @@ -6,6 +6,7 @@ 文章标题 评论内容 + 评论者 评论日期 操作 @@ -25,6 +26,7 @@ + {{data.authorName}} {{data.date}} 编辑 -- 2.49.1 From dc17bba056c024b677fd330ce02337e0c9df9f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 21:04:23 +0800 Subject: [PATCH 47/53] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86?= =?UTF-8?q?=E9=94=99=E8=AF=AF=EF=BC=8C=E6=8A=BD=E5=B1=89=E4=B8=AD=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=B3=A8=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/services/global-user.service.ts | 2 +- .../admin-dashboard/admin-dashboard.component.ts | 12 +++++++----- index/src/app/view/admin/admin.component.html | 7 ++++++- index/src/app/view/admin/admin.component.ts | 12 ++++++++++-- 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/index/src/app/services/global-user.service.ts b/index/src/app/services/global-user.service.ts index 2215a44..d6c3758 100644 --- a/index/src/app/services/global-user.service.ts +++ b/index/src/app/services/global-user.service.ts @@ -45,7 +45,7 @@ export class GlobalUserService { // 获取数据 const subscription = this.getUserInfoFromServer(); return { - unsubscribe:()=>{ + unsubscribe: () => { this.userObserverArray.splice(this.userObserverArray.indexOf(observer), 1); observer.complete(); subscription.unsubscribe() diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts index 200f37b..0c3b807 100644 --- a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts +++ b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts @@ -17,8 +17,8 @@ export class AdminDashboardComponent implements OnInit { this.getUserInfo(); } - logLoading: true; - logText: string; + logLoading: boolean = true; + logText: string = null; counts: { articleCount: number, visitorCount: number, @@ -26,9 +26,10 @@ export class AdminDashboardComponent implements OnInit { leaveMsgCount: number, tagCount: number, commentCount: number - } - dayVisitCount: number - userInfo: User; + } = {articleCount: 0, visitorCount: 0, categoryCount: 0, tagCount: 0, commentCount: 0, leaveMsgCount: 0} + + dayVisitCount: number = 0; + userInfo: User = new User(); ngOnInit(): void { } @@ -36,6 +37,7 @@ export class AdminDashboardComponent implements OnInit { getLog() { this.http.get('https://api.celess.cn/blog.log', {responseType: 'text'}).subscribe(data => { this.logText = data; + this.logLoading = false }); } diff --git a/index/src/app/view/admin/admin.component.html b/index/src/app/view/admin/admin.component.html index 8c4d4aa..6ff73c2 100644 --- a/index/src/app/view/admin/admin.component.html +++ b/index/src/app/view/admin/admin.component.html @@ -89,7 +89,7 @@ + [nzTitle]="sayHelloTemp" (nzOnClose)="infoDrawerVisible = false">

    您最近一次登录是在:

    {{user.recentlyLandedDate}}



    @@ -110,6 +110,11 @@ + + +
    + 注销 +
    diff --git a/index/src/app/view/admin/admin.component.ts b/index/src/app/view/admin/admin.component.ts index d1c3602..543fcec 100644 --- a/index/src/app/view/admin/admin.component.ts +++ b/index/src/app/view/admin/admin.component.ts @@ -1,6 +1,7 @@ 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'; @@ -12,14 +13,15 @@ import {ApiService} from '../../api/api.service'; }) export class AdminComponent implements OnInit { - constructor(public gUserService: GlobalUserService, private apiService: ApiService, private messageService: NzMessageService) { + 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 - this.initHelloWords() + if (data.result) this.initHelloWords() } } ) @@ -34,6 +36,11 @@ export class AdminComponent implements OnInit { showInfoDrawer = () => this.infoDrawerVisible = !this.infoDrawerVisible; + logout() { + this.gUserService.logout(); + this.router.navigateByUrl('/') + } + ngOnInit(): void { this.editInfoFormGroup = new FormGroup({ desc: new FormControl(), @@ -81,4 +88,5 @@ export class AdminComponent implements OnInit { }); this.editInfoModalVisible = false; } + } -- 2.49.1 From b45f3f16e3654f63d42c7afc44067fd35a4ba721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 21:12:27 +0800 Subject: [PATCH 48/53] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E6=AC=A1=E8=B7=AF=E7=94=B1=E4=B8=8D=E9=80=9A=E8=BF=87=E6=97=B6?= =?UTF-8?q?=E5=8D=A1=E5=9C=A8=E7=A9=BA=E7=99=BD=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/view/admin/admin-routing.module.ts | 2 +- index/src/app/view/admin/auth.guard.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/index/src/app/view/admin/admin-routing.module.ts b/index/src/app/view/admin/admin-routing.module.ts index 9053df7..bb185eb 100644 --- a/index/src/app/view/admin/admin-routing.module.ts +++ b/index/src/app/view/admin/admin-routing.module.ts @@ -8,7 +8,7 @@ const routes: Routes = [ { path: '', component: AdminComponent, - canActivate: [AuthGuard], + // canActivate: [AuthGuard], children: [ { path: 'article', diff --git a/index/src/app/view/admin/auth.guard.ts b/index/src/app/view/admin/auth.guard.ts index e0ec194..a226411 100644 --- a/index/src/app/view/admin/auth.guard.ts +++ b/index/src/app/view/admin/auth.guard.ts @@ -14,12 +14,14 @@ export class AuthGuard implements CanActivate { } 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); @@ -58,6 +60,7 @@ export class AuthGuard implements CanActivate { case '/admin/visitor': if (this.userInfo.role !== 'admin') { observer.next(false) + if (this.visitCount === 1) this.router.navigateByUrl('/admin') return; } } -- 2.49.1 From 1c7f189d1126cbddcc02331a5d9f5e8efd2cf012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 21:18:29 +0800 Subject: [PATCH 49/53] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/admin/admin-dashboard/admin-dashboard.component.html | 3 ++- index/src/app/view/article/article.component.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html index 72daad6..4678b48 100644 --- a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html +++ b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html @@ -24,7 +24,8 @@ - +
    diff --git a/index/src/app/view/article/article.component.ts b/index/src/app/view/article/article.component.ts index 5356071..ae89852 100644 --- a/index/src/app/view/article/article.component.ts +++ b/index/src/app/view/article/article.component.ts @@ -48,7 +48,7 @@ export class ArticleComponent implements OnInit { error: (err) => null, next: data => { this.user = data.result; - this.avatarImgUrl = data.result.avatarImgUrl; + if (data.result) this.avatarImgUrl = data.result.avatarImgUrl; } }); this.comment = new CommentReq(true); -- 2.49.1 From 446d7e06e404e2397b4b674ef15667b19d8ee916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 21:55:35 +0800 Subject: [PATCH 50/53] =?UTF-8?q?=E9=92=88=E5=AF=B9=E6=99=AE=E9=80=9A?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=9A=84=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin-comment/admin-comment.component.ts | 31 +++++- .../admin-dashboard.component.html | 105 +++++++++++------- .../admin-dashboard.component.ts | 12 +- .../admin-dashboard/admin-dashboard.module.ts | 13 ++- index/src/app/view/admin/admin.component.html | 33 +++--- 5 files changed, 132 insertions(+), 62 deletions(-) diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.ts b/index/src/app/view/admin/admin-comment/admin-comment.component.ts index c17b567..f1693d1 100644 --- a/index/src/app/view/admin/admin-comment/admin-comment.component.ts +++ b/index/src/app/view/admin/admin-comment/admin-comment.component.ts @@ -3,6 +3,7 @@ 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', @@ -11,7 +12,23 @@ import {Comment, CommentReq} from '../../../class/Comment'; }) export class AdminCommentComponent implements OnInit { - constructor(private apiService: ApiService, private messageService: NzMessageService) { + 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; @@ -23,12 +40,20 @@ export class AdminCommentComponent implements OnInit { content: new CommentReq(true), editFocus: false, } + getComment: any;// 存放获取评论的方法 + ngOnInit(): void { - this.getComment(); } - getComment = () => this.apiService.getCommentByTypeForAdmin(true, this.pageIndex, this.pageSize).subscribe({ + + 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 diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html index 4678b48..90fd9d9 100644 --- a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html +++ b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html @@ -1,42 +1,67 @@ -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + +
    {{logText}}
    +
    +
    +
    -
    - - - - - -
    {{logText}}
    -
    -
    +
    +
    + + + + +

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

    +

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

    +

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

    +

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

    +

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

    +
    + +

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

    +

    ——马尔顿

    +
    +
    diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts index 0c3b807..e007eaf 100644 --- a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts +++ b/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts @@ -11,9 +11,6 @@ import {User} from '../../../class/User'; }) export class AdminDashboardComponent implements OnInit { constructor(private apiService: ApiService, private userService: GlobalUserService, private http: HttpClient) { - this.getLog(); - this.getCounts(); - this.getDayVisitCount(); this.getUserInfo(); } @@ -50,7 +47,14 @@ export class AdminDashboardComponent implements OnInit { }) getUserInfo = () => this.userService.watchUserInfo({ - next: data => this.userInfo = data.result, + 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/index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts b/index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts index 014d469..38c15ea 100644 --- a/index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts +++ b/index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts @@ -2,7 +2,15 @@ import {NgModule} from '@angular/core'; import {CommonModule} from '@angular/common'; import {AdminDashboardComponent} from './admin-dashboard.component'; import {RouterModule} from '@angular/router'; -import {NzButtonModule, NzCardModule, NzGridModule, NzIconModule, NzSpinModule, NzStatisticModule} from 'ng-zorro-antd'; +import { + NzButtonModule, + NzCardModule, + NzDividerModule, + NzGridModule, + NzIconModule, + NzSpinModule, + NzStatisticModule +} from 'ng-zorro-antd'; @NgModule({ @@ -15,7 +23,8 @@ import {NzButtonModule, NzCardModule, NzGridModule, NzIconModule, NzSpinModule, NzButtonModule, NzSpinModule, NzIconModule, - NzStatisticModule + NzStatisticModule, + NzDividerModule ] }) export class AdminDashboardModule { diff --git a/index/src/app/view/admin/admin.component.html b/index/src/app/view/admin/admin.component.html index 6ff73c2..5d8d204 100644 --- a/index/src/app/view/admin/admin.component.html +++ b/index/src/app/view/admin/admin.component.html @@ -43,10 +43,10 @@ - - - - +
  • + + 查看信息 +
  • @@ -95,19 +95,26 @@

    - - {{user.email}} - + +
    + + {{user.email}} + +
    - - {{user.displayName}} - +
    + + {{user.displayName}} + +
    - - {{user.desc}} - +
    + + {{user.desc}} + +
    -- 2.49.1 From abc792a56173c46b81252538c9ac1e612af9c914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 21:58:47 +0800 Subject: [PATCH 51/53] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index/src/app/view/admin/admin.component.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/index/src/app/view/admin/admin.component.html b/index/src/app/view/admin/admin.component.html index 5d8d204..5b09ca1 100644 --- a/index/src/app/view/admin/admin.component.html +++ b/index/src/app/view/admin/admin.component.html @@ -9,7 +9,7 @@ *ngIf="user">
    • - + 后台首页
    • @@ -43,11 +43,6 @@ -
    • - - 查看信息 -
    • -
    • 用户管理 @@ -68,6 +63,11 @@ 更新管理
    • +
    • + + 查看信息 +
    • +

      别管别人言语

      -- 2.49.1 From 42177a7721d6e239a28177340f2e278490c926e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 22:18:45 +0800 Subject: [PATCH 52/53] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/README.md | 27 - admin/angular.json | 131 - admin/browserslist | 12 - admin/e2e/protractor.conf.js | 32 - admin/e2e/src/app.e2e-spec.ts | 23 - admin/e2e/src/app.po.ts | 11 - admin/e2e/tsconfig.json | 13 - admin/karma.conf.js | 32 - admin/package-lock.json | 14126 ---------------- admin/package.json | 48 - admin/src/app/app-routing.module.ts | 71 - admin/src/app/app.component.css | 49 - admin/src/app/app.component.html | 96 - admin/src/app/app.component.spec.ts | 35 - admin/src/app/app.component.ts | 21 - admin/src/app/app.module.ts | 63 - admin/src/app/classes/article.ts | 19 - admin/src/app/classes/category.ts | 6 - admin/src/app/classes/comment.ts | 13 - admin/src/app/classes/commentReq.ts | 19 - admin/src/app/classes/data.ts | 6 - admin/src/app/classes/link.ts | 6 - admin/src/app/classes/page.ts | 20 - admin/src/app/classes/tag.ts | 6 - admin/src/app/classes/updateInfo.ts | 5 - admin/src/app/classes/user.ts | 11 - admin/src/app/classes/visitor.ts | 9 - .../components/header/header.component.css | 129 - .../components/header/header.component.html | 40 - .../header/header.component.spec.ts | 25 - .../app/components/header/header.component.ts | 30 - .../app/pages/a-index/a-index.component.css | 50 - .../app/pages/a-index/a-index.component.html | 71 - .../pages/a-index/a-index.component.spec.ts | 25 - .../app/pages/a-index/a-index.component.ts | 80 - .../article-manager.component.css | 6 - .../article-manager.component.html | 73 - .../article-manager.component.spec.ts | 25 - .../article-manager.component.ts | 50 - .../category-manager.component.css | 4 - .../category-manager.component.html | 66 - .../category-manager.component.spec.ts | 25 - .../category-manager.component.ts | 95 - .../comment-manager.component.css | 16 - .../comment-manager.component.html | 174 - .../comment-manager.component.spec.ts | 25 - .../comment-manager.component.ts | 130 - .../pages/links-manager/links.component.css | 0 .../pages/links-manager/links.component.html | 59 - .../links-manager/links.component.spec.ts | 25 - .../pages/links-manager/links.component.ts | 104 - .../tag-manager/tag-manager.component.css | 11 - .../tag-manager/tag-manager.component.html | 68 - .../tag-manager/tag-manager.component.spec.ts | 25 - .../tag-manager/tag-manager.component.ts | 72 - .../pages/update-manager/update.component.css | 0 .../update-manager/update.component.html | 54 - .../update-manager/update.component.spec.ts | 25 - .../pages/update-manager/update.component.ts | 95 - .../pages/user-info/user-info.component.css | 78 - .../pages/user-info/user-info.component.html | 46 - .../user-info/user-info.component.spec.ts | 25 - .../pages/user-info/user-info.component.ts | 74 - .../user-manager/user-manager.component.css | 7 - .../user-manager/user-manager.component.html | 77 - .../user-manager.component.spec.ts | 25 - .../user-manager/user-manager.component.ts | 91 - .../visitor-manager.component.css | 0 .../visitor-manager.component.html | 49 - .../visitor-manager.component.spec.ts | 25 - .../visitor-manager.component.ts | 58 - .../services/article/article.service.spec.ts | 12 - .../app/services/article/article.service.ts | 49 - .../category/category.service.spec.ts | 12 - .../app/services/category/category.service.ts | 56 - .../services/comment/comment.service.spec.ts | 12 - .../app/services/comment/comment.service.ts | 98 - admin/src/app/services/http.service.spec.ts | 12 - admin/src/app/services/http.service.ts | 103 - .../app/services/link/link.service.spec.ts | 12 - admin/src/app/services/link/link.service.ts | 39 - .../src/app/services/log/log.service.spec.ts | 12 - admin/src/app/services/log/log.service.ts | 22 - .../src/app/services/tag/tag.service.spec.ts | 12 - admin/src/app/services/tag/tag.service.ts | 43 - .../update/web-update.service.spec.ts | 12 - .../app/services/update/web-update.service.ts | 48 - .../app/services/user/user.service.spec.ts | 12 - admin/src/app/services/user/user.service.ts | 90 - .../services/visitor/visitor.service.spec.ts | 12 - .../app/services/visitor/visitor.service.ts | 76 - admin/src/app/utils/dataUtil.ts | 42 - admin/src/environments/environment.prod.ts | 4 - admin/src/environments/environment.ts | 17 - admin/src/index.html | 15 - admin/src/main.ts | 12 - admin/src/polyfills.ts | 63 - admin/src/styles.css | 72 - admin/src/test.ts | 20 - admin/tsconfig.app.json | 14 - admin/tsconfig.json | 24 - admin/tsconfig.spec.json | 18 - admin/tslint.json | 92 - index/angular.json => angular.json | 0 index/browserslist => browserslist | 0 {index/e2e => e2e}/protractor.conf.js | 0 {index/e2e => e2e}/src/app.e2e-spec.ts | 0 {index/e2e => e2e}/src/app.po.ts | 0 {index/e2e => e2e}/tsconfig.json | 0 index/README.md | 27 - index/src/assets/.gitkeep | 0 index/karma.conf.js => karma.conf.js | 0 index/package-lock.json => package-lock.json | 0 index/package.json => package.json | 0 {index/src => src}/app/api/api.service.ts | 0 .../src => src}/app/api/http/http.service.ts | 0 {index/src => src}/app/app-routing.module.ts | 0 {index/src => src}/app/app.component.html | 66 +- {index/src => src}/app/app.component.less | 0 {index/src => src}/app/app.component.spec.ts | 0 {index/src => src}/app/app.component.ts | 0 {index/src => src}/app/app.module.ts | 0 {index/src => src}/app/class/Article.ts | 70 +- {index/src => src}/app/class/Comment.ts | 0 {index/src => src}/app/class/EditorConfig.ts | 0 {index/src => src}/app/class/ErrDispatch.ts | 0 .../src => src}/app/class/HttpReqAndResp.ts | 0 {index/src => src}/app/class/Link.ts | 0 {index/src => src}/app/class/Tag.ts | 0 {index/src => src}/app/class/UpdateInfo.ts | 0 {index/src => src}/app/class/User.ts | 48 +- {index/src => src}/app/class/Visitor.ts | 0 .../admin-header/admin-header.component.html | 0 .../admin-header/admin-header.component.less | 0 .../admin-header.component.spec.ts | 0 .../admin-header/admin-header.component.ts | 0 .../components/footer/footer.component.html | 0 .../components/footer/footer.component.less | 0 .../footer/footer.component.spec.ts | 0 .../app/components/footer/footer.component.ts | 0 .../components/header/header.component.html | 0 .../components/header/header.component.less | 0 .../header/header.component.spec.ts | 0 .../app/components/header/header.component.ts | 0 {index/src => src}/app/global-variables.less | 0 .../app/services/component-state.service.ts | 0 .../app/services/global-user.service.ts | 0 .../app/services/local-storage.service.ts | 0 {index/src => src}/app/utils/color.ts | 0 {index/src => src}/app/utils/dataUtil.ts | 0 {index/src => src}/app/utils/svgIconUtil.ts | 0 {index/src => src}/app/utils/util.ts | 0 .../admin-article.component.html | 0 .../admin-article.component.less | 0 .../admin-article/admin-article.component.ts | 0 .../admin-article/admin-article.module.ts | 0 .../admin-comment.component.html | 0 .../admin-comment.component.less | 0 .../admin-comment/admin-comment.component.ts | 0 .../admin-comment/admin-comment.module.ts | 0 .../admin-dashboard.component.html | 0 .../admin-dashboard.component.less | 0 .../admin-dashboard.component.ts | 0 .../admin-dashboard/admin-dashboard.module.ts | 0 .../admin-link/admin-link.component.html | 0 .../admin-link/admin-link.component.less | 0 .../admin/admin-link/admin-link.component.ts | 0 .../admin/admin-link/admin-link.module.ts | 0 .../app/view/admin/admin-routing.module.ts | 0 .../admin/admin-tag/admin-tag.component.html | 0 .../admin/admin-tag/admin-tag.component.less | 0 .../admin/admin-tag/admin-tag.component.ts | 0 .../view/admin/admin-tag/admin-tag.module.ts | 0 .../admin-update/admin-update.component.html | 0 .../admin-update/admin-update.component.less | 0 .../admin-update/admin-update.component.ts | 0 .../admin/admin-update/admin-update.module.ts | 0 .../admin-user/admin-user.component.html | 0 .../admin-user/admin-user.component.less | 0 .../admin/admin-user/admin-user.component.ts | 0 .../admin/admin-user/admin-user.module.ts | 0 .../admin-visitor.component.html | 0 .../admin-visitor.component.less | 0 .../admin-visitor/admin-visitor.component.ts | 0 .../admin-visitor/admin-visitor.module.ts | 0 .../app/view/admin/admin.component.html | 0 .../app/view/admin/admin.component.less | 0 .../app/view/admin/admin.component.ts | 0 .../app/view/admin/admin.module.ts | 0 .../src => src}/app/view/admin/auth.guard.ts | 0 .../view/article/article-routing.module.ts | 0 .../app/view/article/article.component.html | 0 .../app/view/article/article.component.less | 0 .../view/article/article.component.spec.ts | 0 .../app/view/article/article.component.ts | 0 .../app/view/article/article.module.ts | 0 .../view/category/category-routing.module.ts | 0 .../app/view/category/category.component.html | 0 .../app/view/category/category.component.less | 0 .../view/category/category.component.spec.ts | 0 .../app/view/category/category.component.ts | 0 .../app/view/category/category.module.ts | 0 .../email-verify/email-verify.component.html | 0 .../email-verify/email-verify.component.less | 0 .../email-verify.component.spec.ts | 0 .../email-verify/email-verify.component.ts | 0 .../view/email-verify/email-verify.module.ts | 0 .../article-detail-card.component.html | 0 .../article-detail-card.component.less | 0 .../article-detail-card.component.spec.ts | 0 .../article-detail-card.component.ts | 0 .../card-detail/card-detail.component.html | 0 .../card-detail/card-detail.component.less | 0 .../card-detail/card-detail.component.spec.ts | 0 .../card-detail/card-detail.component.ts | 0 .../components/tag-tag/tag-tag.component.html | 0 .../components/tag-tag/tag-tag.component.less | 0 .../tag-tag/tag-tag.component.spec.ts | 0 .../components/tag-tag/tag-tag.component.ts | 0 .../app/view/index/index-routing.module.ts | 0 .../app/view/index/index.component.html | 0 .../app/view/index/index.component.less | 0 .../app/view/index/index.component.spec.ts | 0 .../app/view/index/index.component.ts | 0 .../app/view/index/index.module.ts | 0 .../leave-msg/leave-msg-routing.module.ts | 0 .../view/leave-msg/leave-msg.component.html | 0 .../view/leave-msg/leave-msg.component.less | 0 .../leave-msg/leave-msg.component.spec.ts | 0 .../app/view/leave-msg/leave-msg.component.ts | 0 .../app/view/leave-msg/leave-msg.module.ts | 0 .../app/view/link/link-routing.module.ts | 0 .../app/view/link/link.component.html | 0 .../app/view/link/link.component.less | 0 .../app/view/link/link.component.spec.ts | 0 .../app/view/link/link.component.ts | 0 .../src => src}/app/view/link/link.module.ts | 0 .../components/login/login.component.html | 0 .../components/login/login.component.less | 0 .../components/login/login.component.spec.ts | 0 .../components/login/login.component.ts | 0 .../registration/registration.component.html | 0 .../registration/registration.component.less | 0 .../registration.component.spec.ts | 0 .../registration/registration.component.ts | 0 .../login-registration-routing.module.ts | 0 .../login-registration.component.html | 0 .../login-registration.component.less | 0 .../login-registration.component.spec.ts | 0 .../login-registration.component.ts | 0 .../login-registration.module.ts | 0 .../login-registration.service.spec.ts | 0 .../service/login-registration.service.ts | 0 .../page-not-found.component.html | 0 .../page-not-found.component.less | 0 .../page-not-found.component.spec.ts | 0 .../page-not-found.component.ts | 0 .../page-not-found/page-not-found.module.ts | 0 .../view/reset-pwd/reset-pwd.component.html | 0 .../view/reset-pwd/reset-pwd.component.less | 0 .../reset-pwd/reset-pwd.component.spec.ts | 0 .../app/view/reset-pwd/reset-pwd.component.ts | 0 .../app/view/reset-pwd/reset-pwd.module.ts | 0 .../app/view/tag/tag-routing.module.ts | 0 .../app/view/tag/tag.component.html | 0 .../app/view/tag/tag.component.less | 0 .../app/view/tag/tag.component.spec.ts | 0 .../src => src}/app/view/tag/tag.component.ts | 0 {index/src => src}/app/view/tag/tag.module.ts | 0 .../app/view/update/update.component.html | 0 .../app/view/update/update.component.less | 0 .../app/view/update/update.component.spec.ts | 0 .../app/view/update/update.component.ts | 0 .../app/view/update/update.module.ts | 0 .../publish-form/publish-form.component.html | 0 .../publish-form/publish-form.component.less | 0 .../publish-form.component.spec.ts | 0 .../publish-form/publish-form.component.ts | 0 .../editor-md/editor-md.directive.spec.ts | 0 .../write/editor-md/editor-md.directive.ts | 0 .../app/view/write/write.component.html | 0 .../app/view/write/write.component.less | 0 .../app/view/write/write.component.spec.ts | 0 .../app/view/write/write.component.ts | 0 .../app/view/write/write.module.ts | 0 {admin/src => src}/assets/.gitkeep | 0 {index/src => src}/assets/editor/README.md | 0 .../assets/editor/css/editormd.css | 0 .../assets/editor/css/editormd.logo.css | 0 .../assets/editor/css/editormd.logo.min.css | 0 .../assets/editor/css/editormd.min.css | 0 .../assets/editor/css/editormd.preview.css | 0 .../editor/css/editormd.preview.min.css | 0 {index/src => src}/assets/editor/editormd.js | 0 .../src => src}/assets/editor/editormd.min.js | 0 .../assets/editor/fonts/FontAwesome.otf | Bin .../assets/editor/fonts/editormd-logo.eot | Bin .../assets/editor/fonts/editormd-logo.svg | 0 .../assets/editor/fonts/editormd-logo.ttf | Bin .../assets/editor/fonts/editormd-logo.woff | Bin .../editor/fonts/fontawesome-webfont.eot | Bin .../editor/fonts/fontawesome-webfont.svg | 0 .../editor/fonts/fontawesome-webfont.ttf | Bin .../editor/fonts/fontawesome-webfont.woff | Bin .../editor/fonts/fontawesome-webfont.woff2 | Bin .../assets/editor/images/loading.gif | Bin .../assets/editor/images/loading@2x.gif | Bin .../assets/editor/images/loading@3x.gif | Bin .../images/logos/editormd-favicon-16x16.ico | Bin .../images/logos/editormd-favicon-24x24.ico | Bin .../images/logos/editormd-favicon-32x32.ico | Bin .../images/logos/editormd-favicon-48x48.ico | Bin .../images/logos/editormd-favicon-64x64.ico | Bin .../images/logos/editormd-logo-114x114.png | Bin .../images/logos/editormd-logo-120x120.png | Bin .../images/logos/editormd-logo-144x144.png | Bin .../images/logos/editormd-logo-16x16.png | Bin .../images/logos/editormd-logo-180x180.png | Bin .../images/logos/editormd-logo-240x240.png | Bin .../images/logos/editormd-logo-24x24.png | Bin .../images/logos/editormd-logo-320x320.png | Bin .../images/logos/editormd-logo-32x32.png | Bin .../images/logos/editormd-logo-48x48.png | Bin .../images/logos/editormd-logo-57x57.png | Bin .../images/logos/editormd-logo-64x64.png | Bin .../images/logos/editormd-logo-72x72.png | Bin .../images/logos/editormd-logo-96x96.png | Bin .../assets/editor/images/logos/vi.png | Bin .../assets/editor/lib/codemirror/AUTHORS | 0 .../assets/editor/lib/codemirror/LICENSE | 0 .../assets/editor/lib/codemirror/README.md | 0 .../lib/codemirror/addon/comment/comment.js | 0 .../addon/comment/continuecomment.js | 0 .../lib/codemirror/addon/dialog/dialog.css | 0 .../lib/codemirror/addon/dialog/dialog.js | 0 .../codemirror/addon/display/fullscreen.css | 0 .../codemirror/addon/display/fullscreen.js | 0 .../lib/codemirror/addon/display/panel.js | 0 .../codemirror/addon/display/placeholder.js | 0 .../lib/codemirror/addon/display/rulers.js | 0 .../codemirror/addon/edit/closebrackets.js | 0 .../lib/codemirror/addon/edit/closetag.js | 0 .../lib/codemirror/addon/edit/continuelist.js | 0 .../codemirror/addon/edit/matchbrackets.js | 0 .../lib/codemirror/addon/edit/matchtags.js | 0 .../codemirror/addon/edit/trailingspace.js | 0 .../lib/codemirror/addon/fold/brace-fold.js | 0 .../lib/codemirror/addon/fold/comment-fold.js | 0 .../lib/codemirror/addon/fold/foldcode.js | 0 .../lib/codemirror/addon/fold/foldgutter.css | 0 .../lib/codemirror/addon/fold/foldgutter.js | 0 .../lib/codemirror/addon/fold/indent-fold.js | 0 .../codemirror/addon/fold/markdown-fold.js | 0 .../lib/codemirror/addon/fold/xml-fold.js | 0 .../lib/codemirror/addon/hint/anyword-hint.js | 0 .../lib/codemirror/addon/hint/css-hint.js | 0 .../lib/codemirror/addon/hint/html-hint.js | 0 .../codemirror/addon/hint/javascript-hint.js | 0 .../lib/codemirror/addon/hint/show-hint.css | 0 .../lib/codemirror/addon/hint/show-hint.js | 0 .../lib/codemirror/addon/hint/sql-hint.js | 0 .../lib/codemirror/addon/hint/xml-hint.js | 0 .../addon/lint/coffeescript-lint.js | 0 .../lib/codemirror/addon/lint/css-lint.js | 0 .../codemirror/addon/lint/javascript-lint.js | 0 .../lib/codemirror/addon/lint/json-lint.js | 0 .../editor/lib/codemirror/addon/lint/lint.css | 0 .../editor/lib/codemirror/addon/lint/lint.js | 0 .../lib/codemirror/addon/lint/yaml-lint.js | 0 .../lib/codemirror/addon/merge/merge.css | 0 .../lib/codemirror/addon/merge/merge.js | 0 .../lib/codemirror/addon/mode/loadmode.js | 0 .../lib/codemirror/addon/mode/multiplex.js | 0 .../codemirror/addon/mode/multiplex_test.js | 0 .../lib/codemirror/addon/mode/overlay.js | 0 .../lib/codemirror/addon/mode/simple.js | 0 .../lib/codemirror/addon/runmode/colorize.js | 0 .../addon/runmode/runmode-standalone.js | 0 .../lib/codemirror/addon/runmode/runmode.js | 0 .../codemirror/addon/runmode/runmode.node.js | 0 .../addon/scroll/annotatescrollbar.js | 0 .../codemirror/addon/scroll/scrollpastend.js | 0 .../addon/scroll/simplescrollbars.css | 0 .../addon/scroll/simplescrollbars.js | 0 .../addon/search/match-highlighter.js | 0 .../addon/search/matchesonscrollbar.css | 0 .../addon/search/matchesonscrollbar.js | 0 .../lib/codemirror/addon/search/search.js | 0 .../codemirror/addon/search/searchcursor.js | 0 .../codemirror/addon/selection/active-line.js | 0 .../addon/selection/mark-selection.js | 0 .../addon/selection/selection-pointer.js | 0 .../editor/lib/codemirror/addon/tern/tern.css | 0 .../editor/lib/codemirror/addon/tern/tern.js | 0 .../lib/codemirror/addon/tern/worker.js | 0 .../lib/codemirror/addon/wrap/hardwrap.js | 0 .../editor/lib/codemirror/addons.min.js | 0 .../assets/editor/lib/codemirror/bower.json | 0 .../editor/lib/codemirror/codemirror.min.css | 0 .../editor/lib/codemirror/codemirror.min.js | 0 .../editor/lib/codemirror/lib/codemirror.css | 0 .../editor/lib/codemirror/lib/codemirror.js | 0 .../editor/lib/codemirror/mode/apl/apl.js | 0 .../editor/lib/codemirror/mode/apl/index.html | 0 .../lib/codemirror/mode/asterisk/asterisk.js | 0 .../lib/codemirror/mode/asterisk/index.html | 0 .../editor/lib/codemirror/mode/clike/clike.js | 0 .../lib/codemirror/mode/clike/index.html | 0 .../lib/codemirror/mode/clike/scala.html | 0 .../lib/codemirror/mode/clojure/clojure.js | 0 .../lib/codemirror/mode/clojure/index.html | 0 .../editor/lib/codemirror/mode/cobol/cobol.js | 0 .../lib/codemirror/mode/cobol/index.html | 0 .../mode/coffeescript/coffeescript.js | 0 .../codemirror/mode/coffeescript/index.html | 0 .../codemirror/mode/commonlisp/commonlisp.js | 0 .../lib/codemirror/mode/commonlisp/index.html | 0 .../editor/lib/codemirror/mode/css/css.js | 0 .../editor/lib/codemirror/mode/css/index.html | 0 .../editor/lib/codemirror/mode/css/less.html | 0 .../lib/codemirror/mode/css/less_test.js | 0 .../editor/lib/codemirror/mode/css/scss.html | 0 .../lib/codemirror/mode/css/scss_test.js | 0 .../editor/lib/codemirror/mode/css/test.js | 0 .../lib/codemirror/mode/cypher/cypher.js | 0 .../lib/codemirror/mode/cypher/index.html | 0 .../assets/editor/lib/codemirror/mode/d/d.js | 0 .../editor/lib/codemirror/mode/d/index.html | 0 .../editor/lib/codemirror/mode/dart/dart.js | 0 .../lib/codemirror/mode/dart/index.html | 0 .../editor/lib/codemirror/mode/diff/diff.js | 0 .../lib/codemirror/mode/diff/index.html | 0 .../lib/codemirror/mode/django/django.js | 0 .../lib/codemirror/mode/django/index.html | 0 .../codemirror/mode/dockerfile/dockerfile.js | 0 .../lib/codemirror/mode/dockerfile/index.html | 0 .../editor/lib/codemirror/mode/dtd/dtd.js | 0 .../editor/lib/codemirror/mode/dtd/index.html | 0 .../editor/lib/codemirror/mode/dylan/dylan.js | 0 .../lib/codemirror/mode/dylan/index.html | 0 .../editor/lib/codemirror/mode/ebnf/ebnf.js | 0 .../lib/codemirror/mode/ebnf/index.html | 0 .../editor/lib/codemirror/mode/ecl/ecl.js | 0 .../editor/lib/codemirror/mode/ecl/index.html | 0 .../lib/codemirror/mode/eiffel/eiffel.js | 0 .../lib/codemirror/mode/eiffel/index.html | 0 .../lib/codemirror/mode/erlang/erlang.js | 0 .../lib/codemirror/mode/erlang/index.html | 0 .../editor/lib/codemirror/mode/forth/forth.js | 0 .../lib/codemirror/mode/forth/index.html | 0 .../lib/codemirror/mode/fortran/fortran.js | 0 .../lib/codemirror/mode/fortran/index.html | 0 .../editor/lib/codemirror/mode/gas/gas.js | 0 .../editor/lib/codemirror/mode/gas/index.html | 0 .../editor/lib/codemirror/mode/gfm/gfm.js | 0 .../editor/lib/codemirror/mode/gfm/index.html | 0 .../editor/lib/codemirror/mode/gfm/test.js | 0 .../lib/codemirror/mode/gherkin/gherkin.js | 0 .../lib/codemirror/mode/gherkin/index.html | 0 .../editor/lib/codemirror/mode/go/go.js | 0 .../editor/lib/codemirror/mode/go/index.html | 0 .../lib/codemirror/mode/groovy/groovy.js | 0 .../lib/codemirror/mode/groovy/index.html | 0 .../editor/lib/codemirror/mode/haml/haml.js | 0 .../lib/codemirror/mode/haml/index.html | 0 .../editor/lib/codemirror/mode/haml/test.js | 0 .../lib/codemirror/mode/haskell/haskell.js | 0 .../lib/codemirror/mode/haskell/index.html | 0 .../editor/lib/codemirror/mode/haxe/haxe.js | 0 .../lib/codemirror/mode/haxe/index.html | 0 .../mode/htmlembedded/htmlembedded.js | 0 .../codemirror/mode/htmlembedded/index.html | 0 .../codemirror/mode/htmlmixed/htmlmixed.js | 0 .../lib/codemirror/mode/htmlmixed/index.html | 0 .../editor/lib/codemirror/mode/http/http.js | 0 .../lib/codemirror/mode/http/index.html | 0 .../editor/lib/codemirror/mode/idl/idl.js | 0 .../editor/lib/codemirror/mode/idl/index.html | 0 .../editor/lib/codemirror/mode/index.html | 0 .../lib/codemirror/mode/jade/index.html | 0 .../editor/lib/codemirror/mode/jade/jade.js | 0 .../lib/codemirror/mode/javascript/index.html | 0 .../codemirror/mode/javascript/javascript.js | 0 .../codemirror/mode/javascript/json-ld.html | 0 .../lib/codemirror/mode/javascript/test.js | 0 .../mode/javascript/typescript.html | 0 .../lib/codemirror/mode/jinja2/index.html | 0 .../lib/codemirror/mode/jinja2/jinja2.js | 0 .../lib/codemirror/mode/julia/index.html | 0 .../editor/lib/codemirror/mode/julia/julia.js | 0 .../lib/codemirror/mode/kotlin/index.html | 0 .../lib/codemirror/mode/kotlin/kotlin.js | 0 .../lib/codemirror/mode/livescript/index.html | 0 .../codemirror/mode/livescript/livescript.js | 0 .../editor/lib/codemirror/mode/lua/index.html | 0 .../editor/lib/codemirror/mode/lua/lua.js | 0 .../lib/codemirror/mode/markdown/index.html | 0 .../lib/codemirror/mode/markdown/markdown.js | 0 .../lib/codemirror/mode/markdown/test.js | 0 .../assets/editor/lib/codemirror/mode/meta.js | 0 .../lib/codemirror/mode/mirc/index.html | 0 .../editor/lib/codemirror/mode/mirc/mirc.js | 0 .../lib/codemirror/mode/mllike/index.html | 0 .../lib/codemirror/mode/mllike/mllike.js | 0 .../lib/codemirror/mode/modelica/index.html | 0 .../lib/codemirror/mode/modelica/modelica.js | 0 .../lib/codemirror/mode/nginx/index.html | 0 .../editor/lib/codemirror/mode/nginx/nginx.js | 0 .../lib/codemirror/mode/ntriples/index.html | 0 .../lib/codemirror/mode/ntriples/ntriples.js | 0 .../lib/codemirror/mode/octave/index.html | 0 .../lib/codemirror/mode/octave/octave.js | 0 .../lib/codemirror/mode/pascal/index.html | 0 .../lib/codemirror/mode/pascal/pascal.js | 0 .../lib/codemirror/mode/pegjs/index.html | 0 .../editor/lib/codemirror/mode/pegjs/pegjs.js | 0 .../lib/codemirror/mode/perl/index.html | 0 .../editor/lib/codemirror/mode/perl/perl.js | 0 .../editor/lib/codemirror/mode/php/index.html | 0 .../editor/lib/codemirror/mode/php/php.js | 0 .../editor/lib/codemirror/mode/php/test.js | 0 .../editor/lib/codemirror/mode/pig/index.html | 0 .../editor/lib/codemirror/mode/pig/pig.js | 0 .../lib/codemirror/mode/properties/index.html | 0 .../codemirror/mode/properties/properties.js | 0 .../lib/codemirror/mode/puppet/index.html | 0 .../lib/codemirror/mode/puppet/puppet.js | 0 .../lib/codemirror/mode/python/index.html | 0 .../lib/codemirror/mode/python/python.js | 0 .../editor/lib/codemirror/mode/q/index.html | 0 .../assets/editor/lib/codemirror/mode/q/q.js | 0 .../editor/lib/codemirror/mode/r/index.html | 0 .../assets/editor/lib/codemirror/mode/r/r.js | 0 .../codemirror/mode/rpm/changes/index.html | 0 .../editor/lib/codemirror/mode/rpm/index.html | 0 .../editor/lib/codemirror/mode/rpm/rpm.js | 0 .../editor/lib/codemirror/mode/rst/index.html | 0 .../editor/lib/codemirror/mode/rst/rst.js | 0 .../lib/codemirror/mode/ruby/index.html | 0 .../editor/lib/codemirror/mode/ruby/ruby.js | 0 .../editor/lib/codemirror/mode/ruby/test.js | 0 .../lib/codemirror/mode/rust/index.html | 0 .../editor/lib/codemirror/mode/rust/rust.js | 0 .../lib/codemirror/mode/sass/index.html | 0 .../editor/lib/codemirror/mode/sass/sass.js | 0 .../lib/codemirror/mode/scheme/index.html | 0 .../lib/codemirror/mode/scheme/scheme.js | 0 .../lib/codemirror/mode/shell/index.html | 0 .../editor/lib/codemirror/mode/shell/shell.js | 0 .../editor/lib/codemirror/mode/shell/test.js | 0 .../lib/codemirror/mode/sieve/index.html | 0 .../editor/lib/codemirror/mode/sieve/sieve.js | 0 .../lib/codemirror/mode/slim/index.html | 0 .../editor/lib/codemirror/mode/slim/slim.js | 0 .../editor/lib/codemirror/mode/slim/test.js | 0 .../lib/codemirror/mode/smalltalk/index.html | 0 .../codemirror/mode/smalltalk/smalltalk.js | 0 .../lib/codemirror/mode/smarty/index.html | 0 .../lib/codemirror/mode/smarty/smarty.js | 0 .../codemirror/mode/smartymixed/index.html | 0 .../mode/smartymixed/smartymixed.js | 0 .../lib/codemirror/mode/solr/index.html | 0 .../editor/lib/codemirror/mode/solr/solr.js | 0 .../editor/lib/codemirror/mode/soy/index.html | 0 .../editor/lib/codemirror/mode/soy/soy.js | 0 .../lib/codemirror/mode/sparql/index.html | 0 .../lib/codemirror/mode/sparql/sparql.js | 0 .../codemirror/mode/spreadsheet/index.html | 0 .../mode/spreadsheet/spreadsheet.js | 0 .../editor/lib/codemirror/mode/sql/index.html | 0 .../editor/lib/codemirror/mode/sql/sql.js | 0 .../lib/codemirror/mode/stex/index.html | 0 .../editor/lib/codemirror/mode/stex/stex.js | 0 .../editor/lib/codemirror/mode/stex/test.js | 0 .../lib/codemirror/mode/stylus/index.html | 0 .../lib/codemirror/mode/stylus/stylus.js | 0 .../editor/lib/codemirror/mode/tcl/index.html | 0 .../editor/lib/codemirror/mode/tcl/tcl.js | 0 .../lib/codemirror/mode/textile/index.html | 0 .../lib/codemirror/mode/textile/test.js | 0 .../lib/codemirror/mode/textile/textile.js | 0 .../lib/codemirror/mode/tiddlywiki/index.html | 0 .../codemirror/mode/tiddlywiki/tiddlywiki.css | 0 .../codemirror/mode/tiddlywiki/tiddlywiki.js | 0 .../lib/codemirror/mode/tiki/index.html | 0 .../editor/lib/codemirror/mode/tiki/tiki.css | 0 .../editor/lib/codemirror/mode/tiki/tiki.js | 0 .../lib/codemirror/mode/toml/index.html | 0 .../editor/lib/codemirror/mode/toml/toml.js | 0 .../lib/codemirror/mode/tornado/index.html | 0 .../lib/codemirror/mode/tornado/tornado.js | 0 .../lib/codemirror/mode/turtle/index.html | 0 .../lib/codemirror/mode/turtle/turtle.js | 0 .../editor/lib/codemirror/mode/vb/index.html | 0 .../editor/lib/codemirror/mode/vb/vb.js | 0 .../lib/codemirror/mode/vbscript/index.html | 0 .../lib/codemirror/mode/vbscript/vbscript.js | 0 .../lib/codemirror/mode/velocity/index.html | 0 .../lib/codemirror/mode/velocity/velocity.js | 0 .../lib/codemirror/mode/verilog/index.html | 0 .../lib/codemirror/mode/verilog/test.js | 0 .../lib/codemirror/mode/verilog/verilog.js | 0 .../editor/lib/codemirror/mode/xml/index.html | 0 .../editor/lib/codemirror/mode/xml/test.js | 0 .../editor/lib/codemirror/mode/xml/xml.js | 0 .../lib/codemirror/mode/xquery/index.html | 0 .../editor/lib/codemirror/mode/xquery/test.js | 0 .../lib/codemirror/mode/xquery/xquery.js | 0 .../lib/codemirror/mode/yaml/index.html | 0 .../editor/lib/codemirror/mode/yaml/yaml.js | 0 .../editor/lib/codemirror/mode/z80/index.html | 0 .../editor/lib/codemirror/mode/z80/z80.js | 0 .../assets/editor/lib/codemirror/modes.min.js | 0 .../assets/editor/lib/codemirror/package.json | 0 .../editor/lib/codemirror/theme/3024-day.css | 0 .../lib/codemirror/theme/3024-night.css | 0 .../lib/codemirror/theme/ambiance-mobile.css | 0 .../editor/lib/codemirror/theme/ambiance.css | 0 .../lib/codemirror/theme/base16-dark.css | 0 .../lib/codemirror/theme/base16-light.css | 0 .../lib/codemirror/theme/blackboard.css | 0 .../editor/lib/codemirror/theme/cobalt.css | 0 .../lib/codemirror/theme/colorforth.css | 0 .../editor/lib/codemirror/theme/eclipse.css | 0 .../editor/lib/codemirror/theme/elegant.css | 0 .../lib/codemirror/theme/erlang-dark.css | 0 .../lib/codemirror/theme/lesser-dark.css | 0 .../editor/lib/codemirror/theme/mbo.css | 0 .../editor/lib/codemirror/theme/mdn-like.css | 0 .../editor/lib/codemirror/theme/midnight.css | 0 .../editor/lib/codemirror/theme/monokai.css | 0 .../editor/lib/codemirror/theme/neat.css | 0 .../editor/lib/codemirror/theme/neo.css | 0 .../editor/lib/codemirror/theme/night.css | 0 .../lib/codemirror/theme/paraiso-dark.css | 0 .../lib/codemirror/theme/paraiso-light.css | 0 .../lib/codemirror/theme/pastel-on-dark.css | 0 .../editor/lib/codemirror/theme/rubyblue.css | 0 .../editor/lib/codemirror/theme/solarized.css | 0 .../lib/codemirror/theme/the-matrix.css | 0 .../theme/tomorrow-night-bright.css | 0 .../theme/tomorrow-night-eighties.css | 0 .../editor/lib/codemirror/theme/twilight.css | 0 .../lib/codemirror/theme/vibrant-ink.css | 0 .../editor/lib/codemirror/theme/xq-dark.css | 0 .../editor/lib/codemirror/theme/xq-light.css | 0 .../editor/lib/codemirror/theme/zenburn.css | 0 .../assets/editor/lib/flowchart.min.js | 0 .../assets/editor/lib/jquery.flowchart.min.js | 0 .../assets/editor/lib/marked.min.js | 0 .../assets/editor/lib/prettify.min.js | 0 .../assets/editor/lib/raphael.min.js | 0 .../assets/editor/lib/sequence-diagram.min.js | 0 .../assets/editor/lib/underscore.min.js | 0 .../code-block-dialog/code-block-dialog.js | 0 .../plugins/emoji-dialog/emoji-dialog.js | 0 .../editor/plugins/emoji-dialog/emoji.json | 0 .../goto-line-dialog/goto-line-dialog.js | 0 .../editor/plugins/help-dialog/help-dialog.js | 0 .../assets/editor/plugins/help-dialog/help.md | 0 .../html-entities-dialog.js | 0 .../html-entities-dialog/html-entities.json | 0 .../plugins/image-dialog/image-dialog.js | 0 .../editor/plugins/link-dialog/link-dialog.js | 0 .../assets/editor/plugins/plugin-template.js | 0 .../preformatted-text-dialog.js | 0 .../reference-link-dialog.js | 0 .../plugins/table-dialog/table-dialog.js | 0 .../editor/plugins/test-plugin/test-plugin.js | 0 {index/src => src}/assets/img/404-m.jpg | Bin {index/src => src}/assets/img/404.jpg | Bin {index/src => src}/assets/img/bg_header.jpg | Bin .../environments/environment.prod.ts | 0 .../src => src}/environments/environment.ts | 0 {index/src => src}/index.html | 0 {index/src => src}/main.ts | 0 {index/src => src}/polyfills.ts | 0 {index/src => src}/styles.less | 0 {index/src => src}/test.ts | 0 index/tsconfig.app.json => tsconfig.app.json | 0 index/tsconfig.json => tsconfig.json | 0 .../tsconfig.spec.json => tsconfig.spec.json | 0 index/tslint.json => tslint.json | 0 683 files changed, 92 insertions(+), 18398 deletions(-) delete mode 100644 admin/README.md delete mode 100644 admin/angular.json delete mode 100644 admin/browserslist delete mode 100644 admin/e2e/protractor.conf.js delete mode 100644 admin/e2e/src/app.e2e-spec.ts delete mode 100644 admin/e2e/src/app.po.ts delete mode 100644 admin/e2e/tsconfig.json delete mode 100644 admin/karma.conf.js delete mode 100644 admin/package-lock.json delete mode 100644 admin/package.json delete mode 100644 admin/src/app/app-routing.module.ts delete mode 100644 admin/src/app/app.component.css delete mode 100644 admin/src/app/app.component.html delete mode 100644 admin/src/app/app.component.spec.ts delete mode 100644 admin/src/app/app.component.ts delete mode 100644 admin/src/app/app.module.ts delete mode 100644 admin/src/app/classes/article.ts delete mode 100644 admin/src/app/classes/category.ts delete mode 100644 admin/src/app/classes/comment.ts delete mode 100644 admin/src/app/classes/commentReq.ts delete mode 100644 admin/src/app/classes/data.ts delete mode 100644 admin/src/app/classes/link.ts delete mode 100644 admin/src/app/classes/page.ts delete mode 100644 admin/src/app/classes/tag.ts delete mode 100644 admin/src/app/classes/updateInfo.ts delete mode 100644 admin/src/app/classes/user.ts delete mode 100644 admin/src/app/classes/visitor.ts delete mode 100644 admin/src/app/components/header/header.component.css delete mode 100644 admin/src/app/components/header/header.component.html delete mode 100644 admin/src/app/components/header/header.component.spec.ts delete mode 100644 admin/src/app/components/header/header.component.ts delete mode 100644 admin/src/app/pages/a-index/a-index.component.css delete mode 100644 admin/src/app/pages/a-index/a-index.component.html delete mode 100644 admin/src/app/pages/a-index/a-index.component.spec.ts delete mode 100644 admin/src/app/pages/a-index/a-index.component.ts delete mode 100644 admin/src/app/pages/article-manager/article-manager.component.css delete mode 100644 admin/src/app/pages/article-manager/article-manager.component.html delete mode 100644 admin/src/app/pages/article-manager/article-manager.component.spec.ts delete mode 100644 admin/src/app/pages/article-manager/article-manager.component.ts delete mode 100644 admin/src/app/pages/category-manager/category-manager.component.css delete mode 100644 admin/src/app/pages/category-manager/category-manager.component.html delete mode 100644 admin/src/app/pages/category-manager/category-manager.component.spec.ts delete mode 100644 admin/src/app/pages/category-manager/category-manager.component.ts delete mode 100644 admin/src/app/pages/comment-manager/comment-manager.component.css delete mode 100644 admin/src/app/pages/comment-manager/comment-manager.component.html delete mode 100644 admin/src/app/pages/comment-manager/comment-manager.component.spec.ts delete mode 100644 admin/src/app/pages/comment-manager/comment-manager.component.ts delete mode 100644 admin/src/app/pages/links-manager/links.component.css delete mode 100644 admin/src/app/pages/links-manager/links.component.html delete mode 100644 admin/src/app/pages/links-manager/links.component.spec.ts delete mode 100644 admin/src/app/pages/links-manager/links.component.ts delete mode 100644 admin/src/app/pages/tag-manager/tag-manager.component.css delete mode 100644 admin/src/app/pages/tag-manager/tag-manager.component.html delete mode 100644 admin/src/app/pages/tag-manager/tag-manager.component.spec.ts delete mode 100644 admin/src/app/pages/tag-manager/tag-manager.component.ts delete mode 100644 admin/src/app/pages/update-manager/update.component.css delete mode 100644 admin/src/app/pages/update-manager/update.component.html delete mode 100644 admin/src/app/pages/update-manager/update.component.spec.ts delete mode 100644 admin/src/app/pages/update-manager/update.component.ts delete mode 100644 admin/src/app/pages/user-info/user-info.component.css delete mode 100644 admin/src/app/pages/user-info/user-info.component.html delete mode 100644 admin/src/app/pages/user-info/user-info.component.spec.ts delete mode 100644 admin/src/app/pages/user-info/user-info.component.ts delete mode 100644 admin/src/app/pages/user-manager/user-manager.component.css delete mode 100644 admin/src/app/pages/user-manager/user-manager.component.html delete mode 100644 admin/src/app/pages/user-manager/user-manager.component.spec.ts delete mode 100644 admin/src/app/pages/user-manager/user-manager.component.ts delete mode 100644 admin/src/app/pages/visitor-manager/visitor-manager.component.css delete mode 100644 admin/src/app/pages/visitor-manager/visitor-manager.component.html delete mode 100644 admin/src/app/pages/visitor-manager/visitor-manager.component.spec.ts delete mode 100644 admin/src/app/pages/visitor-manager/visitor-manager.component.ts delete mode 100644 admin/src/app/services/article/article.service.spec.ts delete mode 100644 admin/src/app/services/article/article.service.ts delete mode 100644 admin/src/app/services/category/category.service.spec.ts delete mode 100644 admin/src/app/services/category/category.service.ts delete mode 100644 admin/src/app/services/comment/comment.service.spec.ts delete mode 100644 admin/src/app/services/comment/comment.service.ts delete mode 100644 admin/src/app/services/http.service.spec.ts delete mode 100644 admin/src/app/services/http.service.ts delete mode 100644 admin/src/app/services/link/link.service.spec.ts delete mode 100644 admin/src/app/services/link/link.service.ts delete mode 100644 admin/src/app/services/log/log.service.spec.ts delete mode 100644 admin/src/app/services/log/log.service.ts delete mode 100644 admin/src/app/services/tag/tag.service.spec.ts delete mode 100644 admin/src/app/services/tag/tag.service.ts delete mode 100644 admin/src/app/services/update/web-update.service.spec.ts delete mode 100644 admin/src/app/services/update/web-update.service.ts delete mode 100644 admin/src/app/services/user/user.service.spec.ts delete mode 100644 admin/src/app/services/user/user.service.ts delete mode 100644 admin/src/app/services/visitor/visitor.service.spec.ts delete mode 100644 admin/src/app/services/visitor/visitor.service.ts delete mode 100644 admin/src/app/utils/dataUtil.ts delete mode 100644 admin/src/environments/environment.prod.ts delete mode 100644 admin/src/environments/environment.ts delete mode 100644 admin/src/index.html delete mode 100644 admin/src/main.ts delete mode 100644 admin/src/polyfills.ts delete mode 100644 admin/src/styles.css delete mode 100644 admin/src/test.ts delete mode 100644 admin/tsconfig.app.json delete mode 100644 admin/tsconfig.json delete mode 100644 admin/tsconfig.spec.json delete mode 100644 admin/tslint.json rename index/angular.json => angular.json (100%) rename index/browserslist => browserslist (100%) rename {index/e2e => e2e}/protractor.conf.js (100%) rename {index/e2e => e2e}/src/app.e2e-spec.ts (100%) rename {index/e2e => e2e}/src/app.po.ts (100%) rename {index/e2e => e2e}/tsconfig.json (100%) delete mode 100644 index/README.md delete mode 100644 index/src/assets/.gitkeep rename index/karma.conf.js => karma.conf.js (100%) rename index/package-lock.json => package-lock.json (100%) rename index/package.json => package.json (100%) rename {index/src => src}/app/api/api.service.ts (100%) rename {index/src => src}/app/api/http/http.service.ts (100%) rename {index/src => src}/app/app-routing.module.ts (100%) rename {index/src => src}/app/app.component.html (97%) rename {index/src => src}/app/app.component.less (100%) rename {index/src => src}/app/app.component.spec.ts (100%) rename {index/src => src}/app/app.component.ts (100%) rename {index/src => src}/app/app.module.ts (100%) rename {index/src => src}/app/class/Article.ts (95%) rename {index/src => src}/app/class/Comment.ts (100%) rename {index/src => src}/app/class/EditorConfig.ts (100%) rename {index/src => src}/app/class/ErrDispatch.ts (100%) rename {index/src => src}/app/class/HttpReqAndResp.ts (100%) rename {index/src => src}/app/class/Link.ts (100%) rename {index/src => src}/app/class/Tag.ts (100%) rename {index/src => src}/app/class/UpdateInfo.ts (100%) rename {index/src => src}/app/class/User.ts (95%) rename {index/src => src}/app/class/Visitor.ts (100%) rename {index/src => src}/app/components/admin-header/admin-header.component.html (100%) rename {index/src => src}/app/components/admin-header/admin-header.component.less (100%) rename {index/src => src}/app/components/admin-header/admin-header.component.spec.ts (100%) rename {index/src => src}/app/components/admin-header/admin-header.component.ts (100%) rename {index/src => src}/app/components/footer/footer.component.html (100%) rename {index/src => src}/app/components/footer/footer.component.less (100%) rename {index/src => src}/app/components/footer/footer.component.spec.ts (100%) rename {index/src => src}/app/components/footer/footer.component.ts (100%) rename {index/src => src}/app/components/header/header.component.html (100%) rename {index/src => src}/app/components/header/header.component.less (100%) rename {index/src => src}/app/components/header/header.component.spec.ts (100%) rename {index/src => src}/app/components/header/header.component.ts (100%) rename {index/src => src}/app/global-variables.less (100%) rename {index/src => src}/app/services/component-state.service.ts (100%) rename {index/src => src}/app/services/global-user.service.ts (100%) rename {index/src => src}/app/services/local-storage.service.ts (100%) rename {index/src => src}/app/utils/color.ts (100%) rename {index/src => src}/app/utils/dataUtil.ts (100%) rename {index/src => src}/app/utils/svgIconUtil.ts (100%) rename {index/src => src}/app/utils/util.ts (100%) rename {index/src => src}/app/view/admin/admin-article/admin-article.component.html (100%) rename {index/src => src}/app/view/admin/admin-article/admin-article.component.less (100%) rename {index/src => src}/app/view/admin/admin-article/admin-article.component.ts (100%) rename {index/src => src}/app/view/admin/admin-article/admin-article.module.ts (100%) rename {index/src => src}/app/view/admin/admin-comment/admin-comment.component.html (100%) rename {index/src => src}/app/view/admin/admin-comment/admin-comment.component.less (100%) rename {index/src => src}/app/view/admin/admin-comment/admin-comment.component.ts (100%) rename {index/src => src}/app/view/admin/admin-comment/admin-comment.module.ts (100%) rename {index/src => src}/app/view/admin/admin-dashboard/admin-dashboard.component.html (100%) rename {index/src => src}/app/view/admin/admin-dashboard/admin-dashboard.component.less (100%) rename {index/src => src}/app/view/admin/admin-dashboard/admin-dashboard.component.ts (100%) rename {index/src => src}/app/view/admin/admin-dashboard/admin-dashboard.module.ts (100%) rename {index/src => src}/app/view/admin/admin-link/admin-link.component.html (100%) rename {index/src => src}/app/view/admin/admin-link/admin-link.component.less (100%) rename {index/src => src}/app/view/admin/admin-link/admin-link.component.ts (100%) rename {index/src => src}/app/view/admin/admin-link/admin-link.module.ts (100%) rename {index/src => src}/app/view/admin/admin-routing.module.ts (100%) rename {index/src => src}/app/view/admin/admin-tag/admin-tag.component.html (100%) rename {index/src => src}/app/view/admin/admin-tag/admin-tag.component.less (100%) rename {index/src => src}/app/view/admin/admin-tag/admin-tag.component.ts (100%) rename {index/src => src}/app/view/admin/admin-tag/admin-tag.module.ts (100%) rename {index/src => src}/app/view/admin/admin-update/admin-update.component.html (100%) rename {index/src => src}/app/view/admin/admin-update/admin-update.component.less (100%) rename {index/src => src}/app/view/admin/admin-update/admin-update.component.ts (100%) rename {index/src => src}/app/view/admin/admin-update/admin-update.module.ts (100%) rename {index/src => src}/app/view/admin/admin-user/admin-user.component.html (100%) rename {index/src => src}/app/view/admin/admin-user/admin-user.component.less (100%) rename {index/src => src}/app/view/admin/admin-user/admin-user.component.ts (100%) rename {index/src => src}/app/view/admin/admin-user/admin-user.module.ts (100%) rename {index/src => src}/app/view/admin/admin-visitor/admin-visitor.component.html (100%) rename {index/src => src}/app/view/admin/admin-visitor/admin-visitor.component.less (100%) rename {index/src => src}/app/view/admin/admin-visitor/admin-visitor.component.ts (100%) rename {index/src => src}/app/view/admin/admin-visitor/admin-visitor.module.ts (100%) rename {index/src => src}/app/view/admin/admin.component.html (100%) rename {index/src => src}/app/view/admin/admin.component.less (100%) rename {index/src => src}/app/view/admin/admin.component.ts (100%) rename {index/src => src}/app/view/admin/admin.module.ts (100%) rename {index/src => src}/app/view/admin/auth.guard.ts (100%) rename {index/src => src}/app/view/article/article-routing.module.ts (100%) rename {index/src => src}/app/view/article/article.component.html (100%) rename {index/src => src}/app/view/article/article.component.less (100%) rename {index/src => src}/app/view/article/article.component.spec.ts (100%) rename {index/src => src}/app/view/article/article.component.ts (100%) rename {index/src => src}/app/view/article/article.module.ts (100%) rename {index/src => src}/app/view/category/category-routing.module.ts (100%) rename {index/src => src}/app/view/category/category.component.html (100%) rename {index/src => src}/app/view/category/category.component.less (100%) rename {index/src => src}/app/view/category/category.component.spec.ts (100%) rename {index/src => src}/app/view/category/category.component.ts (100%) rename {index/src => src}/app/view/category/category.module.ts (100%) rename {index/src => src}/app/view/email-verify/email-verify.component.html (100%) rename {index/src => src}/app/view/email-verify/email-verify.component.less (100%) rename {index/src => src}/app/view/email-verify/email-verify.component.spec.ts (100%) rename {index/src => src}/app/view/email-verify/email-verify.component.ts (100%) rename {index/src => src}/app/view/email-verify/email-verify.module.ts (100%) rename {index/src => src}/app/view/index/components/article-detail-card/article-detail-card.component.html (100%) rename {index/src => src}/app/view/index/components/article-detail-card/article-detail-card.component.less (100%) rename {index/src => src}/app/view/index/components/article-detail-card/article-detail-card.component.spec.ts (100%) rename {index/src => src}/app/view/index/components/article-detail-card/article-detail-card.component.ts (100%) rename {index/src => src}/app/view/index/components/card-detail/card-detail.component.html (100%) rename {index/src => src}/app/view/index/components/card-detail/card-detail.component.less (100%) rename {index/src => src}/app/view/index/components/card-detail/card-detail.component.spec.ts (100%) rename {index/src => src}/app/view/index/components/card-detail/card-detail.component.ts (100%) rename {index/src => src}/app/view/index/components/tag-tag/tag-tag.component.html (100%) rename {index/src => src}/app/view/index/components/tag-tag/tag-tag.component.less (100%) rename {index/src => src}/app/view/index/components/tag-tag/tag-tag.component.spec.ts (100%) rename {index/src => src}/app/view/index/components/tag-tag/tag-tag.component.ts (100%) rename {index/src => src}/app/view/index/index-routing.module.ts (100%) rename {index/src => src}/app/view/index/index.component.html (100%) rename {index/src => src}/app/view/index/index.component.less (100%) rename {index/src => src}/app/view/index/index.component.spec.ts (100%) rename {index/src => src}/app/view/index/index.component.ts (100%) rename {index/src => src}/app/view/index/index.module.ts (100%) rename {index/src => src}/app/view/leave-msg/leave-msg-routing.module.ts (100%) rename {index/src => src}/app/view/leave-msg/leave-msg.component.html (100%) rename {index/src => src}/app/view/leave-msg/leave-msg.component.less (100%) rename {index/src => src}/app/view/leave-msg/leave-msg.component.spec.ts (100%) rename {index/src => src}/app/view/leave-msg/leave-msg.component.ts (100%) rename {index/src => src}/app/view/leave-msg/leave-msg.module.ts (100%) rename {index/src => src}/app/view/link/link-routing.module.ts (100%) rename {index/src => src}/app/view/link/link.component.html (100%) rename {index/src => src}/app/view/link/link.component.less (100%) rename {index/src => src}/app/view/link/link.component.spec.ts (100%) rename {index/src => src}/app/view/link/link.component.ts (100%) rename {index/src => src}/app/view/link/link.module.ts (100%) rename {index/src => src}/app/view/login-registration/components/login/login.component.html (100%) rename {index/src => src}/app/view/login-registration/components/login/login.component.less (100%) rename {index/src => src}/app/view/login-registration/components/login/login.component.spec.ts (100%) rename {index/src => src}/app/view/login-registration/components/login/login.component.ts (100%) rename {index/src => src}/app/view/login-registration/components/registration/registration.component.html (100%) rename {index/src => src}/app/view/login-registration/components/registration/registration.component.less (100%) rename {index/src => src}/app/view/login-registration/components/registration/registration.component.spec.ts (100%) rename {index/src => src}/app/view/login-registration/components/registration/registration.component.ts (100%) rename {index/src => src}/app/view/login-registration/login-registration-routing.module.ts (100%) rename {index/src => src}/app/view/login-registration/login-registration.component.html (100%) rename {index/src => src}/app/view/login-registration/login-registration.component.less (100%) rename {index/src => src}/app/view/login-registration/login-registration.component.spec.ts (100%) rename {index/src => src}/app/view/login-registration/login-registration.component.ts (100%) rename {index/src => src}/app/view/login-registration/login-registration.module.ts (100%) rename {index/src => src}/app/view/login-registration/service/login-registration.service.spec.ts (100%) rename {index/src => src}/app/view/login-registration/service/login-registration.service.ts (100%) rename {index/src => src}/app/view/page-not-found/page-not-found.component.html (100%) rename {index/src => src}/app/view/page-not-found/page-not-found.component.less (100%) rename {index/src => src}/app/view/page-not-found/page-not-found.component.spec.ts (100%) rename {index/src => src}/app/view/page-not-found/page-not-found.component.ts (100%) rename {index/src => src}/app/view/page-not-found/page-not-found.module.ts (100%) rename {index/src => src}/app/view/reset-pwd/reset-pwd.component.html (100%) rename {index/src => src}/app/view/reset-pwd/reset-pwd.component.less (100%) rename {index/src => src}/app/view/reset-pwd/reset-pwd.component.spec.ts (100%) rename {index/src => src}/app/view/reset-pwd/reset-pwd.component.ts (100%) rename {index/src => src}/app/view/reset-pwd/reset-pwd.module.ts (100%) rename {index/src => src}/app/view/tag/tag-routing.module.ts (100%) rename {index/src => src}/app/view/tag/tag.component.html (100%) rename {index/src => src}/app/view/tag/tag.component.less (100%) rename {index/src => src}/app/view/tag/tag.component.spec.ts (100%) rename {index/src => src}/app/view/tag/tag.component.ts (100%) rename {index/src => src}/app/view/tag/tag.module.ts (100%) rename {index/src => src}/app/view/update/update.component.html (100%) rename {index/src => src}/app/view/update/update.component.less (100%) rename {index/src => src}/app/view/update/update.component.spec.ts (100%) rename {index/src => src}/app/view/update/update.component.ts (100%) rename {index/src => src}/app/view/update/update.module.ts (100%) rename {index/src => src}/app/view/write/components/publish-form/publish-form.component.html (100%) rename {index/src => src}/app/view/write/components/publish-form/publish-form.component.less (100%) rename {index/src => src}/app/view/write/components/publish-form/publish-form.component.spec.ts (100%) rename {index/src => src}/app/view/write/components/publish-form/publish-form.component.ts (100%) rename {index/src => src}/app/view/write/editor-md/editor-md.directive.spec.ts (100%) rename {index/src => src}/app/view/write/editor-md/editor-md.directive.ts (100%) rename {index/src => src}/app/view/write/write.component.html (100%) rename {index/src => src}/app/view/write/write.component.less (100%) rename {index/src => src}/app/view/write/write.component.spec.ts (100%) rename {index/src => src}/app/view/write/write.component.ts (100%) rename {index/src => src}/app/view/write/write.module.ts (100%) rename {admin/src => src}/assets/.gitkeep (100%) rename {index/src => src}/assets/editor/README.md (100%) rename {index/src => src}/assets/editor/css/editormd.css (100%) rename {index/src => src}/assets/editor/css/editormd.logo.css (100%) rename {index/src => src}/assets/editor/css/editormd.logo.min.css (100%) rename {index/src => src}/assets/editor/css/editormd.min.css (100%) rename {index/src => src}/assets/editor/css/editormd.preview.css (100%) rename {index/src => src}/assets/editor/css/editormd.preview.min.css (100%) rename {index/src => src}/assets/editor/editormd.js (100%) rename {index/src => src}/assets/editor/editormd.min.js (100%) rename {index/src => src}/assets/editor/fonts/FontAwesome.otf (100%) rename {index/src => src}/assets/editor/fonts/editormd-logo.eot (100%) rename {index/src => src}/assets/editor/fonts/editormd-logo.svg (100%) rename {index/src => src}/assets/editor/fonts/editormd-logo.ttf (100%) rename {index/src => src}/assets/editor/fonts/editormd-logo.woff (100%) rename {index/src => src}/assets/editor/fonts/fontawesome-webfont.eot (100%) rename {index/src => src}/assets/editor/fonts/fontawesome-webfont.svg (100%) rename {index/src => src}/assets/editor/fonts/fontawesome-webfont.ttf (100%) rename {index/src => src}/assets/editor/fonts/fontawesome-webfont.woff (100%) rename {index/src => src}/assets/editor/fonts/fontawesome-webfont.woff2 (100%) rename {index/src => src}/assets/editor/images/loading.gif (100%) rename {index/src => src}/assets/editor/images/loading@2x.gif (100%) rename {index/src => src}/assets/editor/images/loading@3x.gif (100%) rename {index/src => src}/assets/editor/images/logos/editormd-favicon-16x16.ico (100%) rename {index/src => src}/assets/editor/images/logos/editormd-favicon-24x24.ico (100%) rename {index/src => src}/assets/editor/images/logos/editormd-favicon-32x32.ico (100%) rename {index/src => src}/assets/editor/images/logos/editormd-favicon-48x48.ico (100%) rename {index/src => src}/assets/editor/images/logos/editormd-favicon-64x64.ico (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-114x114.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-120x120.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-144x144.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-16x16.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-180x180.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-240x240.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-24x24.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-320x320.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-32x32.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-48x48.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-57x57.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-64x64.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-72x72.png (100%) rename {index/src => src}/assets/editor/images/logos/editormd-logo-96x96.png (100%) rename {index/src => src}/assets/editor/images/logos/vi.png (100%) rename {index/src => src}/assets/editor/lib/codemirror/AUTHORS (100%) rename {index/src => src}/assets/editor/lib/codemirror/LICENSE (100%) rename {index/src => src}/assets/editor/lib/codemirror/README.md (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/comment/comment.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/comment/continuecomment.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/dialog/dialog.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/dialog/dialog.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/display/fullscreen.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/display/fullscreen.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/display/panel.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/display/placeholder.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/display/rulers.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/edit/closebrackets.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/edit/closetag.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/edit/continuelist.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/edit/matchbrackets.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/edit/matchtags.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/edit/trailingspace.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/fold/brace-fold.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/fold/comment-fold.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/fold/foldcode.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/fold/foldgutter.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/fold/foldgutter.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/fold/indent-fold.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/fold/markdown-fold.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/fold/xml-fold.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/hint/anyword-hint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/hint/css-hint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/hint/html-hint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/hint/javascript-hint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/hint/show-hint.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/hint/show-hint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/hint/sql-hint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/hint/xml-hint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/lint/coffeescript-lint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/lint/css-lint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/lint/javascript-lint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/lint/json-lint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/lint/lint.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/lint/lint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/lint/yaml-lint.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/merge/merge.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/merge/merge.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/mode/loadmode.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/mode/multiplex.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/mode/multiplex_test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/mode/overlay.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/mode/simple.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/runmode/colorize.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/runmode/runmode-standalone.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/runmode/runmode.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/runmode/runmode.node.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/scroll/annotatescrollbar.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/scroll/scrollpastend.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/scroll/simplescrollbars.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/search/match-highlighter.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/search/matchesonscrollbar.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/search/search.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/search/searchcursor.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/selection/active-line.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/selection/mark-selection.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/selection/selection-pointer.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/tern/tern.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/tern/tern.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/tern/worker.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addon/wrap/hardwrap.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/addons.min.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/bower.json (100%) rename {index/src => src}/assets/editor/lib/codemirror/codemirror.min.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/codemirror.min.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/lib/codemirror.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/lib/codemirror.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/apl/apl.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/apl/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/asterisk/asterisk.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/asterisk/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/clike/clike.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/clike/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/clike/scala.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/clojure/clojure.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/clojure/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/cobol/cobol.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/cobol/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/coffeescript/coffeescript.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/coffeescript/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/commonlisp/commonlisp.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/commonlisp/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/css/css.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/css/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/css/less.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/css/less_test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/css/scss.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/css/scss_test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/css/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/cypher/cypher.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/cypher/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/d/d.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/d/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/dart/dart.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/dart/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/diff/diff.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/diff/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/django/django.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/django/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/dockerfile/dockerfile.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/dockerfile/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/dtd/dtd.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/dtd/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/dylan/dylan.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/dylan/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/ebnf/ebnf.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/ebnf/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/ecl/ecl.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/ecl/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/eiffel/eiffel.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/eiffel/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/erlang/erlang.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/erlang/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/forth/forth.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/forth/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/fortran/fortran.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/fortran/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/gas/gas.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/gas/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/gfm/gfm.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/gfm/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/gfm/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/gherkin/gherkin.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/gherkin/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/go/go.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/go/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/groovy/groovy.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/groovy/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/haml/haml.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/haml/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/haml/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/haskell/haskell.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/haskell/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/haxe/haxe.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/haxe/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/htmlembedded/htmlembedded.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/htmlembedded/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/htmlmixed/htmlmixed.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/htmlmixed/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/http/http.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/http/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/idl/idl.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/idl/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/jade/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/jade/jade.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/javascript/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/javascript/javascript.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/javascript/json-ld.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/javascript/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/javascript/typescript.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/jinja2/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/jinja2/jinja2.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/julia/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/julia/julia.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/kotlin/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/kotlin/kotlin.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/livescript/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/livescript/livescript.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/lua/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/lua/lua.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/markdown/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/markdown/markdown.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/markdown/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/meta.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/mirc/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/mirc/mirc.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/mllike/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/mllike/mllike.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/modelica/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/modelica/modelica.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/nginx/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/nginx/nginx.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/ntriples/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/ntriples/ntriples.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/octave/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/octave/octave.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/pascal/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/pascal/pascal.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/pegjs/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/pegjs/pegjs.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/perl/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/perl/perl.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/php/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/php/php.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/php/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/pig/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/pig/pig.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/properties/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/properties/properties.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/puppet/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/puppet/puppet.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/python/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/python/python.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/q/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/q/q.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/r/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/r/r.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/rpm/changes/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/rpm/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/rpm/rpm.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/rst/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/rst/rst.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/ruby/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/ruby/ruby.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/ruby/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/rust/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/rust/rust.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/sass/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/sass/sass.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/scheme/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/scheme/scheme.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/shell/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/shell/shell.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/shell/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/sieve/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/sieve/sieve.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/slim/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/slim/slim.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/slim/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/smalltalk/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/smalltalk/smalltalk.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/smarty/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/smarty/smarty.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/smartymixed/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/smartymixed/smartymixed.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/solr/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/solr/solr.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/soy/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/soy/soy.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/sparql/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/sparql/sparql.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/spreadsheet/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/spreadsheet/spreadsheet.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/sql/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/sql/sql.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/stex/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/stex/stex.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/stex/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/stylus/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/stylus/stylus.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tcl/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tcl/tcl.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/textile/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/textile/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/textile/textile.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tiddlywiki/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tiki/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tiki/tiki.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tiki/tiki.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/toml/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/toml/toml.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tornado/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/tornado/tornado.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/turtle/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/turtle/turtle.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/vb/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/vb/vb.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/vbscript/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/vbscript/vbscript.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/velocity/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/velocity/velocity.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/verilog/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/verilog/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/verilog/verilog.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/xml/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/xml/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/xml/xml.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/xquery/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/xquery/test.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/xquery/xquery.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/yaml/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/yaml/yaml.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/z80/index.html (100%) rename {index/src => src}/assets/editor/lib/codemirror/mode/z80/z80.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/modes.min.js (100%) rename {index/src => src}/assets/editor/lib/codemirror/package.json (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/3024-day.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/3024-night.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/ambiance-mobile.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/ambiance.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/base16-dark.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/base16-light.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/blackboard.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/cobalt.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/colorforth.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/eclipse.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/elegant.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/erlang-dark.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/lesser-dark.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/mbo.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/mdn-like.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/midnight.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/monokai.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/neat.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/neo.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/night.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/paraiso-dark.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/paraiso-light.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/pastel-on-dark.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/rubyblue.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/solarized.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/the-matrix.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/tomorrow-night-bright.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/tomorrow-night-eighties.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/twilight.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/vibrant-ink.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/xq-dark.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/xq-light.css (100%) rename {index/src => src}/assets/editor/lib/codemirror/theme/zenburn.css (100%) rename {index/src => src}/assets/editor/lib/flowchart.min.js (100%) rename {index/src => src}/assets/editor/lib/jquery.flowchart.min.js (100%) rename {index/src => src}/assets/editor/lib/marked.min.js (100%) rename {index/src => src}/assets/editor/lib/prettify.min.js (100%) rename {index/src => src}/assets/editor/lib/raphael.min.js (100%) rename {index/src => src}/assets/editor/lib/sequence-diagram.min.js (100%) rename {index/src => src}/assets/editor/lib/underscore.min.js (100%) rename {index/src => src}/assets/editor/plugins/code-block-dialog/code-block-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/emoji-dialog/emoji-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/emoji-dialog/emoji.json (100%) rename {index/src => src}/assets/editor/plugins/goto-line-dialog/goto-line-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/help-dialog/help-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/help-dialog/help.md (100%) rename {index/src => src}/assets/editor/plugins/html-entities-dialog/html-entities-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/html-entities-dialog/html-entities.json (100%) rename {index/src => src}/assets/editor/plugins/image-dialog/image-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/link-dialog/link-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/plugin-template.js (100%) rename {index/src => src}/assets/editor/plugins/preformatted-text-dialog/preformatted-text-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/reference-link-dialog/reference-link-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/table-dialog/table-dialog.js (100%) rename {index/src => src}/assets/editor/plugins/test-plugin/test-plugin.js (100%) rename {index/src => src}/assets/img/404-m.jpg (100%) rename {index/src => src}/assets/img/404.jpg (100%) rename {index/src => src}/assets/img/bg_header.jpg (100%) rename {index/src => src}/environments/environment.prod.ts (100%) rename {index/src => src}/environments/environment.ts (100%) rename {index/src => src}/index.html (100%) rename {index/src => src}/main.ts (100%) rename {index/src => src}/polyfills.ts (100%) rename {index/src => src}/styles.less (100%) rename {index/src => src}/test.ts (100%) rename index/tsconfig.app.json => tsconfig.app.json (100%) rename index/tsconfig.json => tsconfig.json (100%) rename index/tsconfig.spec.json => tsconfig.spec.json (100%) rename index/tslint.json => tslint.json (100%) 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/updateInfo.ts b/admin/src/app/classes/updateInfo.ts deleted file mode 100644 index 32b90e2..0000000 --- a/admin/src/app/classes/updateInfo.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class UpdateInfo { - id: number; - info: string; - time: string; -} 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/classes/visitor.ts b/admin/src/app/classes/visitor.ts deleted file mode 100644 index dbc0711..0000000 --- a/admin/src/app/classes/visitor.ts +++ /dev/null @@ -1,9 +0,0 @@ -export class Visitor { - id: number; - ip: string; - date: string; - browserName: string; - browserVersion: string; - location?: string; - osname: 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.spec.ts b/admin/src/app/components/header/header.component.spec.ts deleted file mode 100644 index 97ab09a..0000000 --- a/admin/src/app/components/header/header.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -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(); - }); -}); 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.css b/admin/src/app/pages/links-manager/links.component.css deleted file mode 100644 index e69de29..0000000 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.css b/admin/src/app/pages/update-manager/update.component.css deleted file mode 100644 index e69de29..0000000 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.css b/admin/src/app/pages/visitor-manager/visitor-manager.component.css deleted file mode 100644 index e69de29..0000000 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/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/assets/.gitkeep b/index/src/assets/.gitkeep deleted file mode 100644 index e69de29..0000000 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 100% rename from index/src/app/api/api.service.ts rename to src/app/api/api.service.ts diff --git a/index/src/app/api/http/http.service.ts b/src/app/api/http/http.service.ts similarity index 100% rename from index/src/app/api/http/http.service.ts rename to src/app/api/http/http.service.ts diff --git a/index/src/app/app-routing.module.ts b/src/app/app-routing.module.ts similarity index 100% rename from index/src/app/app-routing.module.ts rename to src/app/app-routing.module.ts diff --git a/index/src/app/app.component.html b/src/app/app.component.html similarity index 97% rename from index/src/app/app.component.html rename to src/app/app.component.html index dee15f6..a39dab5 100644 --- a/index/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,33 +1,33 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 100% rename from index/src/app/app.component.ts rename to src/app/app.component.ts diff --git a/index/src/app/app.module.ts b/src/app/app.module.ts similarity index 100% rename from index/src/app/app.module.ts rename to src/app/app.module.ts 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 100% rename from index/src/app/class/Comment.ts rename to src/app/class/Comment.ts 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 100% rename from index/src/app/class/Link.ts rename to src/app/class/Link.ts 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/index/src/app/class/UpdateInfo.ts b/src/app/class/UpdateInfo.ts similarity index 100% rename from index/src/app/class/UpdateInfo.ts rename to src/app/class/UpdateInfo.ts diff --git a/index/src/app/class/User.ts b/src/app/class/User.ts similarity index 95% rename from index/src/app/class/User.ts rename to src/app/class/User.ts index 50395a1..b9cb99b 100644 --- a/index/src/app/class/User.ts +++ b/src/app/class/User.ts @@ -1,24 +1,24 @@ -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; - } -} +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/index/src/app/class/Visitor.ts b/src/app/class/Visitor.ts similarity index 100% rename from index/src/app/class/Visitor.ts rename to src/app/class/Visitor.ts diff --git a/index/src/app/components/admin-header/admin-header.component.html b/src/app/components/admin-header/admin-header.component.html similarity index 100% rename from index/src/app/components/admin-header/admin-header.component.html rename to src/app/components/admin-header/admin-header.component.html diff --git a/index/src/app/components/admin-header/admin-header.component.less b/src/app/components/admin-header/admin-header.component.less similarity index 100% rename from index/src/app/components/admin-header/admin-header.component.less rename to src/app/components/admin-header/admin-header.component.less diff --git a/index/src/app/components/admin-header/admin-header.component.spec.ts b/src/app/components/admin-header/admin-header.component.spec.ts similarity index 100% rename from index/src/app/components/admin-header/admin-header.component.spec.ts rename to src/app/components/admin-header/admin-header.component.spec.ts diff --git a/index/src/app/components/admin-header/admin-header.component.ts b/src/app/components/admin-header/admin-header.component.ts similarity index 100% rename from index/src/app/components/admin-header/admin-header.component.ts rename to src/app/components/admin-header/admin-header.component.ts diff --git a/index/src/app/components/footer/footer.component.html b/src/app/components/footer/footer.component.html similarity index 100% rename from index/src/app/components/footer/footer.component.html rename to src/app/components/footer/footer.component.html 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/index/src/app/components/footer/footer.component.ts b/src/app/components/footer/footer.component.ts similarity index 100% rename from index/src/app/components/footer/footer.component.ts rename to src/app/components/footer/footer.component.ts 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 100% rename from index/src/app/components/header/header.component.ts rename to src/app/components/header/header.component.ts 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/index/src/app/services/component-state.service.ts b/src/app/services/component-state.service.ts similarity index 100% rename from index/src/app/services/component-state.service.ts rename to src/app/services/component-state.service.ts diff --git a/index/src/app/services/global-user.service.ts b/src/app/services/global-user.service.ts similarity index 100% rename from index/src/app/services/global-user.service.ts rename to src/app/services/global-user.service.ts diff --git a/index/src/app/services/local-storage.service.ts b/src/app/services/local-storage.service.ts similarity index 100% rename from index/src/app/services/local-storage.service.ts rename to src/app/services/local-storage.service.ts 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/index/src/app/utils/dataUtil.ts b/src/app/utils/dataUtil.ts similarity index 100% rename from index/src/app/utils/dataUtil.ts rename to src/app/utils/dataUtil.ts 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/index/src/app/view/admin/admin-article/admin-article.component.html b/src/app/view/admin/admin-article/admin-article.component.html similarity index 100% rename from index/src/app/view/admin/admin-article/admin-article.component.html rename to src/app/view/admin/admin-article/admin-article.component.html diff --git a/index/src/app/view/admin/admin-article/admin-article.component.less b/src/app/view/admin/admin-article/admin-article.component.less similarity index 100% rename from index/src/app/view/admin/admin-article/admin-article.component.less rename to src/app/view/admin/admin-article/admin-article.component.less diff --git a/index/src/app/view/admin/admin-article/admin-article.component.ts b/src/app/view/admin/admin-article/admin-article.component.ts similarity index 100% rename from index/src/app/view/admin/admin-article/admin-article.component.ts rename to src/app/view/admin/admin-article/admin-article.component.ts diff --git a/index/src/app/view/admin/admin-article/admin-article.module.ts b/src/app/view/admin/admin-article/admin-article.module.ts similarity index 100% rename from index/src/app/view/admin/admin-article/admin-article.module.ts rename to src/app/view/admin/admin-article/admin-article.module.ts diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.html b/src/app/view/admin/admin-comment/admin-comment.component.html similarity index 100% rename from index/src/app/view/admin/admin-comment/admin-comment.component.html rename to src/app/view/admin/admin-comment/admin-comment.component.html diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.less b/src/app/view/admin/admin-comment/admin-comment.component.less similarity index 100% rename from index/src/app/view/admin/admin-comment/admin-comment.component.less rename to src/app/view/admin/admin-comment/admin-comment.component.less diff --git a/index/src/app/view/admin/admin-comment/admin-comment.component.ts b/src/app/view/admin/admin-comment/admin-comment.component.ts similarity index 100% rename from index/src/app/view/admin/admin-comment/admin-comment.component.ts rename to src/app/view/admin/admin-comment/admin-comment.component.ts diff --git a/index/src/app/view/admin/admin-comment/admin-comment.module.ts b/src/app/view/admin/admin-comment/admin-comment.module.ts similarity index 100% rename from index/src/app/view/admin/admin-comment/admin-comment.module.ts rename to src/app/view/admin/admin-comment/admin-comment.module.ts diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html b/src/app/view/admin/admin-dashboard/admin-dashboard.component.html similarity index 100% rename from index/src/app/view/admin/admin-dashboard/admin-dashboard.component.html rename to src/app/view/admin/admin-dashboard/admin-dashboard.component.html diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.less b/src/app/view/admin/admin-dashboard/admin-dashboard.component.less similarity index 100% rename from index/src/app/view/admin/admin-dashboard/admin-dashboard.component.less rename to src/app/view/admin/admin-dashboard/admin-dashboard.component.less diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts b/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts similarity index 100% rename from index/src/app/view/admin/admin-dashboard/admin-dashboard.component.ts rename to src/app/view/admin/admin-dashboard/admin-dashboard.component.ts diff --git a/index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts b/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts similarity index 100% rename from index/src/app/view/admin/admin-dashboard/admin-dashboard.module.ts rename to src/app/view/admin/admin-dashboard/admin-dashboard.module.ts diff --git a/index/src/app/view/admin/admin-link/admin-link.component.html b/src/app/view/admin/admin-link/admin-link.component.html similarity index 100% rename from index/src/app/view/admin/admin-link/admin-link.component.html rename to src/app/view/admin/admin-link/admin-link.component.html diff --git a/index/src/app/view/admin/admin-link/admin-link.component.less b/src/app/view/admin/admin-link/admin-link.component.less similarity index 100% rename from index/src/app/view/admin/admin-link/admin-link.component.less rename to src/app/view/admin/admin-link/admin-link.component.less diff --git a/index/src/app/view/admin/admin-link/admin-link.component.ts b/src/app/view/admin/admin-link/admin-link.component.ts similarity index 100% rename from index/src/app/view/admin/admin-link/admin-link.component.ts rename to src/app/view/admin/admin-link/admin-link.component.ts diff --git a/index/src/app/view/admin/admin-link/admin-link.module.ts b/src/app/view/admin/admin-link/admin-link.module.ts similarity index 100% rename from index/src/app/view/admin/admin-link/admin-link.module.ts rename to src/app/view/admin/admin-link/admin-link.module.ts diff --git a/index/src/app/view/admin/admin-routing.module.ts b/src/app/view/admin/admin-routing.module.ts similarity index 100% rename from index/src/app/view/admin/admin-routing.module.ts rename to src/app/view/admin/admin-routing.module.ts diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.html b/src/app/view/admin/admin-tag/admin-tag.component.html similarity index 100% rename from index/src/app/view/admin/admin-tag/admin-tag.component.html rename to src/app/view/admin/admin-tag/admin-tag.component.html diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.less b/src/app/view/admin/admin-tag/admin-tag.component.less similarity index 100% rename from index/src/app/view/admin/admin-tag/admin-tag.component.less rename to src/app/view/admin/admin-tag/admin-tag.component.less diff --git a/index/src/app/view/admin/admin-tag/admin-tag.component.ts b/src/app/view/admin/admin-tag/admin-tag.component.ts similarity index 100% rename from index/src/app/view/admin/admin-tag/admin-tag.component.ts rename to src/app/view/admin/admin-tag/admin-tag.component.ts diff --git a/index/src/app/view/admin/admin-tag/admin-tag.module.ts b/src/app/view/admin/admin-tag/admin-tag.module.ts similarity index 100% rename from index/src/app/view/admin/admin-tag/admin-tag.module.ts rename to src/app/view/admin/admin-tag/admin-tag.module.ts diff --git a/index/src/app/view/admin/admin-update/admin-update.component.html b/src/app/view/admin/admin-update/admin-update.component.html similarity index 100% rename from index/src/app/view/admin/admin-update/admin-update.component.html rename to src/app/view/admin/admin-update/admin-update.component.html diff --git a/index/src/app/view/admin/admin-update/admin-update.component.less b/src/app/view/admin/admin-update/admin-update.component.less similarity index 100% rename from index/src/app/view/admin/admin-update/admin-update.component.less rename to src/app/view/admin/admin-update/admin-update.component.less diff --git a/index/src/app/view/admin/admin-update/admin-update.component.ts b/src/app/view/admin/admin-update/admin-update.component.ts similarity index 100% rename from index/src/app/view/admin/admin-update/admin-update.component.ts rename to src/app/view/admin/admin-update/admin-update.component.ts diff --git a/index/src/app/view/admin/admin-update/admin-update.module.ts b/src/app/view/admin/admin-update/admin-update.module.ts similarity index 100% rename from index/src/app/view/admin/admin-update/admin-update.module.ts rename to src/app/view/admin/admin-update/admin-update.module.ts diff --git a/index/src/app/view/admin/admin-user/admin-user.component.html b/src/app/view/admin/admin-user/admin-user.component.html similarity index 100% rename from index/src/app/view/admin/admin-user/admin-user.component.html rename to src/app/view/admin/admin-user/admin-user.component.html diff --git a/index/src/app/view/admin/admin-user/admin-user.component.less b/src/app/view/admin/admin-user/admin-user.component.less similarity index 100% rename from index/src/app/view/admin/admin-user/admin-user.component.less rename to src/app/view/admin/admin-user/admin-user.component.less diff --git a/index/src/app/view/admin/admin-user/admin-user.component.ts b/src/app/view/admin/admin-user/admin-user.component.ts similarity index 100% rename from index/src/app/view/admin/admin-user/admin-user.component.ts rename to src/app/view/admin/admin-user/admin-user.component.ts diff --git a/index/src/app/view/admin/admin-user/admin-user.module.ts b/src/app/view/admin/admin-user/admin-user.module.ts similarity index 100% rename from index/src/app/view/admin/admin-user/admin-user.module.ts rename to src/app/view/admin/admin-user/admin-user.module.ts diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.html b/src/app/view/admin/admin-visitor/admin-visitor.component.html similarity index 100% rename from index/src/app/view/admin/admin-visitor/admin-visitor.component.html rename to src/app/view/admin/admin-visitor/admin-visitor.component.html diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.less b/src/app/view/admin/admin-visitor/admin-visitor.component.less similarity index 100% rename from index/src/app/view/admin/admin-visitor/admin-visitor.component.less rename to src/app/view/admin/admin-visitor/admin-visitor.component.less diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.component.ts b/src/app/view/admin/admin-visitor/admin-visitor.component.ts similarity index 100% rename from index/src/app/view/admin/admin-visitor/admin-visitor.component.ts rename to src/app/view/admin/admin-visitor/admin-visitor.component.ts diff --git a/index/src/app/view/admin/admin-visitor/admin-visitor.module.ts b/src/app/view/admin/admin-visitor/admin-visitor.module.ts similarity index 100% rename from index/src/app/view/admin/admin-visitor/admin-visitor.module.ts rename to src/app/view/admin/admin-visitor/admin-visitor.module.ts diff --git a/index/src/app/view/admin/admin.component.html b/src/app/view/admin/admin.component.html similarity index 100% rename from index/src/app/view/admin/admin.component.html rename to src/app/view/admin/admin.component.html diff --git a/index/src/app/view/admin/admin.component.less b/src/app/view/admin/admin.component.less similarity index 100% rename from index/src/app/view/admin/admin.component.less rename to src/app/view/admin/admin.component.less diff --git a/index/src/app/view/admin/admin.component.ts b/src/app/view/admin/admin.component.ts similarity index 100% rename from index/src/app/view/admin/admin.component.ts rename to src/app/view/admin/admin.component.ts diff --git a/index/src/app/view/admin/admin.module.ts b/src/app/view/admin/admin.module.ts similarity index 100% rename from index/src/app/view/admin/admin.module.ts rename to src/app/view/admin/admin.module.ts diff --git a/index/src/app/view/admin/auth.guard.ts b/src/app/view/admin/auth.guard.ts similarity index 100% rename from index/src/app/view/admin/auth.guard.ts rename to src/app/view/admin/auth.guard.ts 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 100% rename from index/src/app/view/article/article.component.ts rename to src/app/view/article/article.component.ts 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/index/components/card-detail/card-detail.component.less b/src/app/view/index/components/card-detail/card-detail.component.less similarity index 100% rename from index/src/app/view/index/components/card-detail/card-detail.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/app/view/leave-msg/leave-msg.component.less b/src/app/view/leave-msg/leave-msg.component.less similarity index 100% rename from index/src/app/view/leave-msg/leave-msg.component.less 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 100% 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 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 100% rename from index/src/app/view/write/write.component.ts rename to src/app/view/write/write.component.ts 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/admin/src/assets/.gitkeep b/src/assets/.gitkeep similarity index 100% rename from admin/src/assets/.gitkeep rename to src/assets/.gitkeep 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 100% rename from index/src/styles.less rename to src/styles.less 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 -- 2.49.1 From 3e5524397b6ed1ff62e827539e1713a2e835375a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Sat, 16 May 2020 22:25:13 +0800 Subject: [PATCH 53/53] =?UTF-8?q?=E8=B0=83=E6=95=B4ci?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/nodejs.yml | 2 +- build.sh | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) 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/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 -- 2.49.1