forked from tykayn/funky-framadate-front
Merge branch 'features/clean_refacto' into 'develop'
clean refacto See merge request framasoft/framadate/funky-framadate-front!40
This commit is contained in:
commit
b6e703b6ca
@ -1,4 +1,5 @@
|
||||
image: weboaks/node-karma-protractor-chrome
|
||||
# image: weboaks/node-karma-protractor-chrome
|
||||
image: node:latest
|
||||
|
||||
stages:
|
||||
- pages
|
||||
@ -13,7 +14,7 @@ pages:
|
||||
stage: pages
|
||||
script:
|
||||
- yarn install --pure-lockfile
|
||||
- yarn build
|
||||
- yarn build:prod:gitlabpage
|
||||
- mv dist/framadate/ public/
|
||||
artifacts:
|
||||
paths:
|
||||
|
@ -41,6 +41,7 @@ app.swagger GET ANY ANY /api/doc.json
|
||||
api_clean_expired_polls GET ANY ANY /admin/clean-polls/{token}
|
||||
|
||||
api_test-mail-polls GET ANY ANY /polls/mail/test-mail-polls/{emailChoice}
|
||||
api_update_vote_stack PATCH ANY ANY /votes-stack/{id}/token/{modifierToken}
|
||||
api_update_vote_stack PATCH ANY ANY /polls/{slug}/answers/{pseudo}/token/{modifierToken}
|
||||
|
||||
-------------------------- -------- -------- ------ ------------------------------------------------
|
||||
*/
|
||||
|
166
mocks/db.json
166
mocks/db.json
@ -9,6 +9,7 @@
|
||||
"id": 1,
|
||||
"slug": "picnic",
|
||||
"configuration": {
|
||||
"id": 1,
|
||||
"isAboutDate": true,
|
||||
"isProtectedByPassword": false,
|
||||
"isOwnerNotifiedByEmailOnNewVote": false,
|
||||
@ -20,51 +21,13 @@
|
||||
},
|
||||
"ownerId": 1,
|
||||
"question": "Quelle date pour le picnic ?",
|
||||
"description": "Gros badass picnic en plein air ! Come on !",
|
||||
"answersByChoiceByParticipant": {
|
||||
"TOTO": { "samedi": "YES", "dimanche": "NO" },
|
||||
"TATA": { "samedi": "NO", "dimanche": null },
|
||||
"TITI": { "samedi": "MAYBE", "dimanche": "NO" }
|
||||
},
|
||||
"answers": [
|
||||
{
|
||||
"pseudo": "TOTO",
|
||||
"token": "TOTO-TOKEN",
|
||||
"responsesByChoices": [
|
||||
{ "choice": { "label": "samedi", "imagePath": null }, "responseType": "YES" },
|
||||
{ "choice": { "label": "dimanche", "imagePath": null }, "responseType": "NO" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"pseudo": "TATA",
|
||||
"token": "TATA-TOKEN",
|
||||
"responsesByChoices": [
|
||||
{ "choice": { "label": "samedi", "imagePath": null }, "responseType": "NO" },
|
||||
{ "choice": { "label": "dimanche", "imagePath": null }, "responseType": "NO" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"pseudo": "TITI",
|
||||
"token": "TITI-TOKEN",
|
||||
"responsesByChoices": [
|
||||
{ "choice": { "label": "samedi", "imagePath": null }, "responseType": "NO" },
|
||||
{ "choice": { "label": "dimanche", "imagePath": null }, "responseType": "YES" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"pseudo": "TETE",
|
||||
"token": "TETE-TOKEN",
|
||||
"responsesByChoices": [
|
||||
{ "choice": { "label": "samedi", "imagePath": null }, "responseType": "YES" },
|
||||
{ "choice": { "label": "dimanche", "imagePath": null }, "responseType": "NO" }
|
||||
]
|
||||
}
|
||||
]
|
||||
"description": "Gros badass picnic en plein air ! Come on !"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"slug": "vacances",
|
||||
"configuration": {
|
||||
"id": 2,
|
||||
"isAboutDate": true,
|
||||
"isProtectedByPassword": false,
|
||||
"isOwnerNotifiedByEmailOnNewVote": false,
|
||||
@ -76,50 +39,7 @@
|
||||
},
|
||||
"ownerId": 2,
|
||||
"question": "On fait quoi pendant les vacances ?",
|
||||
"description": "Vacances en famille",
|
||||
"answersByChoiceByParticipant": {
|
||||
"TOTO": { "bateau": "YES", "montagne": "NO", "quad": "MAYBE" },
|
||||
"TATA": { "bateau": "NO", "montagne": null, "quad": "YES" },
|
||||
"TITI": { "bateau": "MAYBE", "montagne": "NO", "quad": null }
|
||||
},
|
||||
"answers": [
|
||||
{
|
||||
"pseudo": "TOTO",
|
||||
"token": "TOTO-TOKEN",
|
||||
"responsesByChoices": [
|
||||
{ "choice": { "label": "bateau", "imagePath": null }, "responseType": "YES" },
|
||||
{ "choice": { "label": "montagne", "imagePath": null }, "responseType": "NO" },
|
||||
{ "choice": { "label": "quad", "imagePath": null }, "responseType": "NO" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"pseudo": "TATA",
|
||||
"token": "TATA-TOKEN",
|
||||
"responsesByChoices": [
|
||||
{ "choice": { "label": "bateau", "imagePath": null }, "responseType": "NO" },
|
||||
{ "choice": { "label": "montagne", "imagePath": null }, "responseType": "NO" },
|
||||
{ "choice": { "label": "quad", "imagePath": null }, "responseType": "NO" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"pseudo": "TITI",
|
||||
"token": "TITI-TOKEN",
|
||||
"responsesByChoices": [
|
||||
{ "choice": { "label": "bateau", "imagePath": null }, "responseType": "NO" },
|
||||
{ "choice": { "label": "montagne", "imagePath": null }, "responseType": "YES" },
|
||||
{ "choice": { "label": "quad", "imagePath": null }, "responseType": "NO" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"pseudo": "TETE",
|
||||
"token": "TETE-TOKEN",
|
||||
"responsesByChoices": [
|
||||
{ "choice": { "label": "bateau", "imagePath": null }, "responseType": "YES" },
|
||||
{ "choice": { "label": "montagne", "imagePath": null }, "responseType": "NO" },
|
||||
{ "choice": { "label": "quad", "imagePath": null }, "responseType": "NO" }
|
||||
]
|
||||
}
|
||||
]
|
||||
"description": "Vacances en famille"
|
||||
}
|
||||
],
|
||||
"choices": [
|
||||
@ -129,9 +49,15 @@
|
||||
"pollSlug": "picnic",
|
||||
"label": "samedi",
|
||||
"participants": [
|
||||
["YES", ["TOTO", "TITI"]],
|
||||
["NO", ["TETE"]],
|
||||
["MAYBE", ["TATA"]]
|
||||
[
|
||||
"YES",
|
||||
[
|
||||
{ "pseudo": "TOTO", "token": "TOTO-TOKEN" },
|
||||
{ "pseudo": "TITI", "token": "TITI-TOKEN" }
|
||||
]
|
||||
],
|
||||
["NO", []],
|
||||
["MAYBE", [{ "pseudo": "TATA", "token": "TATA-TOKEN" }]]
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -140,9 +66,15 @@
|
||||
"pollSlug": "picnic",
|
||||
"label": "dimanche",
|
||||
"participants": [
|
||||
["YES", ["TOTO", "TITI"]],
|
||||
["NO", ["TETE"]],
|
||||
["MAYBE", ["TATA"]]
|
||||
[
|
||||
"YES",
|
||||
[
|
||||
{ "pseudo": "TATA", "token": "TATA-TOKEN" },
|
||||
{ "pseudo": "TETE", "token": "TETE-TOKEN" }
|
||||
]
|
||||
],
|
||||
["NO", [{ "pseudo": "TOTO", "token": "TOTO-TOKEN" }]],
|
||||
["MAYBE", [{ "pseudo": "TITI", "token": "TITI-TOKEN" }]]
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -151,9 +83,15 @@
|
||||
"pollSlug": "vacances",
|
||||
"label": "bateau",
|
||||
"participants": [
|
||||
["YES", ["TOTO", "TITI"]],
|
||||
["NO", ["TETE"]],
|
||||
["MAYBE", ["TATA"]]
|
||||
[
|
||||
"YES",
|
||||
[
|
||||
{ "pseudo": "TOTO", "token": "TOTO-TOKEN" },
|
||||
{ "pseudo": "TITI", "token": "TITI-TOKEN" }
|
||||
]
|
||||
],
|
||||
["NO", [{ "pseudo": "TETE", "token": "TETE-TOKEN" }]],
|
||||
["MAYBE", [{ "pseudo": "TATA", "token": "TATA-TOKEN" }]]
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -162,9 +100,15 @@
|
||||
"pollSlug": "vacances",
|
||||
"label": "montagne",
|
||||
"participants": [
|
||||
["YES", ["TOTO", "TITI"]],
|
||||
["NO", ["TETE"]],
|
||||
["MAYBE", ["TATA"]]
|
||||
[
|
||||
"YES",
|
||||
[
|
||||
{ "pseudo": "TOTO", "token": "TOTO-TOKEN" },
|
||||
{ "pseudo": "TITI", "token": "TITI-TOKEN" }
|
||||
]
|
||||
],
|
||||
["NO", [{ "pseudo": "TETE", "token": "TETE-TOKEN" }]],
|
||||
["MAYBE", [{ "pseudo": "TATA", "token": "TATA-TOKEN" }]]
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -173,30 +117,18 @@
|
||||
"pollSlug": "vacances",
|
||||
"label": "quad",
|
||||
"participants": [
|
||||
["YES", ["TOTO", "TITI"]],
|
||||
["NO", ["TETE"]],
|
||||
["MAYBE", ["TATA"]]
|
||||
[
|
||||
"YES",
|
||||
[
|
||||
{ "pseudo": "TOTO", "token": "TOTO-TOKEN" },
|
||||
{ "pseudo": "TITI", "token": "TITI-TOKEN" }
|
||||
]
|
||||
],
|
||||
["NO", [{ "pseudo": "TETE", "token": "TETE-TOKEN" }]],
|
||||
["MAYBE", [{ "pseudo": "TATA", "token": "TATA-TOKEN" }]]
|
||||
]
|
||||
}
|
||||
],
|
||||
"answers": [
|
||||
{ "choiceId": 1, "pseudo": "TOTO", "response": "YES", "token": "TOTO-TOKEN" },
|
||||
{ "choiceId": 1, "pseudo": "TATA", "response": "NO", "token": "TATA-TOKEN" },
|
||||
{ "choiceId": 1, "pseudo": "TITI", "response": "MAYBE", "token": "TITI-TOKEN" },
|
||||
{ "choiceId": 2, "pseudo": "TOTO", "response": "YES", "token": "TOTO-TOKEN" },
|
||||
{ "choiceId": 2, "pseudo": "TATA", "response": "NO", "token": "TATA-TOKEN" },
|
||||
{ "choiceId": 2, "pseudo": "TITI", "response": "MAYBE", "token": "TITI-TOKEN" },
|
||||
{ "choiceId": 2, "pseudo": "EVA", "response": null, "token": "EVA-TOKEN" },
|
||||
{ "choiceId": 3, "pseudo": "TOTO", "response": "YES", "token": "TOTO-TOKEN" },
|
||||
{ "choiceId": 3, "pseudo": "TATA", "response": "NO", "token": "TATA-TOKEN" },
|
||||
{ "choiceId": 3, "pseudo": "TITI", "response": "MAYBE", "token": "TITI-TOKEN" },
|
||||
{ "choiceId": 4, "pseudo": "TOTO", "response": "YES", "token": "TOTO-TOKEN" },
|
||||
{ "choiceId": 4, "pseudo": "TATA", "response": "NO", "token": "TATA-TOKEN" },
|
||||
{ "choiceId": 4, "pseudo": "TITI", "response": "MAYBE", "token": "TITI-TOKEN" },
|
||||
{ "choiceId": 5, "pseudo": "TOTO", "response": "YES", "token": "TOTO-TOKEN" },
|
||||
{ "choiceId": 5, "pseudo": "TATA", "response": "NO", "token": "TATA-TOKEN" },
|
||||
{ "choiceId": 5, "pseudo": "TITI", "response": "MAYBE", "token": "TITI-TOKEN" }
|
||||
],
|
||||
"comments": [
|
||||
{
|
||||
"id": 1,
|
||||
|
@ -1,8 +1,7 @@
|
||||
{
|
||||
"/api/v1/*": "/$1",
|
||||
"/owners/:email/": "/owners?email=:email",
|
||||
"/choices": "/choices?_embed=answers",
|
||||
"/polls/:slug": "/polls?slug=:slug&_expand=owner&_embed=choices&_embed=comments",
|
||||
"/polls/:slug/choices": "/choices?pollSlug=:slug&_embed=answers",
|
||||
"/polls/:slug/choices": "/choices?pollSlug=:slug",
|
||||
"/polls/:slug/comments": "/comments?pollSlug=:slug"
|
||||
}
|
||||
|
14
package.json
14
package.json
@ -5,13 +5,13 @@
|
||||
"scripts": {
|
||||
"ng": "ng",
|
||||
"start": "ng serve",
|
||||
"build": "ng build --prod --progress=true",
|
||||
"build-prod-stats": "ng build --prod --stats-json",
|
||||
"build:demo": "ng build --crossOrigin=anonymous --extractCss=true --progress=true --prod && npm run package",
|
||||
"build:demobliss": "ng build --crossOrigin=anonymous --extractCss=true --baseHref=https://framadate-api.cipherbliss.com --progress=true --prod && npm run package",
|
||||
"build:prod": "ng build --prod",
|
||||
"build:prod:stats": "ng build --prod --stats-json",
|
||||
"build:prod:gitlabpage": "ng build --prod --baseHref=/framadate/funky-framadate-front/",
|
||||
"build:prod:demobliss": "ng build --prod --baseHref=https://framadate-api.cipherbliss.com",
|
||||
"test": "jest",
|
||||
"test:watch": "jest --watch",
|
||||
"test:ci": "jest --runInBand",
|
||||
"test:ci": "jest --ci",
|
||||
"lint": "prettier --write \"src/**/*.{js,jsx,ts,tsx,md,html,css,scss}\"",
|
||||
"e2e": "ng e2e",
|
||||
"format:check": "prettier --list-different \"src/{app,environments,assets}/**/*{.ts,.js,.json,.css,.scss}\"",
|
||||
@ -65,7 +65,7 @@
|
||||
"@babel/preset-env": "^7.9.5",
|
||||
"@babel/preset-typescript": "^7.9.0",
|
||||
"@compodoc/compodoc": "^1.1.11",
|
||||
"@types/jest": "^25.2.1",
|
||||
"@types/jest": "^26.0.0",
|
||||
"@types/node": "^14.0.1",
|
||||
"@types/uuid": "^8.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^3.0.0",
|
||||
@ -86,7 +86,7 @@
|
||||
"ts-jest": "^26.0.0",
|
||||
"ts-mockito": "^2.5.0",
|
||||
"ts-node": "^8.10.1",
|
||||
"typescript": "~3.8.3"
|
||||
"typescript": "<3.9.0"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
|
@ -32,7 +32,7 @@ export class AppComponent implements OnInit, OnDestroy {
|
||||
if (!environment.production) {
|
||||
this.appTitle += ' [DEV]';
|
||||
// TODO: to be removed
|
||||
this.mockingService.loadUser(new User('TOTO', 'toto@gafam.com', UserRole.REGISTERED));
|
||||
this.mockingService.loadUser(new User('TOTO', 'toto@gafam.com', [], UserRole.REGISTERED));
|
||||
}
|
||||
this.titleService.setTitle(this.appTitle);
|
||||
this.languageService.configureAndInitTranslations();
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { APP_BASE_HREF, CommonModule, registerLocaleData } from '@angular/common';
|
||||
import { CommonModule, registerLocaleData } from '@angular/common';
|
||||
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
||||
import localeEn from '@angular/common/locales/en';
|
||||
import localeFr from '@angular/common/locales/fr';
|
||||
@ -64,7 +64,7 @@ export function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader {
|
||||
useDefaultLang: false,
|
||||
}),
|
||||
],
|
||||
providers: [{ provide: APP_BASE_HREF, useValue: environment.baseHref }, Title, TranslateService],
|
||||
providers: [Title, TranslateService],
|
||||
bootstrap: [AppComponent],
|
||||
})
|
||||
export class AppModule {}
|
||||
|
@ -1,4 +1,4 @@
|
||||
export enum ResponseType {
|
||||
export enum Answer {
|
||||
YES = 'YES',
|
||||
NO = 'NO',
|
||||
MAYBE = 'MAYBE',
|
@ -1,37 +1,38 @@
|
||||
import { ResponseType } from '../enums/response-type.enum';
|
||||
import { Answer } from '../enums/answer.enum';
|
||||
import { User } from './user.model';
|
||||
|
||||
export class Choice {
|
||||
constructor(
|
||||
public label: string,
|
||||
public imageUrl?: string,
|
||||
public participants: Map<ResponseType, Set<string>> = new Map<ResponseType, Set<string>>([
|
||||
[ResponseType.YES, new Set<string>()],
|
||||
[ResponseType.NO, new Set<string>()],
|
||||
[ResponseType.MAYBE, new Set<string>()],
|
||||
public participants: Map<Answer, Set<User>> = new Map<Answer, Set<User>>([
|
||||
[Answer.YES, new Set<User>()],
|
||||
[Answer.NO, new Set<User>()],
|
||||
[Answer.MAYBE, new Set<User>()],
|
||||
]),
|
||||
public counts: Map<ResponseType, number> = new Map<ResponseType, number>([
|
||||
[ResponseType.YES, 0],
|
||||
[ResponseType.NO, 0],
|
||||
[ResponseType.MAYBE, 0],
|
||||
public counts: Map<Answer, number> = new Map<Answer, number>([
|
||||
[Answer.YES, 0],
|
||||
[Answer.NO, 0],
|
||||
[Answer.MAYBE, 0],
|
||||
])
|
||||
) {}
|
||||
|
||||
public updateParticipation(pseudo: string, responseType: ResponseType): void {
|
||||
this.removeParticipant(pseudo);
|
||||
this.participants.get(responseType).add(pseudo);
|
||||
public updateParticipation(user: User, responseType: Answer): void {
|
||||
this.removeParticipant(user);
|
||||
this.participants.get(responseType).add(user);
|
||||
this.updateCounts();
|
||||
}
|
||||
|
||||
public removeParticipant(pseudo: string): void {
|
||||
for (const responseType of Object.values(ResponseType)) {
|
||||
if (this.participants.get(responseType).has(pseudo)) {
|
||||
this.participants.get(responseType).delete(pseudo);
|
||||
public removeParticipant(user: User): void {
|
||||
for (const responseType of Object.values(Answer)) {
|
||||
if (this.participants.get(responseType).has(user)) {
|
||||
this.participants.get(responseType).delete(user);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public updateCounts(): void {
|
||||
for (const responseType of Object.values(ResponseType)) {
|
||||
for (const responseType of Object.values(Answer)) {
|
||||
this.counts.set(responseType, this.participants.get(responseType).size);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +0,0 @@
|
||||
import { ResponseType } from '../enums/response-type.enum';
|
||||
import { Choice } from './choice.model';
|
||||
|
||||
export class PollUserAnswers {
|
||||
constructor(public pseudo: string, public token: string, public responsesByChoices: Map<Choice, ResponseType>) {}
|
||||
}
|
@ -1,8 +1,6 @@
|
||||
import { environment } from 'src/environments/environment';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import { ResponseType } from '../enums/response-type.enum';
|
||||
import { PollUserAnswers } from './poll-user-answers.model';
|
||||
import { Choice } from './choice.model';
|
||||
import { Comment } from './comment.model';
|
||||
import { Configuration } from './configuration.model';
|
||||
@ -16,12 +14,7 @@ export class Poll {
|
||||
public slug: string = uuidv4(),
|
||||
public configuration: Configuration = new Configuration(),
|
||||
public comments: Comment[] = [],
|
||||
public choices: Choice[] = [],
|
||||
public answersByChoiceByParticipant: Map<string, Map<string, ResponseType>> = new Map<
|
||||
string,
|
||||
Map<string, ResponseType>
|
||||
>(),
|
||||
public answers: PollUserAnswers[] = []
|
||||
public choices: Choice[] = []
|
||||
) {}
|
||||
|
||||
public getAdministrationUrl(): string {
|
||||
@ -33,18 +26,7 @@ export class Poll {
|
||||
}
|
||||
|
||||
public static adaptFromLocalJsonServer(
|
||||
item: Pick<
|
||||
Poll,
|
||||
| 'owner'
|
||||
| 'question'
|
||||
| 'description'
|
||||
| 'slug'
|
||||
| 'configuration'
|
||||
| 'comments'
|
||||
| 'choices'
|
||||
| 'answersByChoiceByParticipant'
|
||||
| 'answers'
|
||||
>
|
||||
item: Pick<Poll, 'owner' | 'question' | 'description' | 'slug' | 'configuration' | 'comments' | 'choices'>
|
||||
): Poll {
|
||||
const poll = new Poll(
|
||||
new User(item.owner.pseudo, item.owner.email, undefined),
|
||||
@ -58,32 +40,17 @@ export class Poll {
|
||||
new Comment(c.author, c.content, new Date(c.dateCreated))
|
||||
)
|
||||
.sort(Comment.sortChronologically),
|
||||
item.choices.map((c: Pick<Choice, 'label' | 'imageUrl' | 'participants' | 'imageUrl'>) => {
|
||||
item.choices.map((c: Pick<Choice, 'label' | 'imageUrl' | 'participants' | 'counts'>) => {
|
||||
const choice = new Choice(c.label, c.imageUrl, new Map(c.participants));
|
||||
choice.participants.forEach((value, key) => {
|
||||
choice.participants.set(key, new Set(value));
|
||||
});
|
||||
choice.updateCounts();
|
||||
console.log({ choice });
|
||||
return choice;
|
||||
})
|
||||
);
|
||||
|
||||
// handle answersByChoiceByParticipant
|
||||
for (const [pseudo, answersByChoice] of Object.entries(item.answersByChoiceByParticipant)) {
|
||||
if (!poll.answersByChoiceByParticipant.has(pseudo)) {
|
||||
poll.answersByChoiceByParticipant.set(pseudo, new Map<string, ResponseType>());
|
||||
}
|
||||
for (const [choiceLabel, answer] of Object.entries(answersByChoice)) {
|
||||
poll.answersByChoiceByParticipant.get(pseudo).set(choiceLabel, answer as ResponseType);
|
||||
}
|
||||
}
|
||||
|
||||
// handle answers
|
||||
poll.answers = item.answers.map(
|
||||
(pollUserAnswers: Pick<PollUserAnswers, 'pseudo' | 'token' | 'responsesByChoices'>) =>
|
||||
new PollUserAnswers(pollUserAnswers.pseudo, pollUserAnswers.token, pollUserAnswers.responsesByChoices)
|
||||
);
|
||||
|
||||
return poll;
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +0,0 @@
|
||||
export class Question {
|
||||
constructor(public label: string, public description: string) {}
|
||||
}
|
@ -2,5 +2,11 @@ import { UserRole } from '../enums/user-role.enum';
|
||||
import { Poll } from './poll.model';
|
||||
|
||||
export class User {
|
||||
constructor(public pseudo: string, public email: string, public role?: UserRole, public polls?: Poll[]) {}
|
||||
constructor(
|
||||
public pseudo: string,
|
||||
public email: string,
|
||||
public polls: Poll[] = [],
|
||||
public role?: UserRole,
|
||||
public token?: string
|
||||
) {}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
||||
import axios, { AxiosInstance, AxiosResponse } from 'axios';
|
||||
import { environment } from 'src/environments/environment';
|
||||
|
||||
import { ResponseType } from '../enums/response-type.enum';
|
||||
import { Answer } from '../enums/answer.enum';
|
||||
import { Poll } from '../models/poll.model';
|
||||
|
||||
@Injectable({
|
||||
@ -40,7 +40,7 @@ export class ApiService {
|
||||
pollId: string,
|
||||
choiceLabel: string,
|
||||
pseudo: string,
|
||||
response: ResponseType
|
||||
response: Answer
|
||||
): Promise<string> {
|
||||
try {
|
||||
return await this.axiosInstance.post(`${this.pollsEndpoint}/${pollId}${this.answersEndpoint}`, {
|
||||
@ -151,17 +151,12 @@ export class ApiService {
|
||||
////////////
|
||||
// UPDATE //
|
||||
////////////
|
||||
public async updateAnswer(
|
||||
slug: string,
|
||||
choiceLabel: string,
|
||||
pseudo: string,
|
||||
response: ResponseType
|
||||
): Promise<string> {
|
||||
public async updateAnswer(slug: string, choiceLabel: string, pseudo: string, answer: Answer): Promise<string> {
|
||||
try {
|
||||
return await this.axiosInstance.patch(`${this.pollsEndpoint}/${slug}${this.answersEndpoint}`, {
|
||||
choiceLabel,
|
||||
pseudo,
|
||||
response,
|
||||
answer,
|
||||
});
|
||||
} catch (error) {
|
||||
this.handleError(error);
|
||||
|
@ -2,7 +2,6 @@ import { Injectable } from '@angular/core';
|
||||
|
||||
import { Choice } from '../models/choice.model';
|
||||
import { Poll } from '../models/poll.model';
|
||||
import { Question } from '../models/question.model';
|
||||
import { User } from '../models/user.model';
|
||||
import { PollService } from './poll.service';
|
||||
import { UserService } from './user.service';
|
||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
|
||||
import { MessageSeverity } from '../enums/message-severity.enum';
|
||||
import { ResponseType } from '../enums/response-type.enum';
|
||||
import { Answer } from '../enums/answer.enum';
|
||||
import { Choice } from '../models/choice.model';
|
||||
import { Poll } from '../models/poll.model';
|
||||
import { User } from '../models/user.model';
|
||||
@ -40,9 +40,9 @@ export class PollService {
|
||||
}
|
||||
}
|
||||
|
||||
public saveParticipation(choice: Choice, user: User, response: ResponseType): void {
|
||||
public saveParticipation(choice: Choice, user: User, response: Answer): void {
|
||||
const currentPoll = this._poll.getValue();
|
||||
currentPoll.choices.find((c) => c.label === choice.label)?.updateParticipation(user.pseudo, response);
|
||||
currentPoll.choices.find((c) => c.label === choice.label)?.updateParticipation(user, response);
|
||||
this.updateCurrentPoll(currentPoll);
|
||||
this.apiService.createParticipation(currentPoll.slug, choice.label, user.pseudo, response);
|
||||
this.messageDisplayerService.display(
|
||||
@ -71,4 +71,37 @@ export class PollService {
|
||||
'Les commentaires de ce sondage ont été supprimés.'
|
||||
);
|
||||
}
|
||||
|
||||
public buildAnswersByChoiceLabelByPseudo(poll: Poll): Map<string, Map<string, Answer>> {
|
||||
const pseudos: Set<string> = new Set();
|
||||
poll.choices.forEach((choice: Choice) => {
|
||||
choice.participants.forEach((users: Set<User>) => {
|
||||
users.forEach((user: User) => {
|
||||
pseudos.add(user.pseudo);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
const list = new Map<string, Map<string, Answer>>();
|
||||
pseudos.forEach((pseudo: string) => {
|
||||
list.set(
|
||||
pseudo,
|
||||
new Map<string, Answer>(
|
||||
poll.choices.map((choice: Choice) => {
|
||||
return [choice.label, undefined];
|
||||
})
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
poll.choices.forEach((choice: Choice) => {
|
||||
choice.participants.forEach((users: Set<User>, answer: Answer) => {
|
||||
users.forEach((user: User) => {
|
||||
list.get(user.pseudo).set(choice.label, answer);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ import { ApiService } from './api.service';
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class UserService {
|
||||
public anonymous: User = new User('', '', UserRole.ANONYMOUS);
|
||||
public anonymous: User = new User('', '', [], UserRole.ANONYMOUS);
|
||||
|
||||
private _user: BehaviorSubject<User> = new BehaviorSubject<User>(this.anonymous);
|
||||
public readonly user: Observable<User> = this._user.asObservable();
|
||||
|
@ -7,11 +7,11 @@
|
||||
<div class="buttons has-addons is-right" (click)="openModal(choice)">
|
||||
<button class="button is-white">
|
||||
<img class="image is-24x24" src="../../../assets/img/icon_voter_YES.svg" />
|
||||
{{ choice.counts.get(responseTypeEnum.YES) }}
|
||||
{{ choice.counts.get(answerEnum.YES) }}
|
||||
</button>
|
||||
<button class="button is-white" *ngIf="poll.configuration.isMaybeAnswerAvailable">
|
||||
<img class="image is-24x24" src="../../../assets/img/icon_voter_MAYBE.svg" />
|
||||
{{ choice.counts.get(responseTypeEnum.MAYBE) }}
|
||||
{{ choice.counts.get(answerEnum.MAYBE) }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Component, Input, OnInit } from '@angular/core';
|
||||
|
||||
import { ResponseType } from '../../../core/enums/response-type.enum';
|
||||
import { Answer } from '../../../core/enums/answer.enum';
|
||||
import { Choice } from '../../../core/models/choice.model';
|
||||
import { Poll } from '../../../core/models/poll.model';
|
||||
import { ModalService } from '../../../core/services/modal.service';
|
||||
@ -14,7 +14,7 @@ export class PollResultsCompactComponent implements OnInit {
|
||||
@Input() public poll: Poll;
|
||||
public isModalOpened = false;
|
||||
public choiceInModal: Choice;
|
||||
public responseTypeEnum = ResponseType;
|
||||
public answerEnum = Answer;
|
||||
|
||||
constructor(private modalService: ModalService) {}
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<ng-container *ngFor="let item of poll.answersByChoiceByParticipant | keyvalue">
|
||||
<ng-container *ngFor="let item of buildAnswersByChoiceLabelByPseudo() | keyvalue">
|
||||
<tr>
|
||||
<td>{{ item.key }}</td>
|
||||
<td *ngFor="let subItem of item.value | keyvalue">{{ subItem.value }}</td>
|
||||
@ -14,22 +14,3 @@
|
||||
</ng-container>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr />
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th *ngFor="let choice of poll.choices">{{ choice.label }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<ng-container *ngFor="let answer of poll.answers">
|
||||
<tr>
|
||||
<td>{{ answer.pseudo }}</td>
|
||||
<td *ngFor="let response of answer.responsesByChoices | keyvalue">
|
||||
{{ response.value }}
|
||||
</td>
|
||||
</tr>
|
||||
</ng-container>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -1,6 +1,8 @@
|
||||
import { Component, Input, OnInit } from '@angular/core';
|
||||
|
||||
import { Answer } from '../../../core/enums/answer.enum';
|
||||
import { Poll } from '../../../core/models/poll.model';
|
||||
import { PollService } from '../../../core/services/poll.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-poll-results-detailed',
|
||||
@ -10,7 +12,11 @@ import { Poll } from '../../../core/models/poll.model';
|
||||
export class PollResultsDetailedComponent implements OnInit {
|
||||
@Input() public poll: Poll;
|
||||
|
||||
constructor() {}
|
||||
constructor(private pollService: PollService) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
public buildAnswersByChoiceLabelByPseudo(): Map<string, Map<string, Answer>> {
|
||||
return this.pollService.buildAnswersByChoiceLabelByPseudo(this.poll);
|
||||
}
|
||||
}
|
||||
|
@ -28,11 +28,11 @@
|
||||
<div class="column">
|
||||
<div class="buttons has-addons is-right">
|
||||
<button class="button is-white">
|
||||
{{ choice.counts.get(responseTypeEnum.YES) }}
|
||||
{{ choice.counts.get(answerEnum.YES) }}
|
||||
<img class="image is-24x24" src="../../../assets/img/icon_voter_YES.svg" />
|
||||
</button>
|
||||
<button class="button is-white" *ngIf="poll.configuration.isMaybeAnswerAvailable">
|
||||
{{ choice.counts.get(responseTypeEnum.MAYBE) }}
|
||||
{{ choice.counts.get(answerEnum.MAYBE) }}
|
||||
<img class="image is-24x24" src="../../../assets/img/icon_voter_MAYBE.svg" />
|
||||
</button>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, Input, OnInit } from '@angular/core';
|
||||
import { ResponseType } from 'src/app/core/enums/response-type.enum';
|
||||
import { Answer } from 'src/app/core/enums/answer.enum';
|
||||
|
||||
import { Choice } from '../../../core/models/choice.model';
|
||||
import { Poll } from '../../../core/models/poll.model';
|
||||
@ -15,15 +15,15 @@ export class AddAnswerComponent implements OnInit {
|
||||
@Input() user: User;
|
||||
@Input() poll: Poll;
|
||||
@Input() choice: Choice;
|
||||
public responseTypeEnum = ResponseType;
|
||||
public response: ResponseType;
|
||||
public answerEnum = Answer;
|
||||
public response: Answer;
|
||||
|
||||
constructor(private pollService: PollService) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
public vote(response: string): void {
|
||||
this.response = response as ResponseType;
|
||||
this.response = response as Answer;
|
||||
console.log(this.response);
|
||||
this.pollService.saveParticipation(this.choice, this.user, this.response);
|
||||
}
|
||||
|
@ -5,13 +5,13 @@
|
||||
<tr>
|
||||
<th class="is-flex">
|
||||
<img class="image is-24x24" src="../../../assets/img/icon_voter_YES.svg" />
|
||||
{{ choice.counts.get(responseTypeEnum.YES) }}
|
||||
{{ choice.counts.get(answerEnum.YES) }}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr *ngFor="let pseudo of choice.participants.get(responseTypeEnum.YES)">
|
||||
<td>{{ pseudo }}</td>
|
||||
<tr *ngFor="let user of choice.participants.get(answerEnum.YES)">
|
||||
<td>{{ user.pseudo }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -22,13 +22,13 @@
|
||||
<tr>
|
||||
<th class="is-flex">
|
||||
<img class="image is-24x24" src="../../../assets/img/icon_voter_MAYBE.svg" />
|
||||
{{ choice.counts.get(responseTypeEnum.MAYBE) }}
|
||||
{{ choice.counts.get(answerEnum.MAYBE) }}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr *ngFor="let pseudo of choice.participants.get(responseTypeEnum.MAYBE)">
|
||||
<td>{{ pseudo }}</td>
|
||||
<tr *ngFor="let user of choice.participants.get(answerEnum.MAYBE)">
|
||||
<td>{{ user.pseudo }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { DynamicDialogConfig, DynamicDialogRef } from 'primeng';
|
||||
|
||||
import { ResponseType } from '../../../core/enums/response-type.enum';
|
||||
import { Answer } from '../../../core/enums/answer.enum';
|
||||
import { Choice } from '../../../core/models/choice.model';
|
||||
|
||||
@Component({
|
||||
@ -11,7 +11,7 @@ import { Choice } from '../../../core/models/choice.model';
|
||||
})
|
||||
export class ChoiceDetailsComponent implements OnInit {
|
||||
public choice: Choice;
|
||||
public responseTypeEnum = ResponseType;
|
||||
public answerEnum = Answer;
|
||||
|
||||
constructor(public ref: DynamicDialogRef, public config: DynamicDialogConfig) {}
|
||||
|
||||
|
@ -5,7 +5,6 @@ const backendApiUrlsInDev = {
|
||||
|
||||
export const environment = {
|
||||
production: true,
|
||||
baseHref: '/framadate/funky-framadate-front/',
|
||||
appTitle: 'FramaSondage',
|
||||
api: {
|
||||
baseHref: backendApiUrlsInDev.remote,
|
||||
@ -21,9 +20,6 @@ export const environment = {
|
||||
slugs: {
|
||||
name: '/slugs',
|
||||
},
|
||||
votesStacks: {
|
||||
name: '/votes-stacks',
|
||||
},
|
||||
answers: {
|
||||
name: '/answers',
|
||||
},
|
||||
|
@ -9,7 +9,6 @@ const backendApiUrlsInDev = {
|
||||
|
||||
export const environment = {
|
||||
production: false,
|
||||
baseHref: '/',
|
||||
appTitle: 'FramaSondage',
|
||||
api: {
|
||||
baseHref: backendApiUrlsInDev.local,
|
||||
@ -25,9 +24,6 @@ export const environment = {
|
||||
slugs: {
|
||||
name: '/slugs',
|
||||
},
|
||||
votesStacks: {
|
||||
name: '/votes-stacks',
|
||||
},
|
||||
answers: {
|
||||
name: '/answers',
|
||||
},
|
||||
|
@ -1,6 +1,5 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
|
||||
label {
|
||||
line-height: 2.5em;
|
||||
}
|
||||
|
@ -18,7 +18,8 @@ nav {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&.active, &.is-active {
|
||||
&.active,
|
||||
&.is-active {
|
||||
color: $white;
|
||||
background: $primary_color;
|
||||
}
|
||||
@ -83,7 +84,7 @@ a {
|
||||
}
|
||||
// material override
|
||||
.navbar {
|
||||
margin-bottom: 0
|
||||
margin-bottom: 0;
|
||||
}
|
||||
a span.ui-steps-number {
|
||||
padding: 0;
|
||||
|
@ -6,7 +6,10 @@ $theme-color-tertiary: #ccc;
|
||||
background: #222;
|
||||
color: $theme-color-tertiary;
|
||||
|
||||
main, .big-header, .navbar , footer{
|
||||
main,
|
||||
.big-header,
|
||||
.navbar,
|
||||
footer {
|
||||
background: #444;
|
||||
}
|
||||
.big-header {
|
||||
@ -65,7 +68,14 @@ $theme-color-tertiary: #ccc;
|
||||
}
|
||||
|
||||
// bulma override
|
||||
.button.is-primary, .button.btn--primary, button.is-primary, button.btn--primary, .is-primary.btn, .btn.btn--primary, .is-primary.back, .back.btn--primary{
|
||||
.button.is-primary,
|
||||
.button.btn--primary,
|
||||
button.is-primary,
|
||||
button.btn--primary,
|
||||
.is-primary.btn,
|
||||
.btn.btn--primary,
|
||||
.is-primary.back,
|
||||
.back.btn--primary {
|
||||
background-color: $theme-color-primary !important;
|
||||
color: $theme-color-tertiary !important;
|
||||
}
|
||||
@ -75,7 +85,14 @@ $theme-color-tertiary: #ccc;
|
||||
// material override
|
||||
.navbar-dropdown a.navbar-item.is-active,
|
||||
body .ui-steps .ui-steps-item.ui-state-highlight .ui-steps-number,
|
||||
a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, .navbar-link:focus, .navbar-link:focus-within, .navbar-link:hover, .navbar-link.is-active{
|
||||
a.navbar-item:focus,
|
||||
a.navbar-item:focus-within,
|
||||
a.navbar-item:hover,
|
||||
a.navbar-item.is-active,
|
||||
.navbar-link:focus,
|
||||
.navbar-link:focus-within,
|
||||
.navbar-link:hover,
|
||||
.navbar-link.is-active {
|
||||
color: $theme-color-primary !important;
|
||||
}
|
||||
|
||||
|
@ -28,5 +28,4 @@
|
||||
.navbar-link:not(.is-arrowless)::after {
|
||||
border-color: $primary_color;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -22,15 +22,28 @@ $theme-color-tertiary: #ffbca4;
|
||||
}
|
||||
|
||||
// bulma override
|
||||
.button.is-primary, .button.btn--primary, button.is-primary, button.btn--primary, .is-primary.btn, .btn.btn--primary, .is-primary.back, .back.btn--primary{
|
||||
.button.is-primary,
|
||||
.button.btn--primary,
|
||||
button.is-primary,
|
||||
button.btn--primary,
|
||||
.is-primary.btn,
|
||||
.btn.btn--primary,
|
||||
.is-primary.back,
|
||||
.back.btn--primary {
|
||||
background-color: $theme-color-primary;
|
||||
color: $theme-color-tertiary;
|
||||
}
|
||||
// material override
|
||||
.navbar-dropdown a.navbar-item.is-active,
|
||||
a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, .navbar-link:focus, .navbar-link:focus-within, .navbar-link:hover, .navbar-link.is-active{
|
||||
a.navbar-item:focus,
|
||||
a.navbar-item:focus-within,
|
||||
a.navbar-item:hover,
|
||||
a.navbar-item.is-active,
|
||||
.navbar-link:focus,
|
||||
.navbar-link:focus-within,
|
||||
.navbar-link:hover,
|
||||
.navbar-link.is-active {
|
||||
color: $theme-color-primary;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
493
yarn.lock
493
yarn.lock
@ -12,29 +12,29 @@
|
||||
jest-preset-angular "^8.1.2"
|
||||
lodash "^4.17.10"
|
||||
|
||||
"@angular-devkit/architect@0.901.7", "@angular-devkit/architect@>=0.900.0 < 0.1000.0":
|
||||
version "0.901.7"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.901.7.tgz#6a09cb076ca92b3202053fca757a456d1f8e4395"
|
||||
integrity sha512-yW/PUEqle55QihOFbmeNXaVTodhfeXkteoFDUpz+YpX3xiQDXDtNbIJSzKOQTojtBKdSMKMvZkQLr+RAa7/1EA==
|
||||
"@angular-devkit/architect@0.901.8", "@angular-devkit/architect@>=0.900.0 < 0.1000.0":
|
||||
version "0.901.8"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.901.8.tgz#d2f5f4c16fba3ed61ee27c7fc72118421ea2b45d"
|
||||
integrity sha512-tK9ZQlubH6n+q+c2J9Wvfcxg3RFuRiTfJriNoodo6GHvtF2KLdPY67w3Gen0Sp172A5Q8Y927NseddNI8RZ/0A==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "9.1.7"
|
||||
"@angular-devkit/core" "9.1.8"
|
||||
rxjs "6.5.4"
|
||||
|
||||
"@angular-devkit/build-angular@^0.901.2":
|
||||
version "0.901.7"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.901.7.tgz#10d55e3c73213971ba7d733f15d66494dfe9918a"
|
||||
integrity sha512-NiBwapx/XJqYGzSmENff78i6Yif9PjYDJ9BB+59t2eDofkCZUcPFrhQmRgliO7rt6RATvT81lDP89+LBXCTQPw==
|
||||
version "0.901.8"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-0.901.8.tgz#6450be4743dacf564af143c85d2a03b7bdd81551"
|
||||
integrity sha512-W2RTjtPPJRbke6K7Qt9eZOPRGfFBFsYzskxsuxXwkW2RPopj6k1wUWh9Be8CtAMAUlhyPvlzviOtv3F7leYr3w==
|
||||
dependencies:
|
||||
"@angular-devkit/architect" "0.901.7"
|
||||
"@angular-devkit/build-optimizer" "0.901.7"
|
||||
"@angular-devkit/build-webpack" "0.901.7"
|
||||
"@angular-devkit/core" "9.1.7"
|
||||
"@angular-devkit/architect" "0.901.8"
|
||||
"@angular-devkit/build-optimizer" "0.901.8"
|
||||
"@angular-devkit/build-webpack" "0.901.8"
|
||||
"@angular-devkit/core" "9.1.8"
|
||||
"@babel/core" "7.9.0"
|
||||
"@babel/generator" "7.9.3"
|
||||
"@babel/preset-env" "7.9.0"
|
||||
"@babel/template" "7.8.6"
|
||||
"@jsdevtools/coverage-istanbul-loader" "3.0.3"
|
||||
"@ngtools/webpack" "9.1.7"
|
||||
"@ngtools/webpack" "9.1.8"
|
||||
ajv "6.12.0"
|
||||
autoprefixer "9.7.4"
|
||||
babel-loader "8.0.6"
|
||||
@ -42,7 +42,7 @@
|
||||
cacache "15.0.0"
|
||||
caniuse-lite "^1.0.30001032"
|
||||
circular-dependency-plugin "5.2.0"
|
||||
copy-webpack-plugin "5.1.1"
|
||||
copy-webpack-plugin "6.0.2"
|
||||
core-js "3.6.4"
|
||||
css-loader "3.5.1"
|
||||
cssnano "4.1.10"
|
||||
@ -51,7 +51,7 @@
|
||||
glob "7.1.6"
|
||||
jest-worker "25.1.0"
|
||||
karma-source-map-support "1.4.0"
|
||||
less "3.11.1"
|
||||
less "3.11.3"
|
||||
less-loader "5.0.0"
|
||||
license-webpack-plugin "2.1.4"
|
||||
loader-utils "2.0.0"
|
||||
@ -87,10 +87,10 @@
|
||||
webpack-subresource-integrity "1.4.0"
|
||||
worker-plugin "4.0.3"
|
||||
|
||||
"@angular-devkit/build-optimizer@0.901.7":
|
||||
version "0.901.7"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.901.7.tgz#e72fc3031207a78aee175a76d3317cdf226984e9"
|
||||
integrity sha512-Xuce3StdxhcgLYb0BAaFGr3Bzj5EM2OsAqIT15PkikWY1k5cK50vPxoC/BkX4QDL9eXSHtqAfMBfA6h5N422vw==
|
||||
"@angular-devkit/build-optimizer@0.901.8":
|
||||
version "0.901.8"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.901.8.tgz#55a6cecf9b963bac15f84b5db8ec211c82119954"
|
||||
integrity sha512-k9DynuWKMsJk5xg+LthdsqmOlGVMVP/TEu2odiVty9gnTVlIjs1bUzs+HNAF/w11juIBcVKa690K+FkSCalo9w==
|
||||
dependencies:
|
||||
loader-utils "2.0.0"
|
||||
source-map "0.7.3"
|
||||
@ -98,19 +98,19 @@
|
||||
typescript "3.6.5"
|
||||
webpack-sources "1.4.3"
|
||||
|
||||
"@angular-devkit/build-webpack@0.901.7":
|
||||
version "0.901.7"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.901.7.tgz#6d93c38756540a02e67d2c3ccfac4220c62962de"
|
||||
integrity sha512-pTLW5Eqy9cHgv78LKiH0e30lxqKzUPjh1djvNtFsEemOHsfKQdAfjLjikoaQvqMoBKVaUU7r2vmyyS17cH+1yw==
|
||||
"@angular-devkit/build-webpack@0.901.8":
|
||||
version "0.901.8"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.901.8.tgz#19fbac49c3f60c16d6814d61e518431503ab746a"
|
||||
integrity sha512-OyLfPI0yo1Qg4I1QP8ZxEYVxrf3IDjGfpxlKXqSChpEy5m/uZmBIRDZ/n/G3+32xFc6MWEdU4EHfRrfn17ae/w==
|
||||
dependencies:
|
||||
"@angular-devkit/architect" "0.901.7"
|
||||
"@angular-devkit/core" "9.1.7"
|
||||
"@angular-devkit/architect" "0.901.8"
|
||||
"@angular-devkit/core" "9.1.8"
|
||||
rxjs "6.5.4"
|
||||
|
||||
"@angular-devkit/core@9.1.7", "@angular-devkit/core@^9.0.0":
|
||||
version "9.1.7"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.1.7.tgz#f193ccbae4c80b34188bc9cc401c16b3ced50339"
|
||||
integrity sha512-guvolu9Cl+qYMTtedLZD9wCqustJjdqzJ2psD2C1Sr1LrX9T0mprmDldR/YnhsitThveJEb6sM/0EvqWxoSvKw==
|
||||
"@angular-devkit/core@9.1.8", "@angular-devkit/core@^9.0.0":
|
||||
version "9.1.8"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-9.1.8.tgz#7c517a14e3ddfd180858972d9f1836aa90a1248e"
|
||||
integrity sha512-4k1pZwje2oh5c/ULg7pnCBzTstx3l3uF7O5tQq/KXomDDsam97IhLm6cKUqQpaoyC1NUsBV6xJARJ0PyUP5TPQ==
|
||||
dependencies:
|
||||
ajv "6.12.0"
|
||||
fast-json-stable-stringify "2.1.0"
|
||||
@ -118,19 +118,19 @@
|
||||
rxjs "6.5.4"
|
||||
source-map "0.7.3"
|
||||
|
||||
"@angular-devkit/schematics@9.1.7":
|
||||
version "9.1.7"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-9.1.7.tgz#45394a1c928db449b412dacf205c3ec78fb5ef0c"
|
||||
integrity sha512-oeHPJePBcPp/bd94jHQeFUnft93PGF5iJiKV9szxqS8WWC5OMZ5eK7icRY0PwvLyfenspAZxdZcNaqJqPMul5A==
|
||||
"@angular-devkit/schematics@9.1.8":
|
||||
version "9.1.8"
|
||||
resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-9.1.8.tgz#8eeea0b6f9702a5b065f909cdcaf1d35cc8e2fa3"
|
||||
integrity sha512-/8L5J4X6SkcFMRmrSQHvJWOPilrMWTNlv1lD+1z06D3xGJEktVxXM3gCUXhDrbMvpoi+lYtR2Fuia0E6zvyjCQ==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "9.1.7"
|
||||
"@angular-devkit/core" "9.1.8"
|
||||
ora "4.0.3"
|
||||
rxjs "6.5.4"
|
||||
|
||||
"@angular/animations@^9.1.1":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-9.1.9.tgz#de54334ea195189402487855c9a98f5618605da4"
|
||||
integrity sha512-qWVi0TxmU6HeXAgEsfpQvFFygh+a0kH2kGe6bWij4XvG6dWfV3xZjlaFwSIYGk+yK4yL0+9+PAXH+ENfxNw+Cw==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-9.1.11.tgz#2c7b6e584df0ba0884d05f01fa7ab86c1fdd1c5e"
|
||||
integrity sha512-VKAExUnEJfo1PDQKagpx2pn+QMZCsPLRiADzTdl4U0VPylK3ALbn4ZNY9UbdwyE2plitz++LkH7sEGGfh+PNrQ==
|
||||
|
||||
"@angular/cdk@^9.2.2":
|
||||
version "9.2.4"
|
||||
@ -140,15 +140,15 @@
|
||||
parse5 "^5.0.0"
|
||||
|
||||
"@angular/cli@^9.1.2":
|
||||
version "9.1.7"
|
||||
resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-9.1.7.tgz#0532b9c55d267cd6ee3edb79fec8b19c4e64e607"
|
||||
integrity sha512-NhsIa725S/U/n7nDxp6ForusdYHEXF4aSIvsFRdoK6vbQ889c5e1Rdj+T5EWXLmpQZxeprSKhLI2alNX0nVhhQ==
|
||||
version "9.1.8"
|
||||
resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-9.1.8.tgz#fd143e26c913ccea5b8ac1716e1c168432ac96d3"
|
||||
integrity sha512-yfF7glPo3Xm7fTJVln1bFZVXqHu8wkIGZRZGb6lsJa+QH4ePxHgn+dNYXho0MYpGUnhY7xOBW4MJzjS7E+1y5Q==
|
||||
dependencies:
|
||||
"@angular-devkit/architect" "0.901.7"
|
||||
"@angular-devkit/core" "9.1.7"
|
||||
"@angular-devkit/schematics" "9.1.7"
|
||||
"@schematics/angular" "9.1.7"
|
||||
"@schematics/update" "0.901.7"
|
||||
"@angular-devkit/architect" "0.901.8"
|
||||
"@angular-devkit/core" "9.1.8"
|
||||
"@angular-devkit/schematics" "9.1.8"
|
||||
"@schematics/angular" "9.1.8"
|
||||
"@schematics/update" "0.901.8"
|
||||
"@yarnpkg/lockfile" "1.1.0"
|
||||
ansi-colors "4.1.1"
|
||||
debug "4.1.1"
|
||||
@ -166,14 +166,14 @@
|
||||
uuid "7.0.2"
|
||||
|
||||
"@angular/common@^9.0.7":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/common/-/common-9.1.9.tgz#16e77b2db675b80e32f1788a20c538150fd09294"
|
||||
integrity sha512-y/tJtkuOJhV2kcaXZyrLZH84i4uQ1r+vaaEHvXj+JZYfYfcMMd/TDqMiPcIkUb3RxqghtZ+q0ZNW5D1Nlru3Pw==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/common/-/common-9.1.11.tgz#1323f7b043410791bd2d0d71b0bbb1f862319c04"
|
||||
integrity sha512-Vh5lF7zWwDK9RedmYXUc8vUXyrecR3j1mAWlTlnmcHYxxFThPzN/dr0slQcPi6nyJn0EmyRKUGvAoZx4rIb7wg==
|
||||
|
||||
"@angular/compiler-cli@^9.1.1":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-9.1.9.tgz#e3c234d888074002fa5f6b7eab4f63f4ddbdb7bd"
|
||||
integrity sha512-aLr2eaDlREN8XybgTbelvjtSZ8eAkxBPilnkddc700BgiC6ImyUSKaItOwa8bnjQwq4Wlz5eVG0ibsrX+5MXwg==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-9.1.11.tgz#39da68ddadb52008fe5231141707bddd3aa790b2"
|
||||
integrity sha512-9qIxbtpRXOQnRm6inxCa5HuH87MSuMzuceD0YBVzl8v+vLtewon9KXYMmF4kTBhWa/LEa8FrajljLh0azf3VLg==
|
||||
dependencies:
|
||||
canonical-path "1.0.0"
|
||||
chokidar "^3.0.0"
|
||||
@ -189,48 +189,48 @@
|
||||
yargs "15.3.0"
|
||||
|
||||
"@angular/compiler@^9.0.7":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.1.9.tgz#cbf678ee28a0811a8ef3ee7be565d4911ff28ec7"
|
||||
integrity sha512-kjFgaTB2ckr9lgmkS1dOGRT7kmzpQueydxsxXSHWgICNVE6F/u1PHyeSOyJRpxW0GnrkLq3QM2EUFnQGGga5bg==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.1.11.tgz#4c7100f53c87f47e793e149427b8bdee44302381"
|
||||
integrity sha512-MbVheCG0U8gt6xtiipau20N26mD2sXjLChVmRKgO6rbDruxboNMZfEd94q9NP9JRaUsVnjXvY7GMDldoymdXig==
|
||||
|
||||
"@angular/core@^9.0.7":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.1.9.tgz#db4241f867d6e14b81ed6e7c50334813c6ebfc10"
|
||||
integrity sha512-q/DERgVU6vK2LtTcdVCGGBcoO424WsEfImh3Vcuy+P/ZVmthlDUC/+q+tSKt8MMf4hLpxFDQJE8vUSkktj7QEw==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.1.11.tgz#7a92d27292212ed381be15f9000d4019867f1c7c"
|
||||
integrity sha512-KAlEedBo761O1aeoTJVziOSHi8Fttk9ipvbDZXYT/o0W/KdVwubxP34g9t5aD8LCcF8+L0z4VLw++HjdJAUpwg==
|
||||
|
||||
"@angular/forms@^9.0.7":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-9.1.9.tgz#20c9a79d1dcb2cace45df9e2f304b658e02c1687"
|
||||
integrity sha512-r675yImnb/0pY7K5W3V2ITa7YETu1I2AS+bRfII6UQ6gthyeFFOHb5noa7YneC2yqQiM6E4DQmF5ig3daPuFNg==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-9.1.11.tgz#fa246144649236613598a0471aa7f39b60f986b5"
|
||||
integrity sha512-t4WHrh6ot1r8zdV+3fJz7g9rCok77c9CiIevhH2dR/idxD+HtFR0wqmcBQzsn+rNVB0f0TiSHDrj+TeELIFyWw==
|
||||
|
||||
"@angular/language-service@^9.0.7":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-9.1.9.tgz#332a7e54d5e553b92342b10703dc13aba474a28f"
|
||||
integrity sha512-yT6HPpdAe2mD9HRoTCiWFog1MRJt+0j+CLbI/Ql7C6pH6vbjmfsJ55xMmQ7eS6trsnebpMWTUv1f2GRykv3ygw==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-9.1.11.tgz#a2afed4f0167e6f4d3d748214b8e1c27980703ce"
|
||||
integrity sha512-jfm4etbqldj6MTwECwyoAs7tXEAR8K/8P8dBZnsELhY+V8oFidTJI3NY52PB3Ym7leSPorYdOAeUMMuQfPaVxg==
|
||||
|
||||
"@angular/localize@^9.1.1":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-9.1.9.tgz#0867a82abcdeb6b88cbd4d61e1410f3c63a66ddb"
|
||||
integrity sha512-U/4axUr99GO3+dRuMIEyJ1FqXauT82x/w7GulWu05qk8ML8MaIQ58RcB/LTJJY1s1qfwdcsyzX2wZrZcwBLKlA==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-9.1.11.tgz#25921d794836fb7a07d284c1ac0ed06c10e77d50"
|
||||
integrity sha512-CrR7RniwJIK3+QKH8nHl35KDAHZn1mp1QAd5vujTWKw6YRLfio7SjM9qIfzw5y4WZuUitTsqKlQT/m/NK146Ag==
|
||||
dependencies:
|
||||
"@babel/core" "7.8.3"
|
||||
glob "7.1.2"
|
||||
yargs "15.3.0"
|
||||
|
||||
"@angular/platform-browser-dynamic@^9.0.7":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.9.tgz#12f8b05d3c9ef0844df88f3833e29ea1e49ec5e0"
|
||||
integrity sha512-b9MG5MWne+IuL3uLm8jwPhlJzqYaGBGk/qibOqb17T24j1iyrlO7T5bZ8zO6pUy5iT/TahVfHPnPJC1qTK5OmA==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.1.11.tgz#82af336b05e0d7b7478a2ca7f6282825b211f340"
|
||||
integrity sha512-Qw3rfVFF0Wtu+UwraqKPCgTA3uoNPGf4vKSfuCuXTrG0p7j+3mCP59aUv5gGH7GV1UQ++jZRx5pbWF43zrC8Hw==
|
||||
|
||||
"@angular/platform-browser@^9.0.7":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-9.1.9.tgz#c2fcc50aebfdc268521b407e32dc0d967cb40411"
|
||||
integrity sha512-V861X3MxJp1AlMTnkUPldpBLIJbApXF3ka0A5Dq2nVJCyOFeteGkaRWSBgqe2jxmq+LVpJbzcNvtDFXw6mQ0jA==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-9.1.11.tgz#4da8e2a4231d5162304746a39f54cb2d3f241b7c"
|
||||
integrity sha512-KDxoiFhW4UD+EqchcKpQVSLwg9Rd3JbWytZLchFV6nH8BFnshfJtw2tyPT8bMhFVG9n9zSR4QSGaozWgoDs9mw==
|
||||
|
||||
"@angular/router@^9.0.7":
|
||||
version "9.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@angular/router/-/router-9.1.9.tgz#5d79d72cb62ea1c04ea70238846653ecf9c4a73c"
|
||||
integrity sha512-4u+CWMPB4hCkAsFCEzC94YEWT0wVozqGkc/Dortt2hFaqvZpIegg6iJVZlDxuyDjzFYBPnnbTDdgiTTA8ckfuA==
|
||||
version "9.1.11"
|
||||
resolved "https://registry.yarnpkg.com/@angular/router/-/router-9.1.11.tgz#b6d28af55fe5631bbc46f306a0e7866253d4f3b1"
|
||||
integrity sha512-D6CCDeSK/F6dWSB/a1g/zB072xG5LadLSV8afQ57oX1KHePx21LcoRG4tUtFMMHh/jZXRc9pMQIR1/9FrrXF3Q==
|
||||
|
||||
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.1", "@babel/code-frame@^7.8.3":
|
||||
version "7.10.1"
|
||||
@ -1489,12 +1489,12 @@
|
||||
call-me-maybe "^1.0.1"
|
||||
glob-to-regexp "^0.3.0"
|
||||
|
||||
"@ngtools/webpack@9.1.7":
|
||||
version "9.1.7"
|
||||
resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-9.1.7.tgz#4322757b029e1175a3361183c06b31d0576538d8"
|
||||
integrity sha512-A7VB2I42Kn+7jl0tDKzGNLAoZLWSqkKo9Hg1bmKpvAAIz+DSbq3uV+JWgGgTprM3tn0lfkVgmqk4H17HKwAOcg==
|
||||
"@ngtools/webpack@9.1.8":
|
||||
version "9.1.8"
|
||||
resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-9.1.8.tgz#50a906047b284098e5cd669e8174c9cfcaf3bafc"
|
||||
integrity sha512-2Y27PrHLMyrIDmuicjp2OU7KIr9bggwMLNZdjfpcuXlOPP/BYviuhgkkYsfJysrpDRUJUHlXRJG7OJbgyFM7gQ==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "9.1.7"
|
||||
"@angular-devkit/core" "9.1.8"
|
||||
enhanced-resolve "4.1.1"
|
||||
rxjs "6.5.4"
|
||||
webpack-sources "1.4.3"
|
||||
@ -1511,26 +1511,54 @@
|
||||
dependencies:
|
||||
tslib "^1.9.0"
|
||||
|
||||
"@nodelib/fs.scandir@2.1.3":
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
|
||||
integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==
|
||||
dependencies:
|
||||
"@nodelib/fs.stat" "2.0.3"
|
||||
run-parallel "^1.1.9"
|
||||
|
||||
"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
|
||||
integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
|
||||
|
||||
"@nodelib/fs.stat@^1.1.2":
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
|
||||
integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
|
||||
|
||||
"@schematics/angular@9.1.7":
|
||||
version "9.1.7"
|
||||
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-9.1.7.tgz#b7801a5e20f844da560db81d2971590e8ac090ff"
|
||||
integrity sha512-ld3WcoMWvup04V3OWioQ+AFGQBzz7IDM4Fxc5+Qc3wILWkDJnNkrc4EmJAow96Ab4/T1+Wl1vof3tV4At0BTzA==
|
||||
"@nodelib/fs.walk@^1.2.3":
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976"
|
||||
integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "9.1.7"
|
||||
"@angular-devkit/schematics" "9.1.7"
|
||||
"@nodelib/fs.scandir" "2.1.3"
|
||||
fastq "^1.6.0"
|
||||
|
||||
"@schematics/update@0.901.7":
|
||||
version "0.901.7"
|
||||
resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.901.7.tgz#164bff4e97383a0a7d266fe5eb2e1bf41f14dfe9"
|
||||
integrity sha512-6IpQVFvbu47CrXfqqHAzv2vi7AOdfi1S+SiayXU6FWTeA2wV47H8R60VjxurL8JkDGoVhFgC4+lK6KG++g3dQw==
|
||||
"@npmcli/move-file@^1.0.1":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464"
|
||||
integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "9.1.7"
|
||||
"@angular-devkit/schematics" "9.1.7"
|
||||
mkdirp "^1.0.4"
|
||||
|
||||
"@schematics/angular@9.1.8":
|
||||
version "9.1.8"
|
||||
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-9.1.8.tgz#da6cd63b65776b18c43d8515bfca754dd9acdbc9"
|
||||
integrity sha512-fjyAP9m4aF51OVdksRXCOF8BTyt96PqFmKK9G0kuwOzgfx2gPZNOO3wOZH6xFAMZ09y86VGzasZxZNeDdyN4sQ==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "9.1.8"
|
||||
"@angular-devkit/schematics" "9.1.8"
|
||||
|
||||
"@schematics/update@0.901.8":
|
||||
version "0.901.8"
|
||||
resolved "https://registry.yarnpkg.com/@schematics/update/-/update-0.901.8.tgz#d48be9931a2462062d4d4ac05c4b24b319bc064a"
|
||||
integrity sha512-v1tEYX6yM5vuwXW7AG7OZ4OtjqRwTo3kd69LVJyOdF/d9HlqaAFU301RuEsAPwOrPqZEQdTwklH1fNJnqgpB/w==
|
||||
dependencies:
|
||||
"@angular-devkit/core" "9.1.8"
|
||||
"@angular-devkit/schematics" "9.1.8"
|
||||
"@yarnpkg/lockfile" "1.1.0"
|
||||
ini "1.3.5"
|
||||
npm-package-arg "^8.0.0"
|
||||
@ -1631,9 +1659,9 @@
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz#79d7a78bad4219f4c03d6557a1c72d9ca6ba62d5"
|
||||
integrity sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w==
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762"
|
||||
integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==
|
||||
|
||||
"@types/istanbul-lib-report@*":
|
||||
version "3.0.0"
|
||||
@ -1650,18 +1678,18 @@
|
||||
"@types/istanbul-lib-coverage" "*"
|
||||
"@types/istanbul-lib-report" "*"
|
||||
|
||||
"@types/jest@^25.2.1":
|
||||
version "25.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.3.tgz#33d27e4c4716caae4eced355097a47ad363fdcaf"
|
||||
integrity sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==
|
||||
"@types/jest@^26.0.0":
|
||||
version "26.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.0.tgz#a6d7573dffa9c68cbbdf38f2e0de26f159e11134"
|
||||
integrity sha512-/yeMsH9HQ1RLORlXAwoLXe8S98xxvhNtUz3yrgrwbaxYjT+6SFPZZRksmRKRA6L5vsUtSHeN71viDOTTyYAD+g==
|
||||
dependencies:
|
||||
jest-diff "^25.2.1"
|
||||
pretty-format "^25.2.1"
|
||||
|
||||
"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4":
|
||||
version "7.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339"
|
||||
integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==
|
||||
version "7.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd"
|
||||
integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==
|
||||
|
||||
"@types/marked@^0.7.4":
|
||||
version "0.7.4"
|
||||
@ -1674,9 +1702,9 @@
|
||||
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
|
||||
|
||||
"@types/node@*", "@types/node@^14.0.1":
|
||||
version "14.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.11.tgz#61d4886e2424da73b7b25547f59fdcb534c165a3"
|
||||
integrity sha512-lCvvI24L21ZVeIiyIUHZ5Oflv1hhHQ5E1S25IRlKIXaRkVgmXpJMI3wUJkmym2bTbCe+WoIibQnMVAU3FguaOg==
|
||||
version "14.0.13"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.13.tgz#ee1128e881b874c371374c1f72201893616417c9"
|
||||
integrity sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==
|
||||
|
||||
"@types/normalize-package-data@^2.4.0":
|
||||
version "2.4.0"
|
||||
@ -1745,40 +1773,40 @@
|
||||
"@types/yargs-parser" "*"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^3.0.0":
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.1.0.tgz#4ac00ecca3bbea740c577f1843bc54fa69c3def2"
|
||||
integrity sha512-D52KwdgkjYc+fmTZKW7CZpH5ZBJREJKZXRrveMiRCmlzZ+Rw9wRVJ1JAmHQ9b/+Ehy1ZeaylofDB9wwXUt83wg==
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.2.0.tgz#7fb997f391af32ae6ca1dbe56bcefe4dd30bda14"
|
||||
integrity sha512-t9RTk/GyYilIXt6BmZurhBzuMT9kLKw3fQoJtK9ayv0tXTlznXEAnx07sCLXdkN3/tZDep1s1CEV95CWuARYWA==
|
||||
dependencies:
|
||||
"@typescript-eslint/experimental-utils" "3.1.0"
|
||||
"@typescript-eslint/experimental-utils" "3.2.0"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
regexpp "^3.0.0"
|
||||
semver "^7.3.2"
|
||||
tsutils "^3.17.1"
|
||||
|
||||
"@typescript-eslint/experimental-utils@3.1.0":
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.1.0.tgz#2d5dba7c2ac2a3da3bfa3f461ff64de38587a872"
|
||||
integrity sha512-Zf8JVC2K1svqPIk1CB/ehCiWPaERJBBokbMfNTNRczCbQSlQXaXtO/7OfYz9wZaecNvdSvVADt6/XQuIxhC79w==
|
||||
"@typescript-eslint/experimental-utils@3.2.0":
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.2.0.tgz#4dab8fc9f44f059ec073470a81bb4d7d7d51e6c5"
|
||||
integrity sha512-UbJBsk+xO9dIFKtj16+m42EvUvsjZbbgQ2O5xSTSfVT1Z3yGkL90DVu0Hd3029FZ5/uBgl+F3Vo8FAcEcqc6aQ==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.3"
|
||||
"@typescript-eslint/typescript-estree" "3.1.0"
|
||||
"@typescript-eslint/typescript-estree" "3.2.0"
|
||||
eslint-scope "^5.0.0"
|
||||
eslint-utils "^2.0.0"
|
||||
|
||||
"@typescript-eslint/parser@^3.0.0":
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.1.0.tgz#9c02ba5d88ad2355672f39e6cd4176f172dd47f8"
|
||||
integrity sha512-NcDSJK8qTA2tPfyGiPes9HtVKLbksmuYjlgGAUs7Ld2K0swdWibnCq9IJx9kJN8JJdgUJSorFiGaPHBgH81F/Q==
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.2.0.tgz#d9d7867456b1b8ecae9e724269b0bc932f06cbca"
|
||||
integrity sha512-Vhu+wwdevDLVDjK1lIcoD6ZbuOa93fzqszkaO3iCnmrScmKwyW/AGkzc2UvfE5TCoCXqq7Jyt6SOXjsIlpqF4A==
|
||||
dependencies:
|
||||
"@types/eslint-visitor-keys" "^1.0.0"
|
||||
"@typescript-eslint/experimental-utils" "3.1.0"
|
||||
"@typescript-eslint/typescript-estree" "3.1.0"
|
||||
"@typescript-eslint/experimental-utils" "3.2.0"
|
||||
"@typescript-eslint/typescript-estree" "3.2.0"
|
||||
eslint-visitor-keys "^1.1.0"
|
||||
|
||||
"@typescript-eslint/typescript-estree@3.1.0":
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.1.0.tgz#eaff52d31e615e05b894f8b9d2c3d8af152a5dd2"
|
||||
integrity sha512-+4nfYauqeQvK55PgFrmBWFVYb6IskLyOosYEmhH3mSVhfBp9AIJnjExdgDmKWoOBHRcPM8Ihfm2BFpZf0euUZQ==
|
||||
"@typescript-eslint/typescript-estree@3.2.0":
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.2.0.tgz#c735f1ca6b4d3cd671f30de8c9bde30843e7ead8"
|
||||
integrity sha512-uh+Y2QO7dxNrdLw7mVnjUqkwO/InxEqwN0wF+Za6eo3coxls9aH9kQ/5rSvW2GcNanebRTmsT5w1/92lAOb1bA==
|
||||
dependencies:
|
||||
debug "^4.1.1"
|
||||
eslint-visitor-keys "^1.1.0"
|
||||
@ -2003,9 +2031,9 @@ acorn@^6.2.1:
|
||||
integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
|
||||
|
||||
acorn@^7.0.0, acorn@^7.1.1, acorn@^7.2.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe"
|
||||
integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==
|
||||
version "7.3.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd"
|
||||
integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
|
||||
|
||||
adm-zip@^0.4.9:
|
||||
version "0.4.14"
|
||||
@ -2256,6 +2284,11 @@ array-union@^1.0.1:
|
||||
dependencies:
|
||||
array-uniq "^1.0.1"
|
||||
|
||||
array-union@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
|
||||
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
|
||||
|
||||
array-uniq@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
|
||||
@ -2865,7 +2898,7 @@ cacache@15.0.0:
|
||||
tar "^6.0.1"
|
||||
unique-filename "^1.1.1"
|
||||
|
||||
cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3:
|
||||
cacache@^12.0.0, cacache@^12.0.2:
|
||||
version "12.0.4"
|
||||
resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
|
||||
integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
|
||||
@ -2910,6 +2943,29 @@ cacache@^13.0.1:
|
||||
ssri "^7.0.0"
|
||||
unique-filename "^1.1.1"
|
||||
|
||||
cacache@^15.0.4:
|
||||
version "15.0.4"
|
||||
resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.4.tgz#b2c23cf4ac4f5ead004fb15a0efb0a20340741f1"
|
||||
integrity sha512-YlnKQqTbD/6iyoJvEY3KJftjrdBYroCbxxYXzhOzsFLWlp6KX4BOlEf4mTx0cMUfVaTS3ENL2QtDWeRYoGLkkw==
|
||||
dependencies:
|
||||
"@npmcli/move-file" "^1.0.1"
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.0.0"
|
||||
glob "^7.1.4"
|
||||
infer-owner "^1.0.4"
|
||||
lru-cache "^5.1.1"
|
||||
minipass "^3.1.1"
|
||||
minipass-collect "^1.0.2"
|
||||
minipass-flush "^1.0.5"
|
||||
minipass-pipeline "^1.2.2"
|
||||
mkdirp "^1.0.3"
|
||||
p-map "^4.0.0"
|
||||
promise-inflight "^1.0.1"
|
||||
rimraf "^3.0.2"
|
||||
ssri "^8.0.0"
|
||||
tar "^6.0.2"
|
||||
unique-filename "^1.1.1"
|
||||
|
||||
cache-base@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
|
||||
@ -2993,9 +3049,9 @@ caniuse-api@^3.0.0:
|
||||
lodash.uniq "^4.5.0"
|
||||
|
||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001043:
|
||||
version "1.0.30001078"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001078.tgz#e1b6e2ae327b6a1ec11f65ec7a0dde1e7093074c"
|
||||
integrity sha512-sF12qXe9VMm32IEf/+NDvmTpwJaaU7N1igpiH2FdI4DyABJSsOqG3ZAcFvszLkoLoo1y6VJLMYivukUAxaMASw==
|
||||
version "1.0.30001081"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz#40615a3c416a047c5a4d45673e5257bf128eb3b5"
|
||||
integrity sha512-iZdh3lu09jsUtLE6Bp8NAbJskco4Y3UDtkR3GTCJGsbMowBU5IWDFF79sV2ws7lSqTzWyKazxam2thasHymENQ==
|
||||
|
||||
canonical-path@1.0.0:
|
||||
version "1.0.0"
|
||||
@ -3043,9 +3099,9 @@ chalk@^3.0.0:
|
||||
supports-color "^7.1.0"
|
||||
|
||||
chalk@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72"
|
||||
integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
|
||||
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
|
||||
dependencies:
|
||||
ansi-styles "^4.1.0"
|
||||
supports-color "^7.1.0"
|
||||
@ -3519,23 +3575,22 @@ copy-descriptor@^0.1.0:
|
||||
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
|
||||
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
|
||||
|
||||
copy-webpack-plugin@5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88"
|
||||
integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==
|
||||
copy-webpack-plugin@6.0.2:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.0.2.tgz#10efc6ad219a61acbf2f5fb50af83da38431bc34"
|
||||
integrity sha512-9Gm8X0c6eXlKnmltMPFCBeGOKjtcRIyTt4VaO3k1TkNgVTe5Ov2lYsYVuyLp0kp8DItO3apewflM+1GYgh6V2Q==
|
||||
dependencies:
|
||||
cacache "^12.0.3"
|
||||
find-cache-dir "^2.1.0"
|
||||
glob-parent "^3.1.0"
|
||||
globby "^7.1.1"
|
||||
is-glob "^4.0.1"
|
||||
loader-utils "^1.2.3"
|
||||
minimatch "^3.0.4"
|
||||
cacache "^15.0.4"
|
||||
fast-glob "^3.2.2"
|
||||
find-cache-dir "^3.3.1"
|
||||
glob-parent "^5.1.1"
|
||||
globby "^11.0.1"
|
||||
loader-utils "^2.0.0"
|
||||
normalize-path "^3.0.0"
|
||||
p-limit "^2.2.1"
|
||||
schema-utils "^1.0.0"
|
||||
serialize-javascript "^2.1.2"
|
||||
webpack-log "^2.0.0"
|
||||
p-limit "^2.3.0"
|
||||
schema-utils "^2.7.0"
|
||||
serialize-javascript "^3.1.0"
|
||||
webpack-sources "^1.4.3"
|
||||
|
||||
core-js-compat@^3.6.2:
|
||||
version "3.6.5"
|
||||
@ -4165,12 +4220,12 @@ dir-glob@2.0.0:
|
||||
arrify "^1.0.1"
|
||||
path-type "^3.0.0"
|
||||
|
||||
dir-glob@^2.0.0:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
|
||||
integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==
|
||||
dir-glob@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
|
||||
integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
|
||||
dependencies:
|
||||
path-type "^3.0.0"
|
||||
path-type "^4.0.0"
|
||||
|
||||
dns-equal@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -4313,9 +4368,9 @@ ee-first@1.1.1:
|
||||
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
|
||||
|
||||
electron-to-chromium@^1.3.413:
|
||||
version "1.3.464"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.464.tgz#fe13feaa08f6f865d3c89d5d72e54c194f463aa5"
|
||||
integrity sha512-Oo+0+CN9d2z6FToQW6Hwvi9ez09Y/usKwr0tsDsyg43a871zVJCi1nR0v03djLbRNcaCKjtrnVf2XJhTxEpPCg==
|
||||
version "1.3.469"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.469.tgz#05a06ec9c915127ed6c9f5b657cd1d7e11a3f944"
|
||||
integrity sha512-O9JM6ZsFhS0uy0S2Y3G8EoNfqio3srdxCuwuJh8tKgQKa6rf7je/xQ3TIoiEaEtpf2/qFFLAGt/xB4MjuUZqRw==
|
||||
|
||||
elliptic@^6.0.0, elliptic@^6.5.2:
|
||||
version "6.5.2"
|
||||
@ -4941,9 +4996,9 @@ fancy-log@^1.3.2, fancy-log@^1.3.3:
|
||||
time-stamp "^1.0.0"
|
||||
|
||||
fast-deep-equal@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
|
||||
integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
||||
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
||||
|
||||
fast-diff@1.1.2:
|
||||
version "1.1.2"
|
||||
@ -4967,6 +5022,18 @@ fast-glob@^2.0.2:
|
||||
merge2 "^1.2.3"
|
||||
micromatch "^3.1.10"
|
||||
|
||||
fast-glob@^3.1.1, fast-glob@^3.2.2:
|
||||
version "3.2.2"
|
||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d"
|
||||
integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==
|
||||
dependencies:
|
||||
"@nodelib/fs.stat" "^2.0.2"
|
||||
"@nodelib/fs.walk" "^1.2.3"
|
||||
glob-parent "^5.1.0"
|
||||
merge2 "^1.3.0"
|
||||
micromatch "^4.0.2"
|
||||
picomatch "^2.2.1"
|
||||
|
||||
fast-json-stable-stringify@2.1.0, fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
||||
@ -4977,6 +5044,13 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
|
||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
|
||||
|
||||
fastq@^1.6.0:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481"
|
||||
integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==
|
||||
dependencies:
|
||||
reusify "^1.0.4"
|
||||
|
||||
faye-websocket@0.11.x, faye-websocket@~0.11.1:
|
||||
version "0.11.3"
|
||||
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e"
|
||||
@ -5060,7 +5134,7 @@ finalhandler@1.1.2, finalhandler@~1.1.2:
|
||||
statuses "~1.5.0"
|
||||
unpipe "~1.0.0"
|
||||
|
||||
find-cache-dir@3.3.1, find-cache-dir@^3.2.0:
|
||||
find-cache-dir@3.3.1, find-cache-dir@^3.2.0, find-cache-dir@^3.3.1:
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
|
||||
integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
|
||||
@ -5376,7 +5450,7 @@ glob-parent@^3.1.0:
|
||||
is-glob "^3.1.0"
|
||||
path-dirname "^1.0.0"
|
||||
|
||||
glob-parent@^5.0.0, glob-parent@~5.1.0:
|
||||
glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
|
||||
integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
|
||||
@ -5431,6 +5505,18 @@ globals@^12.1.0:
|
||||
dependencies:
|
||||
type-fest "^0.8.1"
|
||||
|
||||
globby@^11.0.1:
|
||||
version "11.0.1"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
|
||||
integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==
|
||||
dependencies:
|
||||
array-union "^2.1.0"
|
||||
dir-glob "^3.0.1"
|
||||
fast-glob "^3.1.1"
|
||||
ignore "^5.1.4"
|
||||
merge2 "^1.3.0"
|
||||
slash "^3.0.0"
|
||||
|
||||
globby@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
|
||||
@ -5454,18 +5540,6 @@ globby@^6.1.0:
|
||||
pify "^2.0.0"
|
||||
pinkie-promise "^2.0.0"
|
||||
|
||||
globby@^7.1.1:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
|
||||
integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA=
|
||||
dependencies:
|
||||
array-union "^1.0.1"
|
||||
dir-glob "^2.0.0"
|
||||
glob "^7.1.2"
|
||||
ignore "^3.3.5"
|
||||
pify "^3.0.0"
|
||||
slash "^1.0.0"
|
||||
|
||||
globby@^8.0.1:
|
||||
version "8.0.2"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d"
|
||||
@ -5859,9 +5933,9 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
iconv-lite@^0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz#b2425d3c7b18f7219f2ca663d103bddb91718d64"
|
||||
integrity sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==
|
||||
version "0.5.2"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.2.tgz#af6d628dccfb463b7364d97f715e4b74b8c8c2b8"
|
||||
integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
@ -5899,6 +5973,11 @@ ignore@^4.0.6:
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
|
||||
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
|
||||
|
||||
ignore@^5.1.4:
|
||||
version "5.1.8"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
|
||||
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
|
||||
|
||||
image-size@~0.5.0:
|
||||
version "0.5.5"
|
||||
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
|
||||
@ -7221,10 +7300,10 @@ less-loader@5.0.0:
|
||||
loader-utils "^1.1.0"
|
||||
pify "^4.0.1"
|
||||
|
||||
less@3.11.1:
|
||||
version "3.11.1"
|
||||
resolved "https://registry.yarnpkg.com/less/-/less-3.11.1.tgz#c6bf08e39e02404fe6b307a3dfffafdc55bd36e2"
|
||||
integrity sha512-tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g==
|
||||
less@3.11.3:
|
||||
version "3.11.3"
|
||||
resolved "https://registry.yarnpkg.com/less/-/less-3.11.3.tgz#2d853954fcfe0169a8af869620bcaa16563dcc1c"
|
||||
integrity sha512-VkZiTDdtNEzXA3LgjQiC3D7/ejleBPFVvq+aRI9mIj+Zhmif5TvFPM244bT4rzkvOCvJ9q4zAztok1M7Nygagw==
|
||||
dependencies:
|
||||
clone "^2.1.2"
|
||||
tslib "^1.10.0"
|
||||
@ -7232,8 +7311,8 @@ less@3.11.1:
|
||||
errno "^0.1.1"
|
||||
graceful-fs "^4.1.2"
|
||||
image-size "~0.5.0"
|
||||
make-dir "^2.1.0"
|
||||
mime "^1.4.1"
|
||||
mkdirp "^0.5.0"
|
||||
promise "^7.1.1"
|
||||
request "^2.83.0"
|
||||
source-map "~0.6.0"
|
||||
@ -7296,9 +7375,9 @@ lines-and-columns@^1.1.6:
|
||||
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
|
||||
|
||||
lint-staged@^10.1.7:
|
||||
version "10.2.9"
|
||||
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.9.tgz#6013ecfa80829cd422446b545fd30a96bca3098c"
|
||||
integrity sha512-ziRAuXEqvJLSXg43ezBpHxRW8FOJCXISaXU//BWrxRrp5cBdRkIx7g5IsB3OI45xYGE0S6cOacfekSjDyDKF2g==
|
||||
version "10.2.10"
|
||||
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.10.tgz#f0f78bf8786bbe90e1775a0dc540f7f12b6a79b2"
|
||||
integrity sha512-dgelFaNH6puUGAcU+OVMgbfpKSerNYsPSn6+nlbRDjovL0KigpsVpCu0PFZG6BJxX8gnHJqaZlR9krZamQsb0w==
|
||||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
cli-truncate "2.1.0"
|
||||
@ -7530,7 +7609,7 @@ magic-string@0.25.7, magic-string@^0.25.0:
|
||||
dependencies:
|
||||
sourcemap-codec "^1.4.4"
|
||||
|
||||
make-dir@^2.0.0:
|
||||
make-dir@^2.0.0, make-dir@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
|
||||
integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
|
||||
@ -7670,7 +7749,7 @@ merge-stream@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
||||
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
||||
|
||||
merge2@^1.2.3:
|
||||
merge2@^1.2.3, merge2@^1.3.0:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||
@ -7871,7 +7950,7 @@ mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x:
|
||||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
|
||||
mkdirp@1.x, mkdirp@^1.0.3:
|
||||
mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
@ -8497,7 +8576,7 @@ p-limit@^1.1.0:
|
||||
dependencies:
|
||||
p-try "^1.0.0"
|
||||
|
||||
p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.2.2:
|
||||
p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2, p-limit@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
||||
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
|
||||
@ -9958,6 +10037,11 @@ retry@^0.12.0:
|
||||
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
|
||||
integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
|
||||
|
||||
reusify@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
|
||||
rgb-regex@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
|
||||
@ -9975,7 +10059,7 @@ rimraf@2.6.3:
|
||||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
rimraf@3.0.2, rimraf@^3.0.0:
|
||||
rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
|
||||
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
|
||||
@ -10014,6 +10098,11 @@ run-async@^2.4.0:
|
||||
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
|
||||
integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
|
||||
|
||||
run-parallel@^1.1.9:
|
||||
version "1.1.9"
|
||||
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
|
||||
integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
|
||||
|
||||
run-queue@^1.0.0, run-queue@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
|
||||
@ -10123,7 +10212,7 @@ schema-utils@^1.0.0:
|
||||
ajv-errors "^1.0.0"
|
||||
ajv-keywords "^3.1.0"
|
||||
|
||||
schema-utils@^2.5.0, schema-utils@^2.6.1, schema-utils@^2.6.4, schema-utils@^2.6.5:
|
||||
schema-utils@^2.5.0, schema-utils@^2.6.1, schema-utils@^2.6.4, schema-utils@^2.6.5, schema-utils@^2.7.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
|
||||
integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
|
||||
@ -11070,7 +11159,7 @@ tar@^4.4.10:
|
||||
safe-buffer "^5.1.2"
|
||||
yallist "^3.0.3"
|
||||
|
||||
tar@^6.0.1:
|
||||
tar@^6.0.1, tar@^6.0.2:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39"
|
||||
integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==
|
||||
@ -11345,9 +11434,9 @@ ts-jest@^26.0.0:
|
||||
yargs-parser "18.x"
|
||||
|
||||
ts-mockito@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.yarnpkg.com/ts-mockito/-/ts-mockito-2.5.0.tgz#ad853051f2d116dfcaf6de6b0a1df2c82eda2d1f"
|
||||
integrity sha512-b3qUeMfghRq5k5jw3xNJcnU9RKhqKnRn0k9v9QkN+YpuawrFuMIiGwzFZCpdi5MHy26o7YPnK8gag2awURl3nA==
|
||||
version "2.6.1"
|
||||
resolved "https://registry.yarnpkg.com/ts-mockito/-/ts-mockito-2.6.1.tgz#bc9ee2619033934e6fad1c4455aca5b5ace34e73"
|
||||
integrity sha512-qU9m/oEBQrKq5hwfbJ7MgmVN5Gu6lFnIGWvpxSjrqq6YYEVv+RwVFWySbZMBgazsWqv6ctAyVBpo9TmAxnOEKw==
|
||||
dependencies:
|
||||
lodash "^4.17.5"
|
||||
|
||||
@ -11486,16 +11575,16 @@ typescript@3.6.5:
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.5.tgz#dae20114a7b4ff4bd642db9c8c699f2953e8bbdb"
|
||||
integrity sha512-BEjlc0Z06ORZKbtcxGrIvvwYs5hAnuo6TKdNFL55frVDlB+na3z5bsLhFaIxmT+dPWgBIjMo6aNnTOgHHmHgiQ==
|
||||
|
||||
typescript@<3.9.0:
|
||||
version "3.8.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
|
||||
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
|
||||
|
||||
typescript@^2.4.2:
|
||||
version "2.9.2"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c"
|
||||
integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==
|
||||
|
||||
typescript@~3.8.3:
|
||||
version "3.8.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
|
||||
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
|
||||
|
||||
uglify-js@^3.1.4:
|
||||
version "3.9.4"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.9.4.tgz#867402377e043c1fc7b102253a22b64e5862401b"
|
||||
@ -12100,9 +12189,9 @@ widest-line@^3.1.0:
|
||||
string-width "^4.0.0"
|
||||
|
||||
windows-release@^3.1.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.0.tgz#dce167e9f8be733f21c849ebd4d03fe66b29b9f0"
|
||||
integrity sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ==
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.1.tgz#cb4e80385f8550f709727287bf71035e209c4ace"
|
||||
integrity sha512-Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A==
|
||||
dependencies:
|
||||
execa "^1.0.0"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user