formation 4 年之前
父节点
当前提交
e6a0d1b770
共有 93 个文件被更改,包括 2382 次插入1436 次删除
  1. 23 1
      README.md
  2. 10 9
      angular-client/src/app/app-routing.module.ts
  3. 5 0
      angular-client/src/app/app.module.ts
  4. 83 0
      angular-client/src/app/components/admin/admin-login/admin-login.component.html
  5. 14 0
      angular-client/src/app/components/admin/admin-login/admin-login.component.scss
  6. 25 0
      angular-client/src/app/components/admin/admin-login/admin-login.component.spec.ts
  7. 89 0
      angular-client/src/app/components/admin/admin-login/admin-login.component.ts
  8. 7 5
      angular-client/src/app/components/auth/gain/gain.component.html
  9. 68 0
      angular-client/src/app/components/auth/tirage/tirage.component.html
  10. 3 0
      angular-client/src/app/components/auth/tirage/tirage.component.scss
  11. 25 0
      angular-client/src/app/components/auth/tirage/tirage.component.spec.ts
  12. 73 0
      angular-client/src/app/components/auth/tirage/tirage.component.ts
  13. 15 14
      angular-client/src/app/components/login/login.component.ts
  14. 7 6
      angular-client/src/app/components/shared/navbar/navbar.component.html
  15. 16 6
      angular-client/src/app/components/shared/navbar/navbar.component.ts
  16. 9 0
      angular-client/src/app/models/tirage.ts
  17. 15 18
      angular-client/src/app/services/auth.service.ts
  18. 3 0
      angular-client/tsconfig.json
  19. 41 3
      express-server/controllers/auth.js
  20. 1 1
      express-server/controllers/tirage.js
  21. 0 2
      express-server/middleware/limit-requests.js
  22. 1 1
      express-server/node_modules/.bin/mime
  23. 16 6
      express-server/node_modules/.bin/mime.cmd
  24. 1 1
      express-server/node_modules/.bin/mkdirp
  25. 16 6
      express-server/node_modules/.bin/mkdirp.cmd
  26. 10 13
      express-server/node_modules/accepts/package.json
  27. 5 8
      express-server/node_modules/array-flatten/package.json
  28. 10 13
      express-server/node_modules/body-parser/package.json
  29. 5 8
      express-server/node_modules/bytes/package.json
  30. 25 27
      express-server/node_modules/camelcase/package.json
  31. 5 8
      express-server/node_modules/content-disposition/package.json
  32. 10 13
      express-server/node_modules/content-type/package.json
  33. 5 8
      express-server/node_modules/cookie-signature/package.json
  34. 5 8
      express-server/node_modules/cookie/package.json
  35. 5 8
      express-server/node_modules/debug/package.json
  36. 10 13
      express-server/node_modules/depd/package.json
  37. 10 13
      express-server/node_modules/destroy/package.json
  38. 5 8
      express-server/node_modules/ee-first/package.json
  39. 10 13
      express-server/node_modules/encodeurl/package.json
  40. 10 13
      express-server/node_modules/escape-html/package.json
  41. 10 13
      express-server/node_modules/etag/package.json
  42. 10 13
      express-server/node_modules/express/package.json
  43. 10 13
      express-server/node_modules/finalhandler/package.json
  44. 5 0
      express-server/node_modules/forwarded/HISTORY.md
  45. 3 3
      express-server/node_modules/forwarded/README.md
  46. 15 1
      express-server/node_modules/forwarded/index.js
  47. 25 26
      express-server/node_modules/forwarded/package.json
  48. 5 8
      express-server/node_modules/fresh/package.json
  49. 5 8
      express-server/node_modules/http-errors/package.json
  50. 5 8
      express-server/node_modules/iconv-lite/package.json
  51. 5 8
      express-server/node_modules/inherits/package.json
  52. 5 8
      express-server/node_modules/ipaddr.js/package.json
  53. 5 8
      express-server/node_modules/media-typer/package.json
  54. 5 8
      express-server/node_modules/merge-descriptors/package.json
  55. 10 13
      express-server/node_modules/methods/package.json
  56. 47 0
      express-server/node_modules/mime-db/HISTORY.md
  57. 8 8
      express-server/node_modules/mime-db/README.md
  58. 382 25
      express-server/node_modules/mime-db/db.json
  59. 24 26
      express-server/node_modules/mime-db/package.json
  60. 53 0
      express-server/node_modules/mime-types/HISTORY.md
  61. 8 8
      express-server/node_modules/mime-types/README.md
  62. 26 28
      express-server/node_modules/mime-types/package.json
  63. 5 8
      express-server/node_modules/mime/package.json
  64. 10 13
      express-server/node_modules/minimist/package.json
  65. 10 13
      express-server/node_modules/mkdirp/package.json
  66. 5 8
      express-server/node_modules/ms/package.json
  67. 5 8
      express-server/node_modules/negotiator/package.json
  68. 10 13
      express-server/node_modules/on-finished/package.json
  69. 10 13
      express-server/node_modules/parseurl/package.json
  70. 5 8
      express-server/node_modules/path-to-regexp/package.json
  71. 6 0
      express-server/node_modules/proxy-addr/HISTORY.md
  72. 3 19
      express-server/node_modules/proxy-addr/README.md
  73. 27 30
      express-server/node_modules/proxy-addr/package.json
  74. 5 8
      express-server/node_modules/qs/package.json
  75. 10 13
      express-server/node_modules/range-parser/package.json
  76. 5 8
      express-server/node_modules/raw-body/package.json
  77. 5 10
      express-server/node_modules/safe-buffer/package.json
  78. 10 13
      express-server/node_modules/safer-buffer/package.json
  79. 5 8
      express-server/node_modules/send/package.json
  80. 5 8
      express-server/node_modules/serve-static/package.json
  81. 5 8
      express-server/node_modules/setprototypeof/package.json
  82. 10 14
      express-server/node_modules/source-map/package.json
  83. 10 13
      express-server/node_modules/statuses/package.json
  84. 10 13
      express-server/node_modules/type-is/package.json
  85. 5 8
      express-server/node_modules/unpipe/package.json
  86. 5 8
      express-server/node_modules/utils-merge/package.json
  87. 10 13
      express-server/node_modules/vary/package.json
  88. 812 663
      express-server/package-lock.json
  89. 1 0
      express-server/routes/auth.js
  90. 2 2
      express-server/routes/employee.js
  91. 2 2
      express-server/routes/restaurant.js
  92. 0 3
      express-server/routes/tirage.js
  93. 2 2
      express-server/routes/user.js

+ 23 - 1
README.md

@@ -1,3 +1,25 @@
 # FatboarProject
 
-FatboarProject est une application jeu concours pour la societe de restauration
+FatboarProject est une application jeu concours pour la societe de restauration
+
+# Angular-client 
+## run ##
+
+    cd angular-client
+
+    npm install
+
+    ng serve
+    
+
+# express-server
+
+## run ##
+
+    cd express-server
+
+    npm install
+
+    node index.js
+
+# Run with Docker

+ 10 - 9
angular-client/src/app/app-routing.module.ts

@@ -18,27 +18,28 @@ import { RegisterComponent } from 'src/app/components/register/register.componen
 import { ContactComponent } from 'src/app/components/shared/contact/contact.component';
 import { HomeComponent } from './components/home/home.component';
 import { AuthGuard } from './guards/auth.guard';
+import { AdminLoginComponent } from './components/admin/admin-login/admin-login.component';
+import { TirageComponent } from './components/auth/tirage/tirage.component';
 
 const routes: Routes = [
   { path: '', component: HomeComponent},
-  { path: 'login', component: LoginComponent},
+  { path: 'login', component: LoginComponent },
   { path: 'login/lost-password', component: LostPasswordComponent},
   { path: 'login/reset-password/:token', component: ResetPasswordComponent},
   { path: 'register', component: RegisterComponent},
   { path: 'cgu', component: CguComponent},
   { path: 'mention-legales', component: MentionsLegalesComponent},
   { path: 'politique-de-confidentialite', component: PolitiqueConfidentialiteComponent},
+  { path: 'admin', component: AdminLoginComponent },
 
-  
-
-  { path: 'users', component: UsersComponent,canActivate: [AuthGuard],
-  data: { roles: ['client'] } },
-  { path: 'statistique', component: StatisticComponent },
-  { path: 'emailing', component: EmailingComponent },
-  { path: 'assistance', component: AssistanceComponent },
+  { path: 'users', component: UsersComponent },
+  { path: 'statistique', component: StatisticComponent, canActivate: [AuthGuard], data: {roles: ['admin'] }},
+  { path: 'emailing', component: EmailingComponent,  canActivate: [AuthGuard], data: {roles: ['admin'] }},
+  { path: 'assistance', component: AssistanceComponent, canActivate: [AuthGuard], data: {roles: ['admin'] }},
   { path: 'contact', component: ContactComponent },
   { path: 'home', component: HomeComponent },
-  { path: 'auth', component: GainComponent },
+  { path: 'auth', component: GainComponent},
+  { path: 'tirage', component: TirageComponent},
   { path: 'profil', component: ProfilComponent },
   { path: '**', component: NotFoundComponent }
 ];

+ 5 - 0
angular-client/src/app/app.module.ts

@@ -56,6 +56,9 @@ import { LostPasswordComponent } from './components/login/lost-password/lost-pas
 import { ResetPasswordComponent } from './components/login/reset-password/reset-password.component';
 import { ConfirmMessageComponent } from './components/shared/confirm-message/confirm-message.component';
 import { ResponseContactComponent } from './components/admin/assistance/response-contact/response-contact.component';
+import { AdminLoginComponent } from './components/admin/admin-login/admin-login.component';
+import { MatSnackBarRef } from '@angular/material/snack-bar';
+import { TirageComponent } from './components/auth/tirage/tirage.component';
 
 
 
@@ -102,6 +105,8 @@ import { ResponseContactComponent } from './components/admin/assistance/response
     LostPasswordComponent,
     ResetPasswordComponent,
     ConfirmMessageComponent,
+    AdminLoginComponent,
+    TirageComponent,
     
     
   ],

+ 83 - 0
angular-client/src/app/components/admin/admin-login/admin-login.component.html

@@ -0,0 +1,83 @@
+<div class="container navtop">
+
+
+    <div class="row justify-content-center">
+   
+      
+      <mat-card class="col-11 col-lg-5" style="border-radius: 10px;">
+        <mat-progress-bar class="col-12" *ngIf="loading" mode="indeterminate"></mat-progress-bar>
+        <mat-card-content>
+          
+  
+          <form [formGroup]="formGroup" (ngSubmit)="signIn()">
+            <h1 class="row justify-content-center"><b>Connexion</b></h1>
+  
+            <!-- <div class="row justify-content-center mb-3">
+              <button mat-raised-button class="col-10 col-md-8 googlelogin" style="background-color: #DB4437; color: white;">
+                <div class="row mt-1 ml-3">
+                  <mat-icon class="ml-2" svgIcon="googleLogo"></mat-icon>
+                  <p class="ml-2 marginButton">Se connecter avec Google</p>
+                </div>
+              </button>
+            </div>
+  
+            <div class="row justify-content-center ">
+              <button mat-raised-button class="col-10 col-md-8 facebooklogin" style="background-color: #3b5998; color: white;">
+                <div class="row mt-1 ml-3">
+                  <mat-icon class="ml-2" svgIcon="facebookLogo"></mat-icon>
+                  <p class="ml-2 marginButton">Se connecter avec Facebook</p>
+                </div>
+              </button>
+            </div> 
+  
+             <div class="row mt-3 justify-content-center">
+              <div class="col-4">
+                <hr>
+              </div>
+              <div class="col-1">
+                <p>ou</p>
+              </div>
+              <div class="col-4">
+                <hr>
+              </div>
+            </div> -->
+  
+  
+            <div class="row justify-content-center">
+              <mat-form-field class="col-10">
+                <input matInput placeholder="Adresse email" formControlName="email" required>
+                <mat-error *ngIf="!formGroup.controls['email'].valid && formGroup.controls['email'].touched">
+                  {{ getErrorEmail() }}
+                </mat-error>
+              </mat-form-field>
+            </div>
+            <div class="row justify-content-center">
+              <mat-form-field class="col-10">
+                <input matInput placeholder="Mot de passe" formControlName="password" [type]="hide ? 
+                'password' : 'text'" required>
+                <mat-icon matSuffix (click)="hide = !hide">{{hide ? 'visibility_off' : 
+                  'visibility'}}</mat-icon>
+                <mat-error *ngIf="!formGroup.controls['password'].valid && formGroup.controls['password'].touched">
+                  {{ getErrorPassword() }}
+                </mat-error>
+              </mat-form-field>
+            </div>
+  
+  
+            <div class="row justify-content-center mt-3">
+              <button class="col-6 color-theme" mat-raised-button color="primary" type="submit">Se connecter</button>
+            </div>
+            <p class="row justify-content-center mt-3"> <a routerLink="/login/lost-password">Mot de passe oublié ?</a></p>
+            <!-- <p class="row justify-content-center">Vous n'avez pas encore de compte?<a class="ml-1" routerLink="/register"> Créer un compte</a></p> -->
+          </form>
+        </mat-card-content>
+      </mat-card>
+  
+    </div>
+  
+    
+    
+  
+  
+  
+  </div>

+ 14 - 0
angular-client/src/app/components/admin/admin-login/admin-login.component.scss

@@ -0,0 +1,14 @@
+.navtop{
+    margin-top: 7em;
+    margin-bottom: 3em;
+  }
+ 
+  .facebooklogin{
+    margin-bottom: -0.5em !important;
+  }
+  .googlelogin{
+    margin-bottom: -0.5em !important;
+  }
+  .marginButton{
+    margin-bottom: 0em !important;
+  }

+ 25 - 0
angular-client/src/app/components/admin/admin-login/admin-login.component.spec.ts

@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { AdminLoginComponent } from './admin-login.component';
+
+describe('AdminLoginComponent', () => {
+  let component: AdminLoginComponent;
+  let fixture: ComponentFixture<AdminLoginComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ AdminLoginComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(AdminLoginComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 89 - 0
angular-client/src/app/components/admin/admin-login/admin-login.component.ts

@@ -0,0 +1,89 @@
+import { Component, OnInit } from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { MatIconRegistry } from '@angular/material/icon';
+import { MatSnackBar } from '@angular/material/snack-bar';
+import { DomSanitizer } from '@angular/platform-browser';
+import { Router } from '@angular/router';
+import { AuthService } from 'src/app/services/auth.service';
+
+@Component({
+  selector: 'app-admin-login',
+  templateUrl: './admin-login.component.html',
+  styleUrls: ['./admin-login.component.scss']
+})
+export class AdminLoginComponent implements OnInit {
+  formGroup: FormGroup;
+  submitted = false;
+  loading = false;
+    hide =true;
+
+  constructor(public router: Router, public snackBar: MatSnackBar, private authService : AuthService, private formBuilder: FormBuilder, private matIconRegistry: MatIconRegistry, private domSanitizer: DomSanitizer) 
+  {
+
+   }
+
+ ngOnInit(): void {
+
+    this.createForm(); 
+  }
+
+  createForm() {
+    let emailregex: RegExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
+    this.formGroup = this.formBuilder.group({
+      email: [null, [Validators.required, Validators.pattern(emailregex)]],
+      password: [null, [Validators.required, this.checkPassword]],
+    });
+  }
+
+
+  checkPassword(control) {
+    let enteredPassword = control.value
+    let passwordCheck = /^(?=.*[a-z])(?=.{6,})/;
+    return (!passwordCheck.test(enteredPassword) && enteredPassword) ? { 'requirements': true } : null;
+  }
+
+
+  getErrorEmail() {
+    return this.formGroup.get('email').hasError('required') ? 'Adresse email requise' :
+      this.formGroup.get('email').hasError('pattern') ? 'Adresse email non valide' : '';
+  }
+
+  getErrorPassword() {
+    return this.formGroup.get('password').hasError('required') ? 'Mot de passe requis' :
+      this.formGroup.get('password').hasError('requirements') ? 
+      'Le mot de passe doit comporter au moins 8 caractères, une lettre majuscule' : '';
+  }
+
+  get f() { return this.formGroup.controls; }
+
+
+
+ // login
+   signIn(){
+
+    this.submitted = true;
+    if (this.formGroup.invalid) {
+      return;
+    }
+    this.loading = true;
+   this.authService.signInAdmin(this.formGroup.value).subscribe(
+    data => {
+         // this.router.navigate([this.returnUrl]);
+        console.log(data)
+        this.loading = false;
+        this.router.navigate(['/tirage']);
+        setTimeout(() => {
+          document.location.reload()
+        },800)
+    },
+    err => {
+        this.loading = false;
+        console.log(err.error.message)
+        this.authService.openSnackBar(err.error.message)
+    });
+    // this.router.navigate(['/']);
+
+   
+    
+  }
+}

+ 7 - 5
angular-client/src/app/components/auth/gain/gain.component.html

@@ -1,8 +1,10 @@
 <div class="container navtop">
-    <div>
-        <app-gain-form (code)="receiveCode($event)"></app-gain-form>
-    </div>
-    <div class="my-3" *ngIf="lots">
-        <app-gain-list  [lots]="lots"></app-gain-list>
+    <div [hidden]="user.role != 'client'">
+        <div>
+            <app-gain-form (code)="receiveCode($event)"></app-gain-form>
+        </div>
+        <div class="my-3" *ngIf="lots">
+            <app-gain-list  [lots]="lots"></app-gain-list>
+        </div>
     </div>
 </div>

+ 68 - 0
angular-client/src/app/components/auth/tirage/tirage.component.html

@@ -0,0 +1,68 @@
+
+      <mat-card class="navtop">
+        <mat-card-content>
+            <form [formGroup]="formTirage" (ngSubmit)="postDateTirage()">
+                
+                <div class="row justify-content-center mt-3">
+                      <div>
+                        <mat-form-field class="formu" appearance="fill">
+                            <mat-label>Choose a date</mat-label>
+                            <input matInput formControlName="date" type="date">                            
+                          </mat-form-field>
+                      </div>
+                </div>
+                <div class="row justify-content-center mt-3">
+
+                    <mat-error *ngIf="messageError != null">
+                        {{ messageError }}
+                    </mat-error>
+                </div>
+                <div class="row justify-content-center mt-3">
+                    <button class="col-4 color-theme" mat-raised-button color="primary" type="submit">Excuter</button>
+                </div>
+            </form>
+
+        </mat-card-content>
+
+        <mat-card-content>
+            <div class="row justify-content-center mt-3">
+                <button class="col-4 color-theme" mat-raised-button color="primary" (click)="getTirage()">Lancer le tirage</button>
+            </div>
+            <div class="row justify-content-center mt-3">
+                {{ tirage.message }}
+            </div>
+
+        </mat-card-content>
+
+        <mat-card-content>
+          <!-- <form [formGroup]="formGroup" (ngSubmit)="sendCodeGain()">
+            <mat-progress-bar class="row " *ngIf="loading" mode="indeterminate"></mat-progress-bar> 
+            <h1 class="row justify-content-center font-weight-bold">Tentez votre chance, et repartez peut-etre avec votre Range Rover</h1>
+            <h3 class="row justify-content-center">Entrez votre code</h3>
+  
+  
+            <div class="row justify-content-center">
+                <div >
+                    <mat-form-field class="formu" appearance="outline">
+                        <input matInput formControlName="code" type="number" placeholder="Exemple : 1234567890">
+                        <mat-icon matSuffix>card_giftcard</mat-icon>
+                        <mat-error *ngIf="!formGroup.controls['code'].valid || formGroup.controls['code'].touched">
+                          {{ getErrorCode() }}
+                        </mat-error>
+                      </mat-form-field>
+                </div>
+                
+            </div>
+            
+  
+            <div class="row justify-content-center mt-3">
+              <button class="col-4 color-theme" mat-raised-button color="primary" type="submit">Je vérifie</button>
+            </div>
+
+            <h1 class="row justify-content-center"><b>100% gagnant</b></h1>
+           
+          </form> -->
+        </mat-card-content>
+      </mat-card>
+  
+   

+ 3 - 0
angular-client/src/app/components/auth/tirage/tirage.component.scss

@@ -0,0 +1,3 @@
+.navtop{
+    margin-top: 6em;
+  }

+ 25 - 0
angular-client/src/app/components/auth/tirage/tirage.component.spec.ts

@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { TirageComponent } from './tirage.component';
+
+describe('TirageComponent', () => {
+  let component: TirageComponent;
+  let fixture: ComponentFixture<TirageComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ TirageComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(TirageComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 73 - 0
angular-client/src/app/components/auth/tirage/tirage.component.ts

@@ -0,0 +1,73 @@
+import { Component, OnInit } from '@angular/core';
+import { AuthService } from 'src/app/services/auth.service';
+import { UsersService } from 'src/app/services/users.service';
+import { User } from '../../../models/userResponse';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { HttpClient } from '@angular/common/http';
+import { Tirage} from 'src/app/models/tirage';
+import { MatSnackBar } from '@angular/material/snack-bar';
+
+interface httpResponse {
+  message: string,
+  success: boolean,
+
+}
+
+@Component({
+  selector: 'app-tirage',
+  templateUrl: './tirage.component.html',
+  styleUrls: ['./tirage.component.scss']
+})
+export class TirageComponent implements OnInit {
+
+  private readonly URL = "http://localhost:4000"
+  user: User
+  formTirage: FormGroup
+  messageError: string = null 
+  tirage: httpResponse = {
+    message: '',
+    success: false,
+  }
+  constructor(private authService : AuthService, private userService : UsersService, private fb : FormBuilder, private http: HttpClient, private snackbar: MatSnackBar) { }
+
+  ngOnInit(): void {
+    this.authService.getUserInfo().subscribe(user => this.user = user)
+    this.createdForm()
+  }
+
+  createdForm() {
+    this.formTirage = this.fb.group({
+      date: ['', Validators.required]
+    })
+  }
+
+  postDateTirage() {
+    console.log('date: ', this.formTirage.value)
+    const tiragedate = this.formTirage.value as Date
+    const reponse  = this.http.post<httpResponse>(`${this.URL}/api/tirage/date`, tiragedate)
+    reponse.toPromise().then( res => {
+      this.snackbar.open(res.message, 'close')
+    }).catch(err => {
+      console.log('message erreur =>', err.error.message)
+      this.messageError = err.error.message
+    })
+
+  }
+  
+  getTirage() {
+    const resultatTirage = this.http.get<httpResponse>(`${this.URL}/api/tirage`)
+    resultatTirage.toPromise().then(
+      (res) =>  {
+      this.tirage = res
+      console.log('resultar ', this.tirage)
+      }
+    ).catch(
+      err => console.log('err', err)
+    )
+  }
+
+  getWinner(user: User) {
+
+  }
+
+}

+ 15 - 14
angular-client/src/app/components/login/login.component.ts

@@ -70,21 +70,22 @@ export class LoginComponent implements OnInit {
       return;
     }
     this.loading = true;
-   this.authService.signIn(this.formGroup.value).subscribe(
-    data => {
-         // this.router.navigate([this.returnUrl]);
-        console.log(data)
-        this.loading = false;
-        this.router.navigate(['/auth']);
-    },
-    err => {
-        this.loading = false;
-        console.log(err.error.message)
-        this.authService.openSnackBar(err.error.message)
-    });
+    this.authService.signIn(this.formGroup.value).subscribe(
+      data => {
+          // this.router.navigate([this.returnUrl]);
+          console.log(data)
+          this.loading = false;
+          this.router.navigate(['/auth']);
+          setTimeout(() => {
+            document.location.reload()
+          },100)
+      },
+      err => {
+          this.loading = false;
+          console.log(err.error.message)
+          this.authService.openSnackBar(err.error.message)
+      });
     // this.router.navigate(['/']);
-
-   
     
   }
 

+ 7 - 6
angular-client/src/app/components/shared/navbar/navbar.component.html

@@ -15,13 +15,14 @@
     <div fxShow="true" fxHide.lt-md="true">
       <a class="navbtn" mat-button routerLink="/login" *ngIf="!isLogged"> Connexion</a>
       <a class="navbtn" mat-button routerLink="/register" *ngIf="!isLogged">Inscription</a>
-      <a class="navbtn" mat-button routerLink="/auth" *ngIf="isLogged">Gain</a>
+      <a class="navbtn" mat-button routerLink="/auth" *ngIf="isLogged && !isAdmin">Gain</a>
+      <a class="navbtn" mat-button routerLink="/tirage" [hidden]="!isAdmin">Tirage</a>
       <a class="navbtn" mat-button routerLink="/profil" *ngIf="isLogged"><mat-icon>person</mat-icon>Mon profil</a>
-      <a class="navbtn" mat-button routerLink="/users" *ngIf="isLogged">Clients</a>
-      <a class="navbtn" mat-button routerLink="/statistique" *ngIf="isLogged">Statistique</a>
-      <a class="navbtn" mat-button routerLink="/emailing" *ngIf="isLogged">Emailing</a>
-      <a class="navbtn" mat-button routerLink="/assistance" *ngIf="isLogged">Assistance</a>
-      <!--<a class="navbtn" mat-button routerLink="/users" *ngIf="isLogged">Employés</a>-->
+      <a class="navbtn" mat-button routerLink="/users" [hidden]="!isAdmin">Clients</a>
+      <a class="navbtn" mat-button routerLink="/statistique" [hidden]="!isAdmin">Statistique</a>
+      <a class="navbtn" mat-button routerLink="/emailing" [hidden]="!isAdmin">Emailing</a>
+      <a class="navbtn" mat-button routerLink="/assistance" [hidden]="!isAdmin">Assistance</a>
+      <a class="navbtn" mat-button routerLink="/users" [hidden]="!isAdmin">Employés</a>
       <a class="navbtn" mat-button routerLink="/contact" >Contact</a>
       <a class="navbtn" mat-icon-button color="basic" aria-label="" (click)="logOut()" *ngIf="isLogged">
         <mat-icon>power_settings_new</mat-icon>

+ 16 - 6
angular-client/src/app/components/shared/navbar/navbar.component.ts

@@ -1,5 +1,7 @@
 import { AuthService } from 'src/app/services/auth.service';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, Output } from '@angular/core';
+import { User } from '../../../models/userResponse';
+
 
 @Component({
   selector: 'app-navbar',
@@ -7,20 +9,28 @@ import { Component, OnInit } from '@angular/core';
   styleUrls: ['./navbar.component.scss']
 })
 export class NavbarComponent implements OnInit {
+  isLogged: User;
+  isAdmin: boolean = false;
+  constructor(private authService : AuthService) { 
+    console.log('Variable', this.isAdmin)
+    this.authService.user_info.subscribe((x) =>{
+      this.isLogged = x;
+      this.isLogged.role ==='admin' ? this.isAdmin = true : this.isAdmin = false;
+      console.log('Variable dedans', this.isAdmin);
 
-  constructor(private authService : AuthService)
-   { this.authService.user_info.subscribe((x) =>{this.isLogged = x});}
+    });
 
-   isLogged;
+  }
 
   ngOnInit(): void {
+    //console.log(this.isLogged)
+
   }
   
 
-
-
   logOut(){
     this.authService.logout()
   }
 
 }
+

+ 9 - 0
angular-client/src/app/models/tirage.ts

@@ -0,0 +1,9 @@
+import { User } from '../models/userResponse';
+
+export interface Tirage {
+    nbr_users: number,
+    random_user: number,
+    tirage_date: Date,
+    winner: User,
+    isExecuted: boolean
+}

+ 15 - 18
angular-client/src/app/services/auth.service.ts

@@ -36,7 +36,7 @@ export class AuthService {
 
     this.user_infoSubject = new BehaviorSubject<User>(JSON.parse(localStorage.getItem('user')));
     this.user_info = this.user_infoSubject.asObservable();
-
+    
   }
 
   changeMessage(message: string) {
@@ -55,7 +55,7 @@ export class AuthService {
 
   // login get  token on login 
   signIn(credentials): Observable<Token> {
-    // debugger;
+     //debugger;
     console.log("url ========",this.apiUrl);
 
     return this.http.post<Token>(`${this.apiUrl}/api/auth/login`, credentials)
@@ -66,6 +66,19 @@ export class AuthService {
         return token;
       }));
   }
+    // login get  token on login admin
+    signInAdmin(credentials): Observable<Token> {
+       //debugger;
+      console.log("url ========",this.apiUrl);
+  
+      return this.http.post<Token>(`${this.apiUrl}/api/auth/admin`, credentials)
+        .pipe(map(token => {
+          // store jwt token in local storage 
+          localStorage.setItem('token', JSON.stringify(token));
+          this.tokenSubject.next(token);
+          return token;
+        }));
+    }
 
 
 
@@ -94,14 +107,6 @@ resetPassword(data): Observable<any> {
   return this.http.put<any>(`${this.apiUrl}/api/auth/reset-password`, data)
 }
 
-
-
-
-
-
-
-
-
   // isLoggedIn
   public isLoggedIn() {
     return localStorage.getItem('token') !== null;
@@ -118,9 +123,6 @@ resetPassword(data): Observable<any> {
     this.router.navigate(['/login']);
   }
 
-
-   
-
   // get info user 
   getUserInfo(): Observable<User> {
     
@@ -135,11 +137,6 @@ resetPassword(data): Observable<any> {
     
   }
 
-
-  
-
-
-
   openSnackBar(message: string) {
     this.snackBar.openFromComponent(AlertMessageComponent, {
       data: message,

+ 3 - 0
angular-client/tsconfig.json

@@ -14,6 +14,9 @@
     "lib": [
       "es2018",
       "dom"
+    ],
+    "typeRoots": [
+      "node_modules/@types"
     ]
   },
   "angularCompilerOptions": {

+ 41 - 3
express-server/controllers/auth.js

@@ -65,12 +65,9 @@ exports.signup = async (req, res, next) => {
 };
 
 
-
-
 //login User
 exports.login = (req, res, next) => {   
 
-debugger;
     try {
 
         // génère une exception
@@ -86,9 +83,16 @@ debugger;
                 bcrypt.compare(req.body.password, user.password)
                     .then(valid => {
                         if (!valid) { return res.status(401).json({ success: false, message: 'Mot de passe incorrect' }) }
+                        if(user.role == 'client') {
                         const token = jwt.sign({ userId: user._id, email: user.email, role: user.role }, config.secret_key, { expiresIn: '10 h' })
                         res.status(200).json(
                             { success: true, token, expireIn: `${new Date().getTime() + 120000}` })
+                        } else {
+                            res.status(403).json({
+                                success: false,
+                                message: 'Permission failed'
+                            })
+                        }
                     })
                     .catch(error => res.status(500).json({ error }))
             })
@@ -98,8 +102,42 @@ debugger;
 
 };
 
+//login User
+exports.loginAdmin = (req, res, next) => {   
+
+    try {
+
+        // génère une exception
+        if (!req.body.email) { throw new Error('Adresse email introuvable') }
+        if (!req.body.password) { throw new Error('Mot de passe introuvable') }
+        if (!validator.isEmail(req.body.email)) { throw new Error('Adresse email invalide') }
 
+        User.findOne({ email: req.body.email })
+            .then(user => {
+                if (!user) {
+                    return res.status(404).json({ success: false, message: 'Utilisateur non trouvé' });
+                }
+                bcrypt.compare(req.body.password, user.password)
+                    .then(valid => {
+                        if (!valid) { return res.status(401).json({ success: false, message: 'Mot de passe incorrect' }) }
+                        if(user.role == 'admin' || user.role == 'employee') {
+                        const token = jwt.sign({ userId: user._id, email: user.email, role: user.role }, config.secret_key, { expiresIn: '10 h' })
+                        res.status(200).json(
+                            { success: true, token, expireIn: `${new Date().getTime() + 120000}` })
+                        } else {
+                            res.status(403).json({
+                                success: false,
+                                message: 'Permission failed'
+                            })
+                        }
+                    })
+                    .catch(error => res.status(500).json({ error }))
+            })
+            .catch(error => res.status(500).json({ error }));
+    }
+    catch (err) { res.status(400).json({ success: false, message: err.message }) }
 
+};
 
 //forgot password
 exports.forgotPassword = async (req, res, next) => {

+ 1 - 1
express-server/controllers/tirage.js

@@ -58,7 +58,7 @@ exports.getTirage = async (req, res, next) => {
                 && date_now.getDate() === new Date(db_tirage.tirage_date).getDate()) {
 
                 // exec tirage au sort
-                User.countDocuments({ isActive: true }).exec(function (err, count) {
+                User.countDocuments({ isActive: true, role: "client" }).exec(function (err, count) {
                     if (count !== 0) {
                         var random = Math.floor(Math.random() * count);
 

+ 0 - 2
express-server/middleware/limit-requests.js

@@ -1,7 +1,5 @@
 const rateLimit = require("express-rate-limit");
 
-
-
  const LimitRequests = rateLimit({
     windowMs: 10 * 60000, // 10 min en milliseconds
     max: 5, // 5 tentatives 

+ 1 - 1
express-server/node_modules/.bin/mime

@@ -2,7 +2,7 @@
 basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 
 case `uname` in
-    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
 esac
 
 if [ -x "$basedir/node" ]; then

+ 16 - 6
express-server/node_modules/.bin/mime.cmd

@@ -1,7 +1,17 @@
-@IF EXIST "%~dp0\node.exe" (
-  "%~dp0\node.exe"  "%~dp0\..\mime\cli.js" %*
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
 ) ELSE (
-  @SETLOCAL
-  @SET PATHEXT=%PATHEXT:;.JS;=;%
-  node  "%~dp0\..\mime\cli.js" %*
-)
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\mime\cli.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 1 - 1
express-server/node_modules/.bin/mkdirp

@@ -2,7 +2,7 @@
 basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
 
 case `uname` in
-    *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
 esac
 
 if [ -x "$basedir/node" ]; then

+ 16 - 6
express-server/node_modules/.bin/mkdirp.cmd

@@ -1,7 +1,17 @@
-@IF EXIST "%~dp0\node.exe" (
-  "%~dp0\node.exe"  "%~dp0\..\mkdirp\bin\cmd.js" %*
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
 ) ELSE (
-  @SETLOCAL
-  @SET PATHEXT=%PATHEXT:;.JS;=;%
-  node  "%~dp0\..\mkdirp\bin\cmd.js" %*
-)
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\mkdirp\bin\cmd.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 10 - 13
express-server/node_modules/accepts/package.json

@@ -1,35 +1,31 @@
 {
-  "_args": [
-    [
-      "accepts@1.3.7",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "accepts@1.3.7",
+  "_from": "accepts@~1.3.7",
   "_id": "accepts@1.3.7",
   "_inBundle": false,
   "_integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
   "_location": "/accepts",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "accepts@1.3.7",
+    "raw": "accepts@~1.3.7",
     "name": "accepts",
     "escapedName": "accepts",
-    "rawSpec": "1.3.7",
+    "rawSpec": "~1.3.7",
     "saveSpec": null,
-    "fetchSpec": "1.3.7"
+    "fetchSpec": "~1.3.7"
   },
   "_requiredBy": [
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
-  "_spec": "1.3.7",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "531bc726517a3b2b41f850021c6cc15eaab507cd",
+  "_spec": "accepts@~1.3.7",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/jshttp/accepts/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -45,6 +41,7 @@
     "mime-types": "~2.1.24",
     "negotiator": "0.6.2"
   },
+  "deprecated": false,
   "description": "Higher-level content negotiation",
   "devDependencies": {
     "deep-equal": "1.0.1",

+ 5 - 8
express-server/node_modules/array-flatten/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "array-flatten@1.1.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "array-flatten@1.1.1",
   "_id": "array-flatten@1.1.1",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
-  "_spec": "1.1.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "9a5f699051b1e7073328f2a008968b64ea2955d2",
+  "_spec": "array-flatten@1.1.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Blake Embrey",
     "email": "hello@blakeembrey.com",
@@ -35,6 +30,8 @@
   "bugs": {
     "url": "https://github.com/blakeembrey/array-flatten/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Flatten an array of nested arrays into a single flat array",
   "devDependencies": {
     "istanbul": "^0.3.13",

+ 10 - 13
express-server/node_modules/body-parser/package.json

@@ -1,36 +1,32 @@
 {
-  "_args": [
-    [
-      "body-parser@1.19.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "body-parser@1.19.0",
+  "_from": "body-parser@^1.19.0",
   "_id": "body-parser@1.19.0",
   "_inBundle": false,
   "_integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
   "_location": "/body-parser",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "body-parser@1.19.0",
+    "raw": "body-parser@^1.19.0",
     "name": "body-parser",
     "escapedName": "body-parser",
-    "rawSpec": "1.19.0",
+    "rawSpec": "^1.19.0",
     "saveSpec": null,
-    "fetchSpec": "1.19.0"
+    "fetchSpec": "^1.19.0"
   },
   "_requiredBy": [
     "/",
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
-  "_spec": "1.19.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "96b2709e57c9c4e09a6fd66a8fd979844f69f08a",
+  "_spec": "body-parser@^1.19.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server",
   "bugs": {
     "url": "https://github.com/expressjs/body-parser/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -54,6 +50,7 @@
     "raw-body": "2.4.0",
     "type-is": "~1.6.17"
   },
+  "deprecated": false,
   "description": "Node.js body parsing middleware",
   "devDependencies": {
     "eslint": "5.16.0",

+ 5 - 8
express-server/node_modules/bytes/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "bytes@3.1.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "bytes@3.1.0",
   "_id": "bytes@3.1.0",
   "_inBundle": false,
@@ -26,8 +20,9 @@
     "/raw-body"
   ],
   "_resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
-  "_spec": "3.1.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "f6cf7933a360e0588fa9fde85651cdc7f805d1f6",
+  "_spec": "bytes@3.1.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\body-parser",
   "author": {
     "name": "TJ Holowaychuk",
     "email": "tj@vision-media.ca",
@@ -36,6 +31,7 @@
   "bugs": {
     "url": "https://github.com/visionmedia/bytes.js/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Jed Watson",
@@ -46,6 +42,7 @@
       "email": "theo.fidry@gmail.com"
     }
   ],
+  "deprecated": false,
   "description": "Utility to parse a string bytes to bytes and vice-versa",
   "devDependencies": {
     "eslint": "5.12.1",

+ 25 - 27
express-server/node_modules/camelcase/package.json

@@ -1,32 +1,27 @@
 {
-  "_args": [
-    [
-      "camelcase@4.1.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "camelcase@4.1.0",
-  "_id": "camelcase@4.1.0",
+  "_from": "camelcase@^5.3.1",
+  "_id": "camelcase@5.3.1",
   "_inBundle": false,
-  "_integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+  "_integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
   "_location": "/camelcase",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "camelcase@4.1.0",
+    "raw": "camelcase@^5.3.1",
     "name": "camelcase",
     "escapedName": "camelcase",
-    "rawSpec": "4.1.0",
+    "rawSpec": "^5.3.1",
     "saveSpec": null,
-    "fetchSpec": "4.1.0"
+    "fetchSpec": "^5.3.1"
   },
   "_requiredBy": [
     "/boxen"
   ],
-  "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
-  "_spec": "4.1.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+  "_shasum": "e3c9b31569e106811df242f715725a1f4c494320",
+  "_spec": "camelcase@^5.3.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\boxen",
   "author": {
     "name": "Sindre Sorhus",
     "email": "sindresorhus@gmail.com",
@@ -35,16 +30,20 @@
   "bugs": {
     "url": "https://github.com/sindresorhus/camelcase/issues"
   },
-  "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar",
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`",
   "devDependencies": {
-    "ava": "*",
-    "xo": "*"
+    "ava": "^1.4.1",
+    "tsd": "^0.7.1",
+    "xo": "^0.24.0"
   },
   "engines": {
-    "node": ">=4"
+    "node": ">=6"
   },
   "files": [
-    "index.js"
+    "index.js",
+    "index.d.ts"
   ],
   "homepage": "https://github.com/sindresorhus/camelcase#readme",
   "keywords": [
@@ -59,7 +58,9 @@
     "separator",
     "string",
     "text",
-    "convert"
+    "convert",
+    "pascalcase",
+    "pascal-case"
   ],
   "license": "MIT",
   "name": "camelcase",
@@ -68,10 +69,7 @@
     "url": "git+https://github.com/sindresorhus/camelcase.git"
   },
   "scripts": {
-    "test": "xo && ava"
+    "test": "xo && ava && tsd"
   },
-  "version": "4.1.0",
-  "xo": {
-    "esnext": true
-  }
+  "version": "5.3.1"
 }

+ 5 - 8
express-server/node_modules/content-disposition/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "content-disposition@0.5.3",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "content-disposition@0.5.3",
   "_id": "content-disposition@0.5.3",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
-  "_spec": "0.5.3",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "e130caf7e7279087c5616c2007d0485698984fbd",
+  "_spec": "content-disposition@0.5.3",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Douglas Christopher Wilson",
     "email": "doug@somethingdoug.com"
@@ -34,9 +29,11 @@
   "bugs": {
     "url": "https://github.com/jshttp/content-disposition/issues"
   },
+  "bundleDependencies": false,
   "dependencies": {
     "safe-buffer": "5.1.2"
   },
+  "deprecated": false,
   "description": "Create and parse Content-Disposition header",
   "devDependencies": {
     "deep-equal": "1.0.1",

+ 10 - 13
express-server/node_modules/content-type/package.json

@@ -1,33 +1,28 @@
 {
-  "_args": [
-    [
-      "content-type@1.0.4",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "content-type@1.0.4",
+  "_from": "content-type@~1.0.4",
   "_id": "content-type@1.0.4",
   "_inBundle": false,
   "_integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
   "_location": "/content-type",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "content-type@1.0.4",
+    "raw": "content-type@~1.0.4",
     "name": "content-type",
     "escapedName": "content-type",
-    "rawSpec": "1.0.4",
+    "rawSpec": "~1.0.4",
     "saveSpec": null,
-    "fetchSpec": "1.0.4"
+    "fetchSpec": "~1.0.4"
   },
   "_requiredBy": [
     "/body-parser",
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
-  "_spec": "1.0.4",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "e138cc75e040c727b1966fe5e5f8c9aee256fe3b",
+  "_spec": "content-type@~1.0.4",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Douglas Christopher Wilson",
     "email": "doug@somethingdoug.com"
@@ -35,6 +30,8 @@
   "bugs": {
     "url": "https://github.com/jshttp/content-type/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Create and parse HTTP Content-Type header",
   "devDependencies": {
     "eslint": "3.19.0",

+ 5 - 8
express-server/node_modules/cookie-signature/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "cookie-signature@1.0.6",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "cookie-signature@1.0.6",
   "_id": "cookie-signature@1.0.6",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
-  "_spec": "1.0.6",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c",
+  "_spec": "cookie-signature@1.0.6",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "TJ Holowaychuk",
     "email": "tj@learnboost.com"
@@ -34,7 +29,9 @@
   "bugs": {
     "url": "https://github.com/visionmedia/node-cookie-signature/issues"
   },
+  "bundleDependencies": false,
   "dependencies": {},
+  "deprecated": false,
   "description": "Sign and unsign cookies",
   "devDependencies": {
     "mocha": "*",

+ 5 - 8
express-server/node_modules/cookie/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "cookie@0.4.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "cookie@0.4.0",
   "_id": "cookie@0.4.0",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
-  "_spec": "0.4.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "beb437e7022b3b6d49019d088665303ebe9c14ba",
+  "_spec": "cookie@0.4.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Roman Shtylman",
     "email": "shtylman@gmail.com"
@@ -34,12 +29,14 @@
   "bugs": {
     "url": "https://github.com/jshttp/cookie/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
       "email": "doug@somethingdoug.com"
     }
   ],
+  "deprecated": false,
   "description": "HTTP server cookie parsing and serialization",
   "devDependencies": {
     "beautify-benchmark": "0.2.4",

+ 5 - 8
express-server/node_modules/debug/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "debug@2.6.9",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "debug@2.6.9",
   "_id": "debug@2.6.9",
   "_inBundle": false,
@@ -30,8 +24,9 @@
     "/undefsafe"
   ],
   "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-  "_spec": "2.6.9",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "5d128515df134ff327e90a4c93f4e077a536341f",
+  "_spec": "debug@2.6.9",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "TJ Holowaychuk",
     "email": "tj@vision-media.ca"
@@ -40,6 +35,7 @@
   "bugs": {
     "url": "https://github.com/visionmedia/debug/issues"
   },
+  "bundleDependencies": false,
   "component": {
     "scripts": {
       "debug/index.js": "browser.js",
@@ -60,6 +56,7 @@
   "dependencies": {
     "ms": "2.0.0"
   },
+  "deprecated": false,
   "description": "small debugging utility",
   "devDependencies": {
     "browserify": "9.0.3",

+ 10 - 13
express-server/node_modules/depd/package.json

@@ -1,25 +1,19 @@
 {
-  "_args": [
-    [
-      "depd@1.1.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "depd@1.1.2",
+  "_from": "depd@~1.1.2",
   "_id": "depd@1.1.2",
   "_inBundle": false,
   "_integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
   "_location": "/depd",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "depd@1.1.2",
+    "raw": "depd@~1.1.2",
     "name": "depd",
     "escapedName": "depd",
-    "rawSpec": "1.1.2",
+    "rawSpec": "~1.1.2",
     "saveSpec": null,
-    "fetchSpec": "1.1.2"
+    "fetchSpec": "~1.1.2"
   },
   "_requiredBy": [
     "/body-parser",
@@ -28,8 +22,9 @@
     "/send"
   ],
   "_resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-  "_spec": "1.1.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "9bcd52e14c097763e749b274c4346ed2e560b5a9",
+  "_spec": "depd@~1.1.2",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Douglas Christopher Wilson",
     "email": "doug@somethingdoug.com"
@@ -38,6 +33,8 @@
   "bugs": {
     "url": "https://github.com/dougwilson/nodejs-depd/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Deprecate all the things",
   "devDependencies": {
     "beautify-benchmark": "0.2.4",

+ 10 - 13
express-server/node_modules/destroy/package.json

@@ -1,32 +1,27 @@
 {
-  "_args": [
-    [
-      "destroy@1.0.4",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "destroy@1.0.4",
+  "_from": "destroy@~1.0.4",
   "_id": "destroy@1.0.4",
   "_inBundle": false,
   "_integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
   "_location": "/destroy",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "destroy@1.0.4",
+    "raw": "destroy@~1.0.4",
     "name": "destroy",
     "escapedName": "destroy",
-    "rawSpec": "1.0.4",
+    "rawSpec": "~1.0.4",
     "saveSpec": null,
-    "fetchSpec": "1.0.4"
+    "fetchSpec": "~1.0.4"
   },
   "_requiredBy": [
     "/send"
   ],
   "_resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
-  "_spec": "1.0.4",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "978857442c44749e4206613e37946205826abd80",
+  "_spec": "destroy@~1.0.4",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\send",
   "author": {
     "name": "Jonathan Ong",
     "email": "me@jongleberry.com",
@@ -35,12 +30,14 @@
   "bugs": {
     "url": "https://github.com/stream-utils/destroy/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
       "email": "doug@somethingdoug.com"
     }
   ],
+  "deprecated": false,
   "description": "destroy a stream if possible",
   "devDependencies": {
     "istanbul": "0.4.2",

+ 5 - 8
express-server/node_modules/ee-first/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "ee-first@1.1.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "ee-first@1.1.1",
   "_id": "ee-first@1.1.1",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/on-finished"
   ],
   "_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
-  "_spec": "1.1.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d",
+  "_spec": "ee-first@1.1.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\on-finished",
   "author": {
     "name": "Jonathan Ong",
     "email": "me@jongleberry.com",
@@ -35,12 +30,14 @@
   "bugs": {
     "url": "https://github.com/jonathanong/ee-first/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
       "email": "doug@somethingdoug.com"
     }
   ],
+  "deprecated": false,
   "description": "return the first event in a set of ee/event pairs",
   "devDependencies": {
     "istanbul": "0.3.9",

+ 10 - 13
express-server/node_modules/encodeurl/package.json

@@ -1,25 +1,19 @@
 {
-  "_args": [
-    [
-      "encodeurl@1.0.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "encodeurl@1.0.2",
+  "_from": "encodeurl@~1.0.2",
   "_id": "encodeurl@1.0.2",
   "_inBundle": false,
   "_integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
   "_location": "/encodeurl",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "encodeurl@1.0.2",
+    "raw": "encodeurl@~1.0.2",
     "name": "encodeurl",
     "escapedName": "encodeurl",
-    "rawSpec": "1.0.2",
+    "rawSpec": "~1.0.2",
     "saveSpec": null,
-    "fetchSpec": "1.0.2"
+    "fetchSpec": "~1.0.2"
   },
   "_requiredBy": [
     "/express",
@@ -28,17 +22,20 @@
     "/serve-static"
   ],
   "_resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
-  "_spec": "1.0.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59",
+  "_spec": "encodeurl@~1.0.2",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/pillarjs/encodeurl/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
       "email": "doug@somethingdoug.com"
     }
   ],
+  "deprecated": false,
   "description": "Encode a URL to a percent-encoded form, excluding already-encoded sequences",
   "devDependencies": {
     "eslint": "3.19.0",

+ 10 - 13
express-server/node_modules/escape-html/package.json

@@ -1,25 +1,19 @@
 {
-  "_args": [
-    [
-      "escape-html@1.0.3",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "escape-html@1.0.3",
+  "_from": "escape-html@~1.0.3",
   "_id": "escape-html@1.0.3",
   "_inBundle": false,
   "_integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
   "_location": "/escape-html",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "escape-html@1.0.3",
+    "raw": "escape-html@~1.0.3",
     "name": "escape-html",
     "escapedName": "escape-html",
-    "rawSpec": "1.0.3",
+    "rawSpec": "~1.0.3",
     "saveSpec": null,
-    "fetchSpec": "1.0.3"
+    "fetchSpec": "~1.0.3"
   },
   "_requiredBy": [
     "/express",
@@ -28,11 +22,14 @@
     "/serve-static"
   ],
   "_resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
-  "_spec": "1.0.3",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "0258eae4d3d0c0974de1c169188ef0051d1d1988",
+  "_spec": "escape-html@~1.0.3",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/component/escape-html/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Escape string for use in HTML",
   "devDependencies": {
     "beautify-benchmark": "0.2.4",

+ 10 - 13
express-server/node_modules/etag/package.json

@@ -1,36 +1,32 @@
 {
-  "_args": [
-    [
-      "etag@1.8.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "etag@1.8.1",
+  "_from": "etag@~1.8.1",
   "_id": "etag@1.8.1",
   "_inBundle": false,
   "_integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
   "_location": "/etag",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "etag@1.8.1",
+    "raw": "etag@~1.8.1",
     "name": "etag",
     "escapedName": "etag",
-    "rawSpec": "1.8.1",
+    "rawSpec": "~1.8.1",
     "saveSpec": null,
-    "fetchSpec": "1.8.1"
+    "fetchSpec": "~1.8.1"
   },
   "_requiredBy": [
     "/express",
     "/send"
   ],
   "_resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
-  "_spec": "1.8.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "41ae2eeb65efa62268aebfea83ac7d79299b0887",
+  "_spec": "etag@~1.8.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/jshttp/etag/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -41,6 +37,7 @@
       "email": "david.bjorklund@gmail.com"
     }
   ],
+  "deprecated": false,
   "description": "Create simple HTTP ETags",
   "devDependencies": {
     "beautify-benchmark": "0.2.4",

+ 10 - 13
express-server/node_modules/express/package.json

@@ -1,33 +1,28 @@
 {
-  "_args": [
-    [
-      "express@4.17.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "express@4.17.1",
+  "_from": "express@^4.17.1",
   "_id": "express@4.17.1",
   "_inBundle": false,
   "_integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
   "_location": "/express",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "express@4.17.1",
+    "raw": "express@^4.17.1",
     "name": "express",
     "escapedName": "express",
-    "rawSpec": "4.17.1",
+    "rawSpec": "^4.17.1",
     "saveSpec": null,
-    "fetchSpec": "4.17.1"
+    "fetchSpec": "^4.17.1"
   },
   "_requiredBy": [
     "/",
     "/api-express-exporter"
   ],
   "_resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
-  "_spec": "4.17.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "4491fc38605cf51f8629d39c2b5d026f98a4c134",
+  "_spec": "express@^4.17.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server",
   "author": {
     "name": "TJ Holowaychuk",
     "email": "tj@vision-media.ca"
@@ -35,6 +30,7 @@
   "bugs": {
     "url": "https://github.com/expressjs/express/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Aaron Heckmann",
@@ -97,6 +93,7 @@
     "utils-merge": "1.0.1",
     "vary": "~1.1.2"
   },
+  "deprecated": false,
   "description": "Fast, unopinionated, minimalist web framework",
   "devDependencies": {
     "after": "0.8.2",

+ 10 - 13
express-server/node_modules/finalhandler/package.json

@@ -1,32 +1,27 @@
 {
-  "_args": [
-    [
-      "finalhandler@1.1.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "finalhandler@1.1.2",
+  "_from": "finalhandler@~1.1.2",
   "_id": "finalhandler@1.1.2",
   "_inBundle": false,
   "_integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
   "_location": "/finalhandler",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "finalhandler@1.1.2",
+    "raw": "finalhandler@~1.1.2",
     "name": "finalhandler",
     "escapedName": "finalhandler",
-    "rawSpec": "1.1.2",
+    "rawSpec": "~1.1.2",
     "saveSpec": null,
-    "fetchSpec": "1.1.2"
+    "fetchSpec": "~1.1.2"
   },
   "_requiredBy": [
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
-  "_spec": "1.1.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "b7e7d000ffd11938d0fdb053506f6ebabe9f587d",
+  "_spec": "finalhandler@~1.1.2",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Douglas Christopher Wilson",
     "email": "doug@somethingdoug.com"
@@ -34,6 +29,7 @@
   "bugs": {
     "url": "https://github.com/pillarjs/finalhandler/issues"
   },
+  "bundleDependencies": false,
   "dependencies": {
     "debug": "2.6.9",
     "encodeurl": "~1.0.2",
@@ -43,6 +39,7 @@
     "statuses": "~1.5.0",
     "unpipe": "~1.0.0"
   },
+  "deprecated": false,
   "description": "Node.js final http responder",
   "devDependencies": {
     "eslint": "5.16.0",

+ 5 - 0
express-server/node_modules/forwarded/HISTORY.md

@@ -1,3 +1,8 @@
+0.2.0 / 2021-05-31
+==================
+
+  * Use `req.socket` over deprecated `req.connection`
+
 0.1.2 / 2017-09-14
 ==================
 

+ 3 - 3
express-server/node_modules/forwarded/README.md

@@ -3,7 +3,7 @@
 [![NPM Version][npm-image]][npm-url]
 [![NPM Downloads][downloads-image]][downloads-url]
 [![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
+[![Build Status][ci-image]][ci-url]
 [![Test Coverage][coveralls-image]][coveralls-url]
 
 Parse HTTP X-Forwarded-For header
@@ -45,12 +45,12 @@ $ npm test
 
 [MIT](LICENSE)
 
+[ci-image]: https://badgen.net/github/checks/jshttp/forwarded/master?label=ci
+[ci-url]: https://github.com/jshttp/forwarded/actions?query=workflow%3Aci
 [npm-image]: https://img.shields.io/npm/v/forwarded.svg
 [npm-url]: https://npmjs.org/package/forwarded
 [node-version-image]: https://img.shields.io/node/v/forwarded.svg
 [node-version-url]: https://nodejs.org/en/download/
-[travis-image]: https://img.shields.io/travis/jshttp/forwarded/master.svg
-[travis-url]: https://travis-ci.org/jshttp/forwarded
 [coveralls-image]: https://img.shields.io/coveralls/jshttp/forwarded/master.svg
 [coveralls-url]: https://coveralls.io/r/jshttp/forwarded?branch=master
 [downloads-image]: https://img.shields.io/npm/dm/forwarded.svg

+ 15 - 1
express-server/node_modules/forwarded/index.js

@@ -28,13 +28,27 @@ function forwarded (req) {
 
   // simple header parsing
   var proxyAddrs = parse(req.headers['x-forwarded-for'] || '')
-  var socketAddr = req.connection.remoteAddress
+  var socketAddr = getSocketAddr(req)
   var addrs = [socketAddr].concat(proxyAddrs)
 
   // return all addresses
   return addrs
 }
 
+/**
+ * Get the socket address for a request.
+ *
+ * @param {object} req
+ * @return {string}
+ * @private
+ */
+
+function getSocketAddr (req) {
+  return req.socket
+    ? req.socket.remoteAddress
+    : req.connection.remoteAddress
+}
+
 /**
  * Parse the X-Forwarded-For header.
  *

+ 25 - 26
express-server/node_modules/forwarded/package.json

@@ -1,53 +1,51 @@
 {
-  "_args": [
-    [
-      "forwarded@0.1.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "forwarded@0.1.2",
-  "_id": "forwarded@0.1.2",
+  "_from": "forwarded@0.2.0",
+  "_id": "forwarded@0.2.0",
   "_inBundle": false,
-  "_integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+  "_integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
   "_location": "/forwarded",
   "_phantomChildren": {},
   "_requested": {
     "type": "version",
     "registry": true,
-    "raw": "forwarded@0.1.2",
+    "raw": "forwarded@0.2.0",
     "name": "forwarded",
     "escapedName": "forwarded",
-    "rawSpec": "0.1.2",
+    "rawSpec": "0.2.0",
     "saveSpec": null,
-    "fetchSpec": "0.1.2"
+    "fetchSpec": "0.2.0"
   },
   "_requiredBy": [
     "/proxy-addr"
   ],
-  "_resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
-  "_spec": "0.1.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+  "_shasum": "2269936428aad4c15c7ebe9779a84bf0b2a81811",
+  "_spec": "forwarded@0.2.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\proxy-addr",
   "bugs": {
     "url": "https://github.com/jshttp/forwarded/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
       "email": "doug@somethingdoug.com"
     }
   ],
+  "deprecated": false,
   "description": "Parse HTTP X-Forwarded-For header",
   "devDependencies": {
     "beautify-benchmark": "0.2.4",
     "benchmark": "2.1.4",
-    "eslint": "3.19.0",
-    "eslint-config-standard": "10.2.1",
-    "eslint-plugin-import": "2.7.0",
-    "eslint-plugin-node": "5.1.1",
-    "eslint-plugin-promise": "3.5.0",
-    "eslint-plugin-standard": "3.0.1",
-    "istanbul": "0.4.5",
-    "mocha": "1.21.5"
+    "deep-equal": "1.0.1",
+    "eslint": "7.27.0",
+    "eslint-config-standard": "14.1.1",
+    "eslint-plugin-import": "2.23.4",
+    "eslint-plugin-node": "11.1.0",
+    "eslint-plugin-promise": "4.3.1",
+    "eslint-plugin-standard": "4.1.0",
+    "mocha": "8.4.0",
+    "nyc": "15.1.0"
   },
   "engines": {
     "node": ">= 0.6"
@@ -74,8 +72,9 @@
     "bench": "node benchmark/index.js",
     "lint": "eslint .",
     "test": "mocha --reporter spec --bail --check-leaks test/",
-    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
-    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
+    "test-ci": "nyc --reporter=lcov --reporter=text npm test",
+    "test-cov": "nyc --reporter=html --reporter=text npm test",
+    "version": "node scripts/version-history.js && git add HISTORY.md"
   },
-  "version": "0.1.2"
+  "version": "0.2.0"
 }

+ 5 - 8
express-server/node_modules/fresh/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "fresh@0.5.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "fresh@0.5.2",
   "_id": "fresh@0.5.2",
   "_inBundle": false,
@@ -26,8 +20,9 @@
     "/send"
   ],
   "_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
-  "_spec": "0.5.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "3d8cadd90d976569fa835ab1f8e4b23a105605a7",
+  "_spec": "fresh@0.5.2",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "TJ Holowaychuk",
     "email": "tj@vision-media.ca",
@@ -36,6 +31,7 @@
   "bugs": {
     "url": "https://github.com/jshttp/fresh/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -47,6 +43,7 @@
       "url": "http://jongleberry.com"
     }
   ],
+  "deprecated": false,
   "description": "HTTP response freshness testing",
   "devDependencies": {
     "beautify-benchmark": "0.2.4",

+ 5 - 8
express-server/node_modules/http-errors/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "http-errors@1.7.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "http-errors@1.7.2",
   "_id": "http-errors@1.7.2",
   "_inBundle": false,
@@ -27,8 +21,9 @@
     "/send"
   ],
   "_resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
-  "_spec": "1.7.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "4f5029cf13239f31036e5b2e55292bcfbcc85c8f",
+  "_spec": "http-errors@1.7.2",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\body-parser",
   "author": {
     "name": "Jonathan Ong",
     "email": "me@jongleberry.com",
@@ -37,6 +32,7 @@
   "bugs": {
     "url": "https://github.com/jshttp/http-errors/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Alan Plum",
@@ -54,6 +50,7 @@
     "statuses": ">= 1.5.0 < 2",
     "toidentifier": "1.0.0"
   },
+  "deprecated": false,
   "description": "Create HTTP error objects",
   "devDependencies": {
     "eslint": "5.13.0",

+ 5 - 8
express-server/node_modules/iconv-lite/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "iconv-lite@0.4.24",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "iconv-lite@0.4.24",
   "_id": "iconv-lite@0.4.24",
   "_inBundle": false,
@@ -26,8 +20,9 @@
     "/raw-body"
   ],
   "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
-  "_spec": "0.4.24",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "2022b4b25fbddc21d2f524974a474aafe733908b",
+  "_spec": "iconv-lite@0.4.24",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\body-parser",
   "author": {
     "name": "Alexander Shtuchkin",
     "email": "ashtuchkin@gmail.com"
@@ -39,9 +34,11 @@
   "bugs": {
     "url": "https://github.com/ashtuchkin/iconv-lite/issues"
   },
+  "bundleDependencies": false,
   "dependencies": {
     "safer-buffer": ">= 2.1.2 < 3"
   },
+  "deprecated": false,
   "description": "Convert character encodings in pure javascript.",
   "devDependencies": {
     "async": "*",

+ 5 - 8
express-server/node_modules/inherits/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "inherits@2.0.3",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "inherits@2.0.3",
   "_id": "inherits@2.0.3",
   "_inBundle": false,
@@ -28,12 +22,15 @@
     "/readable-stream"
   ],
   "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-  "_spec": "2.0.3",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "633c2c83e3da42a502f52466022480f4208261de",
+  "_spec": "inherits@2.0.3",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\http-errors",
   "browser": "./inherits_browser.js",
   "bugs": {
     "url": "https://github.com/isaacs/inherits/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
   "devDependencies": {
     "tap": "^7.1.0"

+ 5 - 8
express-server/node_modules/ipaddr.js/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "ipaddr.js@1.9.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "ipaddr.js@1.9.1",
   "_id": "ipaddr.js@1.9.1",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/proxy-addr"
   ],
   "_resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
-  "_spec": "1.9.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "bff38543eeb8984825079ff3a2a8e6cbd46781b3",
+  "_spec": "ipaddr.js@1.9.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\proxy-addr",
   "author": {
     "name": "whitequark",
     "email": "whitequark@whitequark.org"
@@ -34,7 +29,9 @@
   "bugs": {
     "url": "https://github.com/whitequark/ipaddr.js/issues"
   },
+  "bundleDependencies": false,
   "dependencies": {},
+  "deprecated": false,
   "description": "A library for manipulating IPv4 and IPv6 addresses in JavaScript.",
   "devDependencies": {
     "coffee-script": "~1.12.6",

+ 5 - 8
express-server/node_modules/media-typer/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "media-typer@0.3.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "media-typer@0.3.0",
   "_id": "media-typer@0.3.0",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/type-is"
   ],
   "_resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
-  "_spec": "0.3.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "8710d7af0aa626f8fffa1ce00168545263255748",
+  "_spec": "media-typer@0.3.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\type-is",
   "author": {
     "name": "Douglas Christopher Wilson",
     "email": "doug@somethingdoug.com"
@@ -34,6 +29,8 @@
   "bugs": {
     "url": "https://github.com/jshttp/media-typer/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Simple RFC 6838 media type parser and formatter",
   "devDependencies": {
     "istanbul": "0.3.2",

+ 5 - 8
express-server/node_modules/merge-descriptors/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "merge-descriptors@1.0.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "merge-descriptors@1.0.1",
   "_id": "merge-descriptors@1.0.1",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
-  "_spec": "1.0.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "b00aaa556dd8b44568150ec9d1b953f3f90cbb61",
+  "_spec": "merge-descriptors@1.0.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Jonathan Ong",
     "email": "me@jongleberry.com",
@@ -35,6 +30,7 @@
   "bugs": {
     "url": "https://github.com/component/merge-descriptors/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -45,6 +41,7 @@
       "email": "grabbou@gmail.com"
     }
   ],
+  "deprecated": false,
   "description": "Merge objects using descriptors",
   "devDependencies": {
     "istanbul": "0.4.1",

+ 10 - 13
express-server/node_modules/methods/package.json

@@ -1,38 +1,34 @@
 {
-  "_args": [
-    [
-      "methods@1.1.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "methods@1.1.2",
+  "_from": "methods@~1.1.2",
   "_id": "methods@1.1.2",
   "_inBundle": false,
   "_integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
   "_location": "/methods",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "methods@1.1.2",
+    "raw": "methods@~1.1.2",
     "name": "methods",
     "escapedName": "methods",
-    "rawSpec": "1.1.2",
+    "rawSpec": "~1.1.2",
     "saveSpec": null,
-    "fetchSpec": "1.1.2"
+    "fetchSpec": "~1.1.2"
   },
   "_requiredBy": [
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
-  "_spec": "1.1.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "5529a4d67654134edcc5266656835b0f851afcee",
+  "_spec": "methods@~1.1.2",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "browser": {
     "http": false
   },
   "bugs": {
     "url": "https://github.com/jshttp/methods/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -49,6 +45,7 @@
       "url": "http://tjholowaychuk.com"
     }
   ],
+  "deprecated": false,
   "description": "HTTP methods that node supports",
   "devDependencies": {
     "istanbul": "0.4.1",

+ 47 - 0
express-server/node_modules/mime-db/HISTORY.md

@@ -1,3 +1,50 @@
+1.49.0 / 2021-07-26
+===================
+
+  * Add extension `.trig` to `application/trig`
+  * Add new upstream MIME types
+
+1.48.0 / 2021-05-30
+===================
+
+  * Add extension `.mvt` to `application/vnd.mapbox-vector-tile`
+  * Add new upstream MIME types
+  * Mark `text/yaml` as compressible
+
+1.47.0 / 2021-04-01
+===================
+
+  * Add new upstream MIME types
+  * Remove ambigious extensions from IANA for `application/*+xml` types
+  * Update primary extension to `.es` for `application/ecmascript`
+
+1.46.0 / 2021-02-13
+===================
+
+  * Add extension `.amr` to `audio/amr`
+  * Add extension `.m4s` to `video/iso.segment`
+  * Add extension `.opus` to `audio/ogg`
+  * Add new upstream MIME types
+
+1.45.0 / 2020-09-22
+===================
+
+  * Add `application/ubjson` with extension `.ubj`
+  * Add `image/avif` with extension `.avif`
+  * Add `image/ktx2` with extension `.ktx2`
+  * Add extension `.dbf` to `application/vnd.dbf`
+  * Add extension `.rar` to `application/vnd.rar`
+  * Add extension `.td` to `application/urc-targetdesc+xml`
+  * Add new upstream MIME types
+  * Fix extension of `application/vnd.apple.keynote` to be `.key`
+
+1.44.0 / 2020-04-22
+===================
+
+  * Add charsets from IANA
+  * Add extension `.cjs` to `application/node`
+  * Add new upstream MIME types
+
 1.43.0 / 2020-01-05
 ===================
 

+ 8 - 8
express-server/node_modules/mime-db/README.md

@@ -3,7 +3,7 @@
 [![NPM Version][npm-version-image]][npm-url]
 [![NPM Downloads][npm-downloads-image]][npm-url]
 [![Node.js Version][node-image]][node-url]
-[![Build Status][travis-image]][travis-url]
+[![Build Status][ci-image]][ci-url]
 [![Coverage Status][coveralls-image]][coveralls-url]
 
 This is a database of all mime types.
@@ -35,10 +35,10 @@ https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json
 ## Usage
 
 ```js
-var db = require('mime-db');
+var db = require('mime-db')
 
 // grab data on .js files
-var data = db['application/javascript'];
+var data = db['application/javascript']
 ```
 
 ## Data Structure
@@ -59,11 +59,11 @@ If unknown, every property could be `undefined`.
 
 ## Contributing
 
-To edit the database, only make PRs against `src/custom.json` or
+To edit the database, only make PRs against `src/custom-types.json` or
 `src/custom-suffix.json`.
 
-The `src/custom.json` file is a JSON object with the MIME type as the keys
-and the values being an object with the following keys:
+The `src/custom-types.json` file is a JSON object with the MIME type as the
+keys and the values being an object with the following keys:
 
 - `compressible` - leave out if you don't know, otherwise `true`/`false` to
   indicate whether the data represented by the type is typically compressible.
@@ -89,6 +89,8 @@ definitively lists the media type. If an extension is going to be listed as
 associateed with this media type, the source must definitively link the
 media type and extension as well.
 
+[ci-image]: https://badgen.net/github/checks/jshttp/mime-db/master?label=ci
+[ci-url]: https://github.com/jshttp/mime-db/actions?query=workflow%3Aci
 [coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-db/master
 [coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master
 [node-image]: https://badgen.net/npm/node/mime-db
@@ -96,5 +98,3 @@ media type and extension as well.
 [npm-downloads-image]: https://badgen.net/npm/dm/mime-db
 [npm-url]: https://npmjs.org/package/mime-db
 [npm-version-image]: https://badgen.net/npm/v/mime-db
-[travis-image]: https://badgen.net/travis/jshttp/mime-db/master
-[travis-url]: https://travis-ci.org/jshttp/mime-db

文件差异内容过多而无法显示
+ 382 - 25
express-server/node_modules/mime-db/db.json


+ 24 - 26
express-server/node_modules/mime-db/package.json

@@ -1,35 +1,31 @@
 {
-  "_args": [
-    [
-      "mime-db@1.43.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "mime-db@1.43.0",
-  "_id": "mime-db@1.43.0",
+  "_from": "mime-db@1.49.0",
+  "_id": "mime-db@1.49.0",
   "_inBundle": false,
-  "_integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
+  "_integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==",
   "_location": "/mime-db",
   "_phantomChildren": {},
   "_requested": {
     "type": "version",
     "registry": true,
-    "raw": "mime-db@1.43.0",
+    "raw": "mime-db@1.49.0",
     "name": "mime-db",
     "escapedName": "mime-db",
-    "rawSpec": "1.43.0",
+    "rawSpec": "1.49.0",
     "saveSpec": null,
-    "fetchSpec": "1.43.0"
+    "fetchSpec": "1.49.0"
   },
   "_requiredBy": [
     "/mime-types"
   ],
-  "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
-  "_spec": "1.43.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
+  "_shasum": "f3dfde60c99e9cf3bc9701d687778f537001cbed",
+  "_spec": "mime-db@1.49.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\mime-types",
   "bugs": {
     "url": "https://github.com/jshttp/mime-db/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -46,21 +42,23 @@
       "url": "http://github.com/broofa"
     }
   ],
+  "deprecated": false,
   "description": "Media Type Database",
   "devDependencies": {
     "bluebird": "3.7.2",
     "co": "4.6.0",
     "cogent": "1.0.1",
-    "csv-parse": "4.8.3",
-    "eslint": "6.8.0",
-    "eslint-config-standard": "14.1.0",
-    "eslint-plugin-import": "2.19.1",
-    "eslint-plugin-node": "11.0.0",
-    "eslint-plugin-promise": "4.2.1",
-    "eslint-plugin-standard": "4.0.1",
+    "csv-parse": "4.16.0",
+    "eslint": "7.31.0",
+    "eslint-config-standard": "15.0.1",
+    "eslint-plugin-import": "2.23.4",
+    "eslint-plugin-markdown": "2.2.0",
+    "eslint-plugin-node": "11.1.0",
+    "eslint-plugin-promise": "5.1.0",
+    "eslint-plugin-standard": "4.1.0",
     "gnode": "0.1.2",
-    "mocha": "7.0.0",
-    "nyc": "15.0.0",
+    "mocha": "9.0.3",
+    "nyc": "15.1.0",
     "raw-body": "2.4.1",
     "stream-to-array": "2.3.0"
   },
@@ -95,10 +93,10 @@
     "fetch": "node scripts/fetch-apache && gnode scripts/fetch-iana && node scripts/fetch-nginx",
     "lint": "eslint .",
     "test": "mocha --reporter spec --bail --check-leaks test/",
+    "test-ci": "nyc --reporter=lcov --reporter=text npm test",
     "test-cov": "nyc --reporter=html --reporter=text npm test",
-    "test-travis": "nyc --reporter=text npm test",
     "update": "npm run fetch && npm run build",
     "version": "node scripts/version-history.js && git add HISTORY.md"
   },
-  "version": "1.43.0"
+  "version": "1.49.0"
 }

+ 53 - 0
express-server/node_modules/mime-types/HISTORY.md

@@ -1,3 +1,56 @@
+2.1.32 / 2021-07-27
+===================
+
+  * deps: mime-db@1.49.0
+    - Add extension `.trig` to `application/trig`
+    - Add new upstream MIME types
+
+2.1.31 / 2021-06-01
+===================
+
+  * deps: mime-db@1.48.0
+    - Add extension `.mvt` to `application/vnd.mapbox-vector-tile`
+    - Add new upstream MIME types
+    - Mark `text/yaml` as compressible
+
+2.1.30 / 2021-04-02
+===================
+
+  * deps: mime-db@1.47.0
+    - Add extension `.amr` to `audio/amr`
+    - Remove ambigious extensions from IANA for `application/*+xml` types
+    - Update primary extension to `.es` for `application/ecmascript`
+
+2.1.29 / 2021-02-17
+===================
+
+  * deps: mime-db@1.46.0
+    - Add extension `.amr` to `audio/amr`
+    - Add extension `.m4s` to `video/iso.segment`
+    - Add extension `.opus` to `audio/ogg`
+    - Add new upstream MIME types
+
+2.1.28 / 2021-01-01
+===================
+
+  * deps: mime-db@1.45.0
+    - Add `application/ubjson` with extension `.ubj`
+    - Add `image/avif` with extension `.avif`
+    - Add `image/ktx2` with extension `.ktx2`
+    - Add extension `.dbf` to `application/vnd.dbf`
+    - Add extension `.rar` to `application/vnd.rar`
+    - Add extension `.td` to `application/urc-targetdesc+xml`
+    - Add new upstream MIME types
+    - Fix extension of `application/vnd.apple.keynote` to be `.key`
+
+2.1.27 / 2020-04-23
+===================
+
+  * deps: mime-db@1.44.0
+    - Add charsets from IANA
+    - Add extension `.cjs` to `application/node`
+    - Add new upstream MIME types
+
 2.1.26 / 2020-01-05
 ===================
 

+ 8 - 8
express-server/node_modules/mime-types/README.md

@@ -3,7 +3,7 @@
 [![NPM Version][npm-version-image]][npm-url]
 [![NPM Downloads][npm-downloads-image]][npm-url]
 [![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
+[![Build Status][ci-image]][ci-url]
 [![Test Coverage][coveralls-image]][coveralls-url]
 
 The ultimate javascript content-type utility.
@@ -47,10 +47,10 @@ All functions return `false` if input is invalid or not found.
 Lookup the content-type associated with a file.
 
 ```js
-mime.lookup('json')             // 'application/json'
-mime.lookup('.md')              // 'text/markdown'
-mime.lookup('file.html')        // 'text/html'
-mime.lookup('folder/file.js')   // 'application/javascript'
+mime.lookup('json') // 'application/json'
+mime.lookup('.md') // 'text/markdown'
+mime.lookup('file.html') // 'text/html'
+mime.lookup('folder/file.js') // 'application/javascript'
 mime.lookup('folder/.htaccess') // false
 
 mime.lookup('cats') // false
@@ -65,7 +65,7 @@ content-type does not already have a `charset` parameter, `mime.charset`
 is used to get the default charset and add to the returned content-type.
 
 ```js
-mime.contentType('markdown')  // 'text/x-markdown; charset=utf-8'
+mime.contentType('markdown') // 'text/x-markdown; charset=utf-8'
 mime.contentType('file.json') // 'application/json; charset=utf-8'
 mime.contentType('text/html') // 'text/html; charset=utf-8'
 mime.contentType('text/html; charset=iso-8859-1') // 'text/html; charset=iso-8859-1'
@@ -102,6 +102,8 @@ A map of extensions by content-type.
 
 [MIT](LICENSE)
 
+[ci-image]: https://badgen.net/github/checks/jshttp/mime-types/master?label=ci
+[ci-url]: https://github.com/jshttp/mime-types/actions?query=workflow%3Aci
 [coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-types/master
 [coveralls-url]: https://coveralls.io/r/jshttp/mime-types?branch=master
 [node-version-image]: https://badgen.net/npm/node/mime-types
@@ -109,5 +111,3 @@ A map of extensions by content-type.
 [npm-downloads-image]: https://badgen.net/npm/dm/mime-types
 [npm-url]: https://npmjs.org/package/mime-types
 [npm-version-image]: https://badgen.net/npm/v/mime-types
-[travis-image]: https://badgen.net/travis/jshttp/mime-types/master
-[travis-url]: https://travis-ci.org/jshttp/mime-types

+ 26 - 28
express-server/node_modules/mime-types/package.json

@@ -1,37 +1,33 @@
 {
-  "_args": [
-    [
-      "mime-types@2.1.26",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "mime-types@2.1.26",
-  "_id": "mime-types@2.1.26",
+  "_from": "mime-types@~2.1.24",
+  "_id": "mime-types@2.1.32",
   "_inBundle": false,
-  "_integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+  "_integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
   "_location": "/mime-types",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "mime-types@2.1.26",
+    "raw": "mime-types@~2.1.24",
     "name": "mime-types",
     "escapedName": "mime-types",
-    "rawSpec": "2.1.26",
+    "rawSpec": "~2.1.24",
     "saveSpec": null,
-    "fetchSpec": "2.1.26"
+    "fetchSpec": "~2.1.24"
   },
   "_requiredBy": [
     "/accepts",
     "/form-data",
     "/type-is"
   ],
-  "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
-  "_spec": "2.1.26",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
+  "_shasum": "1d00e89e7de7fe02008db61001d9e02852670fd5",
+  "_spec": "mime-types@~2.1.24",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\accepts",
   "bugs": {
     "url": "https://github.com/jshttp/mime-types/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -49,18 +45,20 @@
     }
   ],
   "dependencies": {
-    "mime-db": "1.43.0"
+    "mime-db": "1.49.0"
   },
+  "deprecated": false,
   "description": "The ultimate javascript content-type utility.",
   "devDependencies": {
-    "eslint": "6.8.0",
-    "eslint-config-standard": "14.1.0",
-    "eslint-plugin-import": "2.19.1",
-    "eslint-plugin-node": "11.0.0",
-    "eslint-plugin-promise": "4.2.1",
-    "eslint-plugin-standard": "4.0.1",
-    "mocha": "7.0.0",
-    "nyc": "15.0.0"
+    "eslint": "7.31.0",
+    "eslint-config-standard": "14.1.1",
+    "eslint-plugin-import": "2.23.4",
+    "eslint-plugin-markdown": "2.2.0",
+    "eslint-plugin-node": "11.1.0",
+    "eslint-plugin-promise": "5.1.0",
+    "eslint-plugin-standard": "4.1.0",
+    "mocha": "9.0.3",
+    "nyc": "15.1.0"
   },
   "engines": {
     "node": ">= 0.6"
@@ -84,8 +82,8 @@
   "scripts": {
     "lint": "eslint .",
     "test": "mocha --reporter spec test/test.js",
-    "test-cov": "nyc --reporter=html --reporter=text npm test",
-    "test-travis": "nyc --reporter=text npm test"
+    "test-ci": "nyc --reporter=lcov --reporter=text npm test",
+    "test-cov": "nyc --reporter=html --reporter=text npm test"
   },
-  "version": "2.1.26"
+  "version": "2.1.32"
 }

+ 5 - 8
express-server/node_modules/mime/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "mime@1.6.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "mime@1.6.0",
   "_id": "mime@1.6.0",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/send"
   ],
   "_resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
-  "_spec": "1.6.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "32cd9e5c64553bd58d19a568af452acff04981b1",
+  "_spec": "mime@1.6.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\send",
   "author": {
     "name": "Robert Kieffer",
     "email": "robert@broofa.com",
@@ -38,6 +33,7 @@
   "bugs": {
     "url": "https://github.com/broofa/node-mime/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Benjamin Thomas",
@@ -46,6 +42,7 @@
     }
   ],
   "dependencies": {},
+  "deprecated": false,
   "description": "A comprehensive library for mime-type mapping",
   "devDependencies": {
     "github-release-notes": "0.13.1",

+ 10 - 13
express-server/node_modules/minimist/package.json

@@ -1,32 +1,27 @@
 {
-  "_args": [
-    [
-      "minimist@1.2.5",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "minimist@1.2.5",
+  "_from": "minimist@^1.2.0",
   "_id": "minimist@1.2.5",
   "_inBundle": false,
   "_integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
   "_location": "/minimist",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "minimist@1.2.5",
+    "raw": "minimist@^1.2.0",
     "name": "minimist",
     "escapedName": "minimist",
-    "rawSpec": "1.2.5",
+    "rawSpec": "^1.2.0",
     "saveSpec": null,
-    "fetchSpec": "1.2.5"
+    "fetchSpec": "^1.2.0"
   },
   "_requiredBy": [
     "/rc"
   ],
   "_resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-  "_spec": "1.2.5",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "67d66014b66a6a8aaa0c083c5fd58df4e4e97602",
+  "_spec": "minimist@^1.2.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\rc",
   "author": {
     "name": "James Halliday",
     "email": "mail@substack.net",
@@ -35,6 +30,8 @@
   "bugs": {
     "url": "https://github.com/substack/minimist/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "parse argument options",
   "devDependencies": {
     "covert": "^1.0.0",

+ 10 - 13
express-server/node_modules/mkdirp/package.json

@@ -1,39 +1,36 @@
 {
-  "_args": [
-    [
-      "mkdirp@1.0.4",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "mkdirp@1.0.4",
+  "_from": "mkdirp@^1.0.4",
   "_id": "mkdirp@1.0.4",
   "_inBundle": false,
   "_integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
   "_location": "/mkdirp",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "mkdirp@1.0.4",
+    "raw": "mkdirp@^1.0.4",
     "name": "mkdirp",
     "escapedName": "mkdirp",
-    "rawSpec": "1.0.4",
+    "rawSpec": "^1.0.4",
     "saveSpec": null,
-    "fetchSpec": "1.0.4"
+    "fetchSpec": "^1.0.4"
   },
   "_requiredBy": [
     "/",
     "/tar"
   ],
   "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
-  "_spec": "1.0.4",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e",
+  "_spec": "mkdirp@^1.0.4",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server",
   "bin": {
     "mkdirp": "bin/cmd.js"
   },
   "bugs": {
     "url": "https://github.com/isaacs/node-mkdirp/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Recursively mkdir, like `mkdir -p`",
   "devDependencies": {
     "require-inject": "^1.4.4",

+ 5 - 8
express-server/node_modules/ms/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "ms@2.0.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "ms@2.0.0",
   "_id": "ms@2.0.0",
   "_inBundle": false,
@@ -27,11 +21,14 @@
     "/mquery/debug"
   ],
   "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-  "_spec": "2.0.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
+  "_spec": "ms@2.0.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\debug",
   "bugs": {
     "url": "https://github.com/zeit/ms/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Tiny milisecond conversion utility",
   "devDependencies": {
     "eslint": "3.19.0",

+ 5 - 8
express-server/node_modules/negotiator/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "negotiator@0.6.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "negotiator@0.6.2",
   "_id": "negotiator@0.6.2",
   "_inBundle": false,
@@ -25,11 +19,13 @@
     "/accepts"
   ],
   "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
-  "_spec": "0.6.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "feacf7ccf525a77ae9634436a64883ffeca346fb",
+  "_spec": "negotiator@0.6.2",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\accepts",
   "bugs": {
     "url": "https://github.com/jshttp/negotiator/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -45,6 +41,7 @@
       "url": "http://blog.izs.me/"
     }
   ],
+  "deprecated": false,
   "description": "HTTP content negotiation",
   "devDependencies": {
     "eslint": "5.16.0",

+ 10 - 13
express-server/node_modules/on-finished/package.json

@@ -1,25 +1,19 @@
 {
-  "_args": [
-    [
-      "on-finished@2.3.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "on-finished@2.3.0",
+  "_from": "on-finished@~2.3.0",
   "_id": "on-finished@2.3.0",
   "_inBundle": false,
   "_integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
   "_location": "/on-finished",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "on-finished@2.3.0",
+    "raw": "on-finished@~2.3.0",
     "name": "on-finished",
     "escapedName": "on-finished",
-    "rawSpec": "2.3.0",
+    "rawSpec": "~2.3.0",
     "saveSpec": null,
-    "fetchSpec": "2.3.0"
+    "fetchSpec": "~2.3.0"
   },
   "_requiredBy": [
     "/api-express-exporter/express-prom-bundle",
@@ -30,11 +24,13 @@
     "/send"
   ],
   "_resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
-  "_spec": "2.3.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "20f1336481b083cd75337992a16971aa2d906947",
+  "_spec": "on-finished@~2.3.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/jshttp/on-finished/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -49,6 +45,7 @@
   "dependencies": {
     "ee-first": "1.1.1"
   },
+  "deprecated": false,
   "description": "Execute a callback when a request closes, finishes, or errors",
   "devDependencies": {
     "istanbul": "0.3.9",

+ 10 - 13
express-server/node_modules/parseurl/package.json

@@ -1,25 +1,19 @@
 {
-  "_args": [
-    [
-      "parseurl@1.3.3",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "parseurl@1.3.3",
+  "_from": "parseurl@~1.3.3",
   "_id": "parseurl@1.3.3",
   "_inBundle": false,
   "_integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
   "_location": "/parseurl",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "parseurl@1.3.3",
+    "raw": "parseurl@~1.3.3",
     "name": "parseurl",
     "escapedName": "parseurl",
-    "rawSpec": "1.3.3",
+    "rawSpec": "~1.3.3",
     "saveSpec": null,
-    "fetchSpec": "1.3.3"
+    "fetchSpec": "~1.3.3"
   },
   "_requiredBy": [
     "/express",
@@ -27,11 +21,13 @@
     "/serve-static"
   ],
   "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
-  "_spec": "1.3.3",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "9da19e7bee8d12dff0513ed5b76957793bc2e8d4",
+  "_spec": "parseurl@~1.3.3",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/pillarjs/parseurl/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -43,6 +39,7 @@
       "url": "http://jongleberry.com"
     }
   ],
+  "deprecated": false,
   "description": "parse a url with memoization",
   "devDependencies": {
     "beautify-benchmark": "0.2.4",

+ 5 - 8
express-server/node_modules/path-to-regexp/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "path-to-regexp@0.1.7",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "path-to-regexp@0.1.7",
   "_id": "path-to-regexp@0.1.7",
   "_inBundle": false,
@@ -25,16 +19,19 @@
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
-  "_spec": "0.1.7",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "df604178005f522f15eb4490e7247a1bfaa67f8c",
+  "_spec": "path-to-regexp@0.1.7",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/component/path-to-regexp/issues"
   },
+  "bundleDependencies": false,
   "component": {
     "scripts": {
       "path-to-regexp": "index.js"
     }
   },
+  "deprecated": false,
   "description": "Express style path to RegExp utility",
   "devDependencies": {
     "istanbul": "^0.2.6",

+ 6 - 0
express-server/node_modules/proxy-addr/HISTORY.md

@@ -1,3 +1,9 @@
+2.0.7 / 2021-05-31
+==================
+
+  * deps: forwarded@0.2.0
+    - Use `req.socket` over deprecated `req.connection`
+
 2.0.6 / 2020-02-24
 ==================
 

+ 3 - 19
express-server/node_modules/proxy-addr/README.md

@@ -3,7 +3,7 @@
 [![NPM Version][npm-version-image]][npm-url]
 [![NPM Downloads][npm-downloads-image]][npm-url]
 [![Node.js Version][node-image]][node-url]
-[![Build Status][travis-image]][travis-url]
+[![Build Status][ci-image]][ci-url]
 [![Test Coverage][coveralls-image]][coveralls-url]
 
 Determine address of proxied request
@@ -20,8 +20,6 @@ $ npm install proxy-addr
 
 ## API
 
-<!-- eslint-disable no-unused-vars -->
-
 ```js
 var proxyaddr = require('proxy-addr')
 ```
@@ -34,8 +32,6 @@ The `trust` argument is a function that returns `true` if you trust
 the address, `false` if you don't. The closest untrusted address is
 returned.
 
-<!-- eslint-disable no-undef -->
-
 ```js
 proxyaddr(req, function (addr) { return addr === '127.0.0.1' })
 proxyaddr(req, function (addr, i) { return i < 1 })
@@ -45,8 +41,6 @@ The `trust` arugment may also be a single IP address string or an
 array of trusted addresses, as plain IP addresses, CIDR-formatted
 strings, or IP/netmask strings.
 
-<!-- eslint-disable no-undef -->
-
 ```js
 proxyaddr(req, '127.0.0.1')
 proxyaddr(req, ['127.0.0.0/8', '10.0.0.0/8'])
@@ -56,8 +50,6 @@ proxyaddr(req, ['127.0.0.0/255.0.0.0', '192.168.0.0/255.255.0.0'])
 This module also supports IPv6. Your IPv6 addresses will be normalized
 automatically (i.e. `fe80::00ed:1` equals `fe80:0:0:0:0:0:ed:1`).
 
-<!-- eslint-disable no-undef -->
-
 ```js
 proxyaddr(req, '::1')
 proxyaddr(req, ['::1/128', 'fe80::/10'])
@@ -70,8 +62,6 @@ not have to specify both `::ffff:a00:1` and `10.0.0.1`.
 As a convenience, this module also takes certain pre-defined names
 in addition to IP addresses, which expand into IP addresses:
 
-<!-- eslint-disable no-undef -->
-
 ```js
 proxyaddr(req, 'loopback')
 proxyaddr(req, ['loopback', 'fc00:ac:1ab5:fff::1/64'])
@@ -96,8 +86,6 @@ Return all the addresses of the request, optionally stopping at the
 first untrusted. This array is ordered from closest to furthest
 (i.e. `arr[0] === req.connection.remoteAddress`).
 
-<!-- eslint-disable no-undef -->
-
 ```js
 proxyaddr.all(req)
 ```
@@ -105,8 +93,6 @@ proxyaddr.all(req)
 The optional `trust` argument takes the same arguments as `trust`
 does in `proxyaddr(req, trust)`.
 
-<!-- eslint-disable no-undef -->
-
 ```js
 proxyaddr.all(req, 'loopback')
 ```
@@ -117,8 +103,6 @@ Compiles argument `val` into a `trust` function. This function takes
 the same arguments as `trust` does in `proxyaddr(req, trust)` and
 returns a function suitable for `proxyaddr(req, trust)`.
 
-<!-- eslint-disable no-undef, no-unused-vars -->
-
 ```js
 var trust = proxyaddr.compile('loopback')
 var addr = proxyaddr(req, trust)
@@ -144,6 +128,8 @@ $ npm run-script bench
 
 [MIT](LICENSE)
 
+[ci-image]: https://badgen.net/github/checks/jshttp/proxy-addr/master?label=ci
+[ci-url]: https://github.com/jshttp/proxy-addr/actions?query=workflow%3Aci
 [coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/proxy-addr/master
 [coveralls-url]: https://coveralls.io/r/jshttp/proxy-addr?branch=master
 [node-image]: https://badgen.net/npm/node/proxy-addr
@@ -151,5 +137,3 @@ $ npm run-script bench
 [npm-downloads-image]: https://badgen.net/npm/dm/proxy-addr
 [npm-url]: https://npmjs.org/package/proxy-addr
 [npm-version-image]: https://badgen.net/npm/v/proxy-addr
-[travis-image]: https://badgen.net/travis/jshttp/proxy-addr/master
-[travis-url]: https://travis-ci.org/jshttp/proxy-addr

+ 27 - 30
express-server/node_modules/proxy-addr/package.json

@@ -1,32 +1,27 @@
 {
-  "_args": [
-    [
-      "proxy-addr@2.0.6",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "proxy-addr@2.0.6",
-  "_id": "proxy-addr@2.0.6",
+  "_from": "proxy-addr@~2.0.5",
+  "_id": "proxy-addr@2.0.7",
   "_inBundle": false,
-  "_integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+  "_integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
   "_location": "/proxy-addr",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "proxy-addr@2.0.6",
+    "raw": "proxy-addr@~2.0.5",
     "name": "proxy-addr",
     "escapedName": "proxy-addr",
-    "rawSpec": "2.0.6",
+    "rawSpec": "~2.0.5",
     "saveSpec": null,
-    "fetchSpec": "2.0.6"
+    "fetchSpec": "~2.0.5"
   },
   "_requiredBy": [
     "/express"
   ],
-  "_resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
-  "_spec": "2.0.6",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+  "_shasum": "f19fe69ceab311eeb94b42e70e8c2070f9ba1025",
+  "_spec": "proxy-addr@~2.0.5",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Douglas Christopher Wilson",
     "email": "doug@somethingdoug.com"
@@ -34,24 +29,26 @@
   "bugs": {
     "url": "https://github.com/jshttp/proxy-addr/issues"
   },
+  "bundleDependencies": false,
   "dependencies": {
-    "forwarded": "~0.1.2",
+    "forwarded": "0.2.0",
     "ipaddr.js": "1.9.1"
   },
+  "deprecated": false,
   "description": "Determine address of proxied request",
   "devDependencies": {
     "beautify-benchmark": "0.2.4",
     "benchmark": "2.1.4",
     "deep-equal": "1.0.1",
-    "eslint": "6.8.0",
-    "eslint-config-standard": "14.1.0",
-    "eslint-plugin-import": "2.20.1",
-    "eslint-plugin-markdown": "1.0.1",
-    "eslint-plugin-node": "11.0.0",
-    "eslint-plugin-promise": "4.2.1",
-    "eslint-plugin-standard": "4.0.1",
-    "mocha": "7.0.1",
-    "nyc": "15.0.0"
+    "eslint": "7.26.0",
+    "eslint-config-standard": "14.1.1",
+    "eslint-plugin-import": "2.23.4",
+    "eslint-plugin-markdown": "2.2.0",
+    "eslint-plugin-node": "11.1.0",
+    "eslint-plugin-promise": "4.3.1",
+    "eslint-plugin-standard": "4.1.0",
+    "mocha": "8.4.0",
+    "nyc": "15.1.0"
   },
   "engines": {
     "node": ">= 0.10"
@@ -76,10 +73,10 @@
   },
   "scripts": {
     "bench": "node benchmark/index.js",
-    "lint": "eslint --plugin markdown --ext js,md .",
+    "lint": "eslint .",
     "test": "mocha --reporter spec --bail --check-leaks test/",
-    "test-cov": "nyc --reporter=text npm test",
-    "test-travis": "nyc --reporter=html --reporter=text npm test"
+    "test-ci": "nyc --reporter=lcov --reporter=text npm test",
+    "test-cov": "nyc --reporter=html --reporter=text npm test"
   },
-  "version": "2.0.6"
+  "version": "2.0.7"
 }

+ 5 - 8
express-server/node_modules/qs/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "qs@6.7.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "qs@6.7.0",
   "_id": "qs@6.7.0",
   "_inBundle": false,
@@ -26,11 +20,13 @@
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
-  "_spec": "6.7.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "41dc1a015e3d581f1621776be31afb2876a9b1bc",
+  "_spec": "qs@6.7.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/ljharb/qs/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Jordan Harband",
@@ -39,6 +35,7 @@
     }
   ],
   "dependencies": {},
+  "deprecated": false,
   "description": "A querystring parser that supports nesting and arrays, with a depth limit",
   "devDependencies": {
     "@ljharb/eslint-config": "^13.1.1",

+ 10 - 13
express-server/node_modules/range-parser/package.json

@@ -1,33 +1,28 @@
 {
-  "_args": [
-    [
-      "range-parser@1.2.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "range-parser@1.2.1",
+  "_from": "range-parser@~1.2.1",
   "_id": "range-parser@1.2.1",
   "_inBundle": false,
   "_integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
   "_location": "/range-parser",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "range-parser@1.2.1",
+    "raw": "range-parser@~1.2.1",
     "name": "range-parser",
     "escapedName": "range-parser",
-    "rawSpec": "1.2.1",
+    "rawSpec": "~1.2.1",
     "saveSpec": null,
-    "fetchSpec": "1.2.1"
+    "fetchSpec": "~1.2.1"
   },
   "_requiredBy": [
     "/express",
     "/send"
   ],
   "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
-  "_spec": "1.2.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "3cf37023d199e1c24d1a55b84800c2f3e6468031",
+  "_spec": "range-parser@~1.2.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "TJ Holowaychuk",
     "email": "tj@vision-media.ca",
@@ -36,6 +31,7 @@
   "bugs": {
     "url": "https://github.com/jshttp/range-parser/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -51,6 +47,7 @@
       "url": "http://jongleberry.com"
     }
   ],
+  "deprecated": false,
   "description": "Range header field string parser",
   "devDependencies": {
     "deep-equal": "1.0.1",

+ 5 - 8
express-server/node_modules/raw-body/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "raw-body@2.4.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "raw-body@2.4.0",
   "_id": "raw-body@2.4.0",
   "_inBundle": false,
@@ -26,8 +20,9 @@
     "/pac-proxy-agent"
   ],
   "_resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
-  "_spec": "2.4.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "a1ce6fb9c9bc356ca52e89256ab59059e13d0332",
+  "_spec": "raw-body@2.4.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\body-parser",
   "author": {
     "name": "Jonathan Ong",
     "email": "me@jongleberry.com",
@@ -36,6 +31,7 @@
   "bugs": {
     "url": "https://github.com/stream-utils/raw-body/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -52,6 +48,7 @@
     "iconv-lite": "0.4.24",
     "unpipe": "1.0.0"
   },
+  "deprecated": false,
   "description": "Get and validate the raw body of a readable stream.",
   "devDependencies": {
     "bluebird": "3.5.4",

+ 5 - 10
express-server/node_modules/safe-buffer/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "safe-buffer@5.1.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "safe-buffer@5.1.2",
   "_id": "safe-buffer@5.1.2",
   "_inBundle": false,
@@ -26,18 +20,17 @@
     "/content-disposition",
     "/ecdsa-sig-formatter",
     "/express",
-    "/got",
     "/jwa",
     "/jws",
     "/mongodb",
     "/mquery",
     "/readable-stream",
-    "/registry-auth-token",
     "/string_decoder"
   ],
   "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-  "_spec": "5.1.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d",
+  "_spec": "safe-buffer@5.1.2",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Feross Aboukhadijeh",
     "email": "feross@feross.org",
@@ -46,6 +39,8 @@
   "bugs": {
     "url": "https://github.com/feross/safe-buffer/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Safer Node.js Buffer API",
   "devDependencies": {
     "standard": "*",

+ 10 - 13
express-server/node_modules/safer-buffer/package.json

@@ -1,32 +1,27 @@
 {
-  "_args": [
-    [
-      "safer-buffer@2.1.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "safer-buffer@2.1.2",
+  "_from": "safer-buffer@>= 2.1.2 < 3",
   "_id": "safer-buffer@2.1.2",
   "_inBundle": false,
   "_integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
   "_location": "/safer-buffer",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "safer-buffer@2.1.2",
+    "raw": "safer-buffer@>= 2.1.2 < 3",
     "name": "safer-buffer",
     "escapedName": "safer-buffer",
-    "rawSpec": "2.1.2",
+    "rawSpec": ">= 2.1.2 < 3",
     "saveSpec": null,
-    "fetchSpec": "2.1.2"
+    "fetchSpec": ">= 2.1.2 < 3"
   },
   "_requiredBy": [
     "/iconv-lite"
   ],
   "_resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-  "_spec": "2.1.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "44fa161b0187b9549dd84bb91802f9bd8385cd6a",
+  "_spec": "safer-buffer@>= 2.1.2 < 3",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\iconv-lite",
   "author": {
     "name": "Nikita Skovoroda",
     "email": "chalkerx@gmail.com",
@@ -35,6 +30,8 @@
   "bugs": {
     "url": "https://github.com/ChALkeR/safer-buffer/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Modern Buffer API polyfill without footguns",
   "devDependencies": {
     "standard": "^11.0.1",

+ 5 - 8
express-server/node_modules/send/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "send@0.17.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "send@0.17.1",
   "_id": "send@0.17.1",
   "_inBundle": false,
@@ -26,8 +20,9 @@
     "/serve-static"
   ],
   "_resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
-  "_spec": "0.17.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "c1d8b059f7900f7466dd4938bdc44e11ddb376c8",
+  "_spec": "send@0.17.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "TJ Holowaychuk",
     "email": "tj@vision-media.ca"
@@ -35,6 +30,7 @@
   "bugs": {
     "url": "https://github.com/pillarjs/send/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -64,6 +60,7 @@
     "range-parser": "~1.2.1",
     "statuses": "~1.5.0"
   },
+  "deprecated": false,
   "description": "Better streaming static file server with Range and conditional-GET support",
   "devDependencies": {
     "after": "0.8.2",

+ 5 - 8
express-server/node_modules/serve-static/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "serve-static@1.14.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "serve-static@1.14.1",
   "_id": "serve-static@1.14.1",
   "_inBundle": false,
@@ -25,8 +19,9 @@
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
-  "_spec": "1.14.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "666e636dc4f010f7ef29970a88a674320898b2f9",
+  "_spec": "serve-static@1.14.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Douglas Christopher Wilson",
     "email": "doug@somethingdoug.com"
@@ -34,12 +29,14 @@
   "bugs": {
     "url": "https://github.com/expressjs/serve-static/issues"
   },
+  "bundleDependencies": false,
   "dependencies": {
     "encodeurl": "~1.0.2",
     "escape-html": "~1.0.3",
     "parseurl": "~1.3.3",
     "send": "0.17.1"
   },
+  "deprecated": false,
   "description": "Serve static files",
   "devDependencies": {
     "eslint": "5.16.0",

+ 5 - 8
express-server/node_modules/setprototypeof/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "setprototypeof@1.1.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "setprototypeof@1.1.1",
   "_id": "setprototypeof@1.1.1",
   "_inBundle": false,
@@ -26,14 +20,17 @@
     "/http-errors"
   ],
   "_resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
-  "_spec": "1.1.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "7e95acb24aa92f5885e0abef5ba131330d4ae683",
+  "_spec": "setprototypeof@1.1.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Wes Todd"
   },
   "bugs": {
     "url": "https://github.com/wesleytodd/setprototypeof/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "A small polyfill for Object.setprototypeof",
   "devDependencies": {
     "mocha": "^5.2.0",

+ 10 - 14
express-server/node_modules/source-map/package.json

@@ -1,33 +1,27 @@
 {
-  "_args": [
-    [
-      "source-map@0.6.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "source-map@0.6.1",
+  "_from": "source-map@~0.6.1",
   "_id": "source-map@0.6.1",
   "_inBundle": false,
   "_integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
   "_location": "/source-map",
-  "_optional": true,
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "source-map@0.6.1",
+    "raw": "source-map@~0.6.1",
     "name": "source-map",
     "escapedName": "source-map",
-    "rawSpec": "0.6.1",
+    "rawSpec": "~0.6.1",
     "saveSpec": null,
-    "fetchSpec": "0.6.1"
+    "fetchSpec": "~0.6.1"
   },
   "_requiredBy": [
     "/escodegen"
   ],
   "_resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-  "_spec": "0.6.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "74722af32e9614e9c287a8d0bbde48b5e2f1a263",
+  "_spec": "source-map@~0.6.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\escodegen",
   "author": {
     "name": "Nick Fitzgerald",
     "email": "nfitzgerald@mozilla.com"
@@ -35,6 +29,7 @@
   "bugs": {
     "url": "https://github.com/mozilla/source-map/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Tobias Koppers",
@@ -181,6 +176,7 @@
       "email": "nicolas.lalevee@hibnet.org"
     }
   ],
+  "deprecated": false,
   "description": "Generates and consumes source maps",
   "devDependencies": {
     "doctoc": "^0.15.0",

+ 10 - 13
express-server/node_modules/statuses/package.json

@@ -1,25 +1,19 @@
 {
-  "_args": [
-    [
-      "statuses@1.5.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "statuses@1.5.0",
+  "_from": "statuses@~1.5.0",
   "_id": "statuses@1.5.0",
   "_inBundle": false,
   "_integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
   "_location": "/statuses",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "statuses@1.5.0",
+    "raw": "statuses@~1.5.0",
     "name": "statuses",
     "escapedName": "statuses",
-    "rawSpec": "1.5.0",
+    "rawSpec": "~1.5.0",
     "saveSpec": null,
-    "fetchSpec": "1.5.0"
+    "fetchSpec": "~1.5.0"
   },
   "_requiredBy": [
     "/express",
@@ -28,11 +22,13 @@
     "/send"
   ],
   "_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-  "_spec": "1.5.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "161c7dac177659fd9811f43771fa99381478628c",
+  "_spec": "statuses@~1.5.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/jshttp/statuses/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -44,6 +40,7 @@
       "url": "http://jongleberry.com"
     }
   ],
+  "deprecated": false,
   "description": "HTTP status utility",
   "devDependencies": {
     "csv-parse": "1.2.4",

+ 10 - 13
express-server/node_modules/type-is/package.json

@@ -1,36 +1,32 @@
 {
-  "_args": [
-    [
-      "type-is@1.6.18",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "type-is@1.6.18",
+  "_from": "type-is@~1.6.18",
   "_id": "type-is@1.6.18",
   "_inBundle": false,
   "_integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
   "_location": "/type-is",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "type-is@1.6.18",
+    "raw": "type-is@~1.6.18",
     "name": "type-is",
     "escapedName": "type-is",
-    "rawSpec": "1.6.18",
+    "rawSpec": "~1.6.18",
     "saveSpec": null,
-    "fetchSpec": "1.6.18"
+    "fetchSpec": "~1.6.18"
   },
   "_requiredBy": [
     "/body-parser",
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
-  "_spec": "1.6.18",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "4e552cd05df09467dcbc4ef739de89f2cf37c131",
+  "_spec": "type-is@~1.6.18",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "bugs": {
     "url": "https://github.com/jshttp/type-is/issues"
   },
+  "bundleDependencies": false,
   "contributors": [
     {
       "name": "Douglas Christopher Wilson",
@@ -46,6 +42,7 @@
     "media-typer": "0.3.0",
     "mime-types": "~2.1.24"
   },
+  "deprecated": false,
   "description": "Infer the content-type of a request.",
   "devDependencies": {
     "eslint": "5.16.0",

+ 5 - 8
express-server/node_modules/unpipe/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "unpipe@1.0.0",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "unpipe@1.0.0",
   "_id": "unpipe@1.0.0",
   "_inBundle": false,
@@ -26,8 +20,9 @@
     "/raw-body"
   ],
   "_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
-  "_spec": "1.0.0",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec",
+  "_spec": "unpipe@1.0.0",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\raw-body",
   "author": {
     "name": "Douglas Christopher Wilson",
     "email": "doug@somethingdoug.com"
@@ -35,6 +30,8 @@
   "bugs": {
     "url": "https://github.com/stream-utils/unpipe/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Unpipe a stream from all destinations",
   "devDependencies": {
     "istanbul": "0.3.15",

+ 5 - 8
express-server/node_modules/utils-merge/package.json

@@ -1,10 +1,4 @@
 {
-  "_args": [
-    [
-      "utils-merge@1.0.1",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
   "_from": "utils-merge@1.0.1",
   "_id": "utils-merge@1.0.1",
   "_inBundle": false,
@@ -26,8 +20,9 @@
     "/passport-oauth2"
   ],
   "_resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
-  "_spec": "1.0.1",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "9f95710f50a267947b2ccc124741c1028427e713",
+  "_spec": "utils-merge@1.0.1",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Jared Hanson",
     "email": "jaredhanson@gmail.com",
@@ -36,7 +31,9 @@
   "bugs": {
     "url": "http://github.com/jaredhanson/utils-merge/issues"
   },
+  "bundleDependencies": false,
   "dependencies": {},
+  "deprecated": false,
   "description": "merge() utility function",
   "devDependencies": {
     "chai": "1.x.x",

+ 10 - 13
express-server/node_modules/vary/package.json

@@ -1,33 +1,28 @@
 {
-  "_args": [
-    [
-      "vary@1.1.2",
-      "C:\\FatboarProject\\express-server"
-    ]
-  ],
-  "_from": "vary@1.1.2",
+  "_from": "vary@~1.1.2",
   "_id": "vary@1.1.2",
   "_inBundle": false,
   "_integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
   "_location": "/vary",
   "_phantomChildren": {},
   "_requested": {
-    "type": "version",
+    "type": "range",
     "registry": true,
-    "raw": "vary@1.1.2",
+    "raw": "vary@~1.1.2",
     "name": "vary",
     "escapedName": "vary",
-    "rawSpec": "1.1.2",
+    "rawSpec": "~1.1.2",
     "saveSpec": null,
-    "fetchSpec": "1.1.2"
+    "fetchSpec": "~1.1.2"
   },
   "_requiredBy": [
     "/cors",
     "/express"
   ],
   "_resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
-  "_spec": "1.1.2",
-  "_where": "C:\\FatboarProject\\express-server",
+  "_shasum": "2299f02c6ded30d4a5961b0b9f74524a18f634fc",
+  "_spec": "vary@~1.1.2",
+  "_where": "C:\\Users\\brin\\Desktop\\Personnel\\FatboarProject-develop\\FatboarProject\\express-server\\node_modules\\express",
   "author": {
     "name": "Douglas Christopher Wilson",
     "email": "doug@somethingdoug.com"
@@ -35,6 +30,8 @@
   "bugs": {
     "url": "https://github.com/jshttp/vary/issues"
   },
+  "bundleDependencies": false,
+  "deprecated": false,
   "description": "Manipulate the HTTP Vary header",
   "devDependencies": {
     "beautify-benchmark": "0.2.4",

文件差异内容过多而无法显示
+ 812 - 663
express-server/package-lock.json


+ 1 - 0
express-server/routes/auth.js

@@ -10,6 +10,7 @@ router.post('/signup', userCtrl.signup);
 
 //connection
 router.post('/login', userCtrl.login);
+router.post('/admin', userCtrl.loginAdmin);
 
 
 

+ 2 - 2
express-server/routes/employee.js

@@ -8,10 +8,10 @@ const GainController = require('../controllers/gain');
 
 
 //add employee
-router.post("/", EmployeeController.postEmployee);
+router.post("/",authorize([Role.Admin]) ,EmployeeController.postEmployee);
 
 // get all employees
-router.get("/", EmployeeController.getAllEmployees);
+router.get("/",authorize([Role.Employee,Role.Admin]), EmployeeController.getAllEmployees);
 
 // //get user by id
 // router.get('/:id', authorize([Role.Client,Role.Employee,Role.Admin]), UserController.getUserById);

+ 2 - 2
express-server/routes/restaurant.js

@@ -8,10 +8,10 @@ const RestaurantController = require('../controllers/restaurant');
 
 
 //get all restaurants
-router.get("/",  RestaurantController.getAllRestaurants);
+router.get("/", authorize([Role.Employee,Role.Admin]), RestaurantController.getAllRestaurants);
 
 //post restaurants
-router.post("/",  RestaurantController.postAllRestaurants);
+router.post("/", authorize([Role.Admin]), RestaurantController.postAllRestaurants);
 
 
 

+ 0 - 3
express-server/routes/tirage.js

@@ -15,7 +15,4 @@ router.post('/date', authorize(Role.Admin), tirageController.postDateTirage );
 //gagnant du tirage au sort 
 router.get('/winner',  authorize(Role.Admin), tirageController.getWinnerTirage);
 
-
-
-
 module.exports = router; 

+ 2 - 2
express-server/routes/user.js

@@ -10,14 +10,14 @@ const { LimitRequests } = require ('../middleware/limit-requests')
 
 
 //get all users
-router.get("/",  UserController.getAllUsers);
+router.get("/", authorize([Role.Employee,Role.Admin]), UserController.getAllUsers);
 
 //get user by id
 //router.get('/:id',  UserController.getUserById);
 router.get('/:id', authorize([Role.Client,Role.Employee,Role.Admin]), UserController.getUserById);
 
 //delete user by id
-router.delete('/:id', UserController.deleteUserById);
+router.delete('/:id', authorize([Role.Employee,Role.Admin]) ,UserController.deleteUserById);
 
 //patch by id
 //router.patch('/:id',  UserController.patchUserById)