mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-22 18:25:56 +01:00
Fix replication rule sometimes save button can not click
when user create a label filter and delete it in replication rule edit dialog, the save button is not enabled.
This commit is contained in:
parent
0123dfbe45
commit
b0b9e29851
@ -21,11 +21,11 @@ import {
|
||||
EventEmitter,
|
||||
Output
|
||||
} from "@angular/core";
|
||||
import {Filter, ReplicationRule, Endpoint, Label} from "../service/interface";
|
||||
import { Filter, ReplicationRule, Endpoint, Label } from "../service/interface";
|
||||
import { Subject } from "rxjs/Subject";
|
||||
import { Subscription } from "rxjs/Subscription";
|
||||
import { FormArray, FormBuilder, FormGroup, Validators } from "@angular/forms";
|
||||
import {clone, compareValue, isEmptyObject, toPromise} from "../utils";
|
||||
import { clone, compareValue, isEmptyObject, toPromise } from "../utils";
|
||||
import { InlineAlertComponent } from "../inline-alert/inline-alert.component";
|
||||
import { ReplicationService } from "../service/replication.service";
|
||||
import { ErrorHandler } from "../error-handler/error-handler";
|
||||
@ -33,7 +33,7 @@ import { TranslateService } from "@ngx-translate/core";
|
||||
import { EndpointService } from "../service/endpoint.service";
|
||||
import { ProjectService } from "../service/project.service";
|
||||
import { Project } from "../project-policy-config/project";
|
||||
import {LabelState} from "../tag/tag.component";
|
||||
import { LabelState } from "../tag/tag.component";
|
||||
|
||||
const ONE_HOUR_SECONDS = 3600;
|
||||
const ONE_DAY_SECONDS: number = 24 * ONE_HOUR_SECONDS;
|
||||
@ -165,19 +165,19 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
if (this.isRuleNameValid) {
|
||||
this.inNameChecking = true;
|
||||
toPromise<ReplicationRule[]>(
|
||||
this.repService.getReplicationRules(0, ruleName)
|
||||
this.repService.getReplicationRules(0, ruleName)
|
||||
)
|
||||
.then(response => {
|
||||
if (response.some(rule => rule.name === ruleName)) {
|
||||
this.ruleNameTooltip = "TOOLTIP.RULE_USER_EXISTING";
|
||||
this.isRuleNameValid = false;
|
||||
}
|
||||
this.inNameChecking = false;
|
||||
})
|
||||
.catch(() => {
|
||||
this.inNameChecking = false;
|
||||
});
|
||||
}else {
|
||||
.then(response => {
|
||||
if (response.some(rule => rule.name === ruleName)) {
|
||||
this.ruleNameTooltip = "TOOLTIP.RULE_USER_EXISTING";
|
||||
this.isRuleNameValid = false;
|
||||
}
|
||||
this.inNameChecking = false;
|
||||
})
|
||||
.catch(() => {
|
||||
this.inNameChecking = false;
|
||||
});
|
||||
} else {
|
||||
this.ruleNameTooltip = "REPLICATION.NAME_TOOLTIP";
|
||||
}
|
||||
}
|
||||
@ -336,11 +336,11 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
// delete api return label info, replace with label count
|
||||
if (delLabel || count) {
|
||||
let len = filterLabels.length;
|
||||
for (let i = 0 ; i < len; i ++) {
|
||||
for (let i = 0; i < len; i++) {
|
||||
let lab = filterLabels.find(data => data.kind === this.filterSelect[2]);
|
||||
if (lab) {filterLabels.splice(filterLabels.indexOf(lab), 1); }
|
||||
}
|
||||
filterLabels.push({kind: 'label', value: count + ' labels'});
|
||||
if (lab) { filterLabels.splice(filterLabels.indexOf(lab), 1); }
|
||||
}
|
||||
filterLabels.push({ kind: 'label', value: count + ' labels' });
|
||||
this.labelInputVal = count.toString();
|
||||
}
|
||||
}
|
||||
@ -386,7 +386,7 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
let name: string = $event.target.name;
|
||||
let value: string = $event.target["value"];
|
||||
|
||||
const controlArray = <FormArray> this.ruleForm.get('filters');
|
||||
const controlArray = <FormArray>this.ruleForm.get('filters');
|
||||
this.filterListData.forEach((data, index) => {
|
||||
if (index === +id) {
|
||||
data.name = $event.target.name = value;
|
||||
@ -425,7 +425,7 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
this.filterListData.forEach((data, index) => {
|
||||
if (index === indexId) {
|
||||
data.isOpen = true;
|
||||
}else {
|
||||
} else {
|
||||
data.isOpen = false;
|
||||
}
|
||||
});
|
||||
@ -487,7 +487,7 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
|
||||
addNewFilter(): void {
|
||||
const controlArray = <FormArray> this.ruleForm.get('filters');
|
||||
const controlArray = <FormArray>this.ruleForm.get('filters');
|
||||
if (this.filterCount === 0) {
|
||||
this.filterListData.push(
|
||||
this.baseFilterData(
|
||||
@ -537,7 +537,8 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
const control = <FormArray>this.ruleForm.get('filters');
|
||||
if (control.controls[i].get('kind').value === this.filterSelect[2]) {
|
||||
this.labelInputVal = control.controls[i].get('value').value.split(' ')[0];
|
||||
this.filterLabelInfo = [];
|
||||
this.labelInputVal = "";
|
||||
}
|
||||
control.removeAt(i);
|
||||
this.setFilter(control.value);
|
||||
@ -610,7 +611,7 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
|
||||
selectedLabelList(selectedLabels: LabelState[], indexId: number) {
|
||||
// set input value of filter label
|
||||
const controlArray = <FormArray> this.ruleForm.get('filters');
|
||||
const controlArray = <FormArray>this.ruleForm.get('filters');
|
||||
|
||||
this.filterListData.forEach((data, index) => {
|
||||
if (data.name === this.filterSelect[2]) {
|
||||
@ -618,7 +619,7 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
if (labelsLength > 0) {
|
||||
controlArray.controls[index].get('value').setValue(labelsLength + ' labels');
|
||||
this.labelInputVal = labelsLength.toString();
|
||||
}else {
|
||||
} else {
|
||||
controlArray.controls[index].get('value').setValue('');
|
||||
}
|
||||
};
|
||||
@ -688,14 +689,14 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
filters.splice(filters.indexOf(labels), 1);
|
||||
let info: any[] = [];
|
||||
this.filterLabelInfo.forEach(data => {
|
||||
info.push({kind: 'label', value: data.id});
|
||||
info.push({ kind: 'label', value: data.id });
|
||||
});
|
||||
filters.push.apply(filters, info);
|
||||
}
|
||||
}
|
||||
|
||||
public hasFormChange(): boolean {
|
||||
return !isEmptyObject(this.getChanges());
|
||||
return !isEmptyObject(this.hasChanges());
|
||||
}
|
||||
|
||||
onSubmit() {
|
||||
@ -884,55 +885,29 @@ export class CreateEditRuleComponent implements OnInit, OnDestroy {
|
||||
return utcTimes;
|
||||
}
|
||||
|
||||
getChanges(): { [key: string]: any | any[] } {
|
||||
let changes: { [key: string]: any | any[] } = {};
|
||||
let ruleValue: { [key: string]: any | any[] } = clone(this.ruleForm.value);
|
||||
if (ruleValue.filters && ruleValue.filters.length) {
|
||||
ruleValue.filters.forEach((data, index) => {
|
||||
hasChanges(): boolean {
|
||||
let formValue = clone(this.ruleForm.value);
|
||||
let initValue = clone(this.copyUpdateForm);
|
||||
let initValueCopy: any = {};
|
||||
for (let key of Object.keys(formValue)) {
|
||||
initValueCopy[key] = initValue[key];
|
||||
}
|
||||
|
||||
if (formValue.filters && formValue.filters.length > 0) {
|
||||
formValue.filters.forEach((data, index) => {
|
||||
if (data.kind === this.filterSelect[2]) {
|
||||
ruleValue.filters.splice(index, 1);
|
||||
formValue.filters.splice(index, 1);
|
||||
}
|
||||
});
|
||||
// rewrite filter label
|
||||
this.filterLabelInfo.forEach(data => {
|
||||
ruleValue.filters.push({kind: "label", pattern: "", value: data});
|
||||
formValue.filters.push({ kind: "label", pattern: "", value: data });
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
if (!ruleValue || !this.copyUpdateForm) {
|
||||
return changes;
|
||||
if (!compareValue(formValue, initValueCopy)) {
|
||||
return true;
|
||||
}
|
||||
for (let prop of Object.keys(ruleValue)) {
|
||||
let field: any = this.copyUpdateForm[prop];
|
||||
if (!compareValue(field, ruleValue[prop])) {
|
||||
if (
|
||||
ruleValue[prop][0] &&
|
||||
ruleValue[prop][0].project_id &&
|
||||
ruleValue[prop][0].project_id === field[0].project_id
|
||||
) {
|
||||
break;
|
||||
}
|
||||
if (
|
||||
ruleValue[prop][0] &&
|
||||
ruleValue[prop][0].id &&
|
||||
ruleValue[prop][0].id === field[0].id
|
||||
) {
|
||||
break;
|
||||
}
|
||||
changes[prop] = ruleValue[prop];
|
||||
// Number
|
||||
if (typeof field === "number") {
|
||||
changes[prop] = +changes[prop];
|
||||
}
|
||||
|
||||
// Trim string value
|
||||
if (typeof field === "string") {
|
||||
changes[prop] = ("" + changes[prop]).trim();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return changes;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
293
src/ui_ng/package-lock.json
generated
293
src/ui_ng/package-lock.json
generated
@ -3482,40 +3482,6 @@
|
||||
"integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
|
||||
"dev": true
|
||||
},
|
||||
"fileset": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "https://registry.npmjs.org/fileset/-/fileset-0.2.1.tgz",
|
||||
"integrity": "sha1-WI74lzxmI7KnbfRlEFaWuWqsgGc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "5.x",
|
||||
"minimatch": "2.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "5.0.15",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
|
||||
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "2 || 3",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.10",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
|
||||
"integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fill-range": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
|
||||
@ -4879,13 +4845,15 @@
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
|
||||
"integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
|
||||
"integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ajv": "^4.9.1",
|
||||
"har-schema": "^1.0.5"
|
||||
@ -4896,6 +4864,7 @@
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
|
||||
"integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"co": "^4.6.0",
|
||||
"json-stable-stringify": "^1.0.1"
|
||||
@ -6284,13 +6253,13 @@
|
||||
}
|
||||
},
|
||||
"karma-remap-istanbul": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/karma-remap-istanbul/-/karma-remap-istanbul-0.2.2.tgz",
|
||||
"integrity": "sha1-HN9shaVcayDpxxScCoxVUzA42dk=",
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/karma-remap-istanbul/-/karma-remap-istanbul-0.6.0.tgz",
|
||||
"integrity": "sha1-l/O3cAZSVPm0ck8tm+SjouG69vw=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"istanbul": "^0.4.3",
|
||||
"remap-istanbul": "^0.6.4"
|
||||
"remap-istanbul": "^0.9.0"
|
||||
}
|
||||
},
|
||||
"karma-source-map-support": {
|
||||
@ -6388,6 +6357,39 @@
|
||||
"promise": "^7.1.1",
|
||||
"request": "2.81.0",
|
||||
"source-map": "^0.5.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"request": {
|
||||
"version": "2.81.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
|
||||
"integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"aws-sign2": "~0.6.0",
|
||||
"aws4": "^1.2.1",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.5",
|
||||
"extend": "~3.0.0",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.1.1",
|
||||
"har-validator": "~4.2.1",
|
||||
"hawk": "~3.1.3",
|
||||
"http-signature": "~1.1.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.7",
|
||||
"oauth-sign": "~0.8.1",
|
||||
"performance-now": "^0.2.0",
|
||||
"qs": "~6.4.0",
|
||||
"safe-buffer": "^5.0.1",
|
||||
"stringstream": "~0.0.4",
|
||||
"tough-cookie": "~2.3.0",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"less-loader": {
|
||||
@ -8012,7 +8014,8 @@
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
|
||||
"integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"pify": {
|
||||
"version": "3.0.0",
|
||||
@ -8444,7 +8447,8 @@
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
|
||||
"integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"querystring": {
|
||||
"version": "0.2.0",
|
||||
@ -8826,79 +8830,19 @@
|
||||
"dev": true
|
||||
},
|
||||
"remap-istanbul": {
|
||||
"version": "0.6.4",
|
||||
"resolved": "https://registry.npmjs.org/remap-istanbul/-/remap-istanbul-0.6.4.tgz",
|
||||
"integrity": "sha1-rFUe/xqmQVBLTzGNAwPdph47tpU=",
|
||||
"version": "0.9.6",
|
||||
"resolved": "https://registry.npmjs.org/remap-istanbul/-/remap-istanbul-0.9.6.tgz",
|
||||
"integrity": "sha512-l0WDBsVjaTzP8m3glERJO6bjlAFUahcgfcgvcX+owZw7dKeDLT3CVRpS7UO4L9LfGcMiNsqk223HopwVxlh8Hg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"amdefine": "1.0.0",
|
||||
"amdefine": "^1.0.0",
|
||||
"gulp-util": "3.0.7",
|
||||
"istanbul": "0.4.3",
|
||||
"source-map": ">=0.5.6",
|
||||
"istanbul": "0.4.5",
|
||||
"minimatch": "^3.0.3",
|
||||
"source-map": "^0.6.1",
|
||||
"through2": "2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"abbrev": {
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
|
||||
"integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
|
||||
"dev": true
|
||||
},
|
||||
"amdefine": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz",
|
||||
"integrity": "sha1-/RdHRwDLXMnCtwnwvp0jzjwZjDM=",
|
||||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
||||
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
|
||||
"dev": true
|
||||
},
|
||||
"esprima": {
|
||||
"version": "2.7.3",
|
||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
|
||||
"integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
|
||||
"dev": true
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
|
||||
"integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
|
||||
"dev": true
|
||||
},
|
||||
"istanbul": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.3.tgz",
|
||||
"integrity": "sha1-W3FO4K5JOsXvIEuZ84crzu9z1To=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"abbrev": "1.0.x",
|
||||
"async": "1.x",
|
||||
"escodegen": "1.8.x",
|
||||
"esprima": "2.7.x",
|
||||
"fileset": "0.2.x",
|
||||
"handlebars": "^4.0.1",
|
||||
"js-yaml": "3.x",
|
||||
"mkdirp": "0.5.x",
|
||||
"nopt": "3.x",
|
||||
"once": "1.x",
|
||||
"resolve": "1.1.x",
|
||||
"supports-color": "^3.1.0",
|
||||
"which": "^1.1.1",
|
||||
"wordwrap": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"nopt": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
||||
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"abbrev": "1"
|
||||
}
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
|
||||
@ -8919,10 +8863,10 @@
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
|
||||
"integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"string_decoder": {
|
||||
@ -8931,15 +8875,6 @@
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "3.2.3",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
|
||||
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"through2": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz",
|
||||
@ -8949,12 +8884,6 @@
|
||||
"readable-stream": "~2.0.0",
|
||||
"xtend": "~4.0.0"
|
||||
}
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -9013,33 +8942,107 @@
|
||||
"dev": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.81.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
|
||||
"integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
|
||||
"version": "2.87.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
|
||||
"integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"aws-sign2": "~0.6.0",
|
||||
"aws4": "^1.2.1",
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.6.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.5",
|
||||
"extend": "~3.0.0",
|
||||
"extend": "~3.0.1",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.1.1",
|
||||
"har-validator": "~4.2.1",
|
||||
"hawk": "~3.1.3",
|
||||
"http-signature": "~1.1.0",
|
||||
"form-data": "~2.3.1",
|
||||
"har-validator": "~5.0.3",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.7",
|
||||
"oauth-sign": "~0.8.1",
|
||||
"performance-now": "^0.2.0",
|
||||
"qs": "~6.4.0",
|
||||
"safe-buffer": "^5.0.1",
|
||||
"stringstream": "~0.0.4",
|
||||
"tough-cookie": "~2.3.0",
|
||||
"mime-types": "~2.1.17",
|
||||
"oauth-sign": "~0.8.2",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.1",
|
||||
"safe-buffer": "^5.1.1",
|
||||
"tough-cookie": "~2.3.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.0.0"
|
||||
"uuid": "^3.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "5.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
||||
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"co": "^4.6.0",
|
||||
"fast-deep-equal": "^1.0.0",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.3.0"
|
||||
}
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"dev": true
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
||||
"dev": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
||||
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
||||
"dev": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
|
||||
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "^5.1.0",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"require-directory": {
|
||||
|
@ -58,7 +58,7 @@
|
||||
"karma-cli": "^1.0.1",
|
||||
"karma-jasmine": "~1.1.0",
|
||||
"karma-mocha-reporter": "^2.2.4",
|
||||
"karma-remap-istanbul": "^0.2.1",
|
||||
"karma-remap-istanbul": "^0.6.0",
|
||||
"ng-packagr": "^1.7.0",
|
||||
"protractor": "4.0.9",
|
||||
"rollup": "^0.41.6",
|
||||
|
Loading…
Reference in New Issue
Block a user