Skip to content
This repository has been archived by the owner on Mar 25, 2023. It is now read-only.

Commit

Permalink
after testing
Browse files Browse the repository at this point in the history
  • Loading branch information
Darya Baklanova committed Feb 7, 2018
1 parent c06ff5b commit 7063786
Show file tree
Hide file tree
Showing 7 changed files with 85 additions and 62 deletions.
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"@ngx-translate/http-loader": "^2.0.0",
"chart.js": "2.7.0",
"core-js": "^2.4.1",
"ip-address": "^5.8.9",
"jasmine": "^2.8.0",
"jasmine-marbles": "^0.2.0",
"lodash": "^4.17.4",
Expand All @@ -48,6 +49,7 @@
"reflect-metadata": "^0.1.10",
"rxjs": "^5.5.2",
"showdown": "^1.8.4",
"sprintf-js": "^1.1.1",
"uuid": "^3.1.0",
"web-animations-js": "2.3.1",
"zone.js": "0.8.12"
Expand Down
2 changes: 1 addition & 1 deletion src/app/security-group/sg-rules/sg-rules.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { Observable } from 'rxjs/Observable';
import { MockNotificationService } from '../../../testutils/mocks/mock-notification.service';
import { MockTranslatePipe } from '../../../testutils/mocks/mock-translate.pipe.spec';
import { MockTranslateService } from '../../../testutils/mocks/mock-translate.service.spec';
import { ICMPtypes, ICMPv6Types } from '../../shared/icmp/icmp-types';
import { ICMPv6Types } from '../../shared/icmp/icmp-types';
import { NotificationService } from '../../shared/services/notification.service';
import { SecurityGroupService } from '../services/security-group.service';
import { IPVersion, NetworkRuleType, SecurityGroup } from '../sg.model';
Expand Down
4 changes: 4 additions & 0 deletions src/app/security-group/sg-rules/sg-rules.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,10 @@ export class SgRulesComponent implements OnChanges {
}

public isCidrValid(input: string) {
const test1 = '0.0.0.0/0';
const test2 = '2001:DB8::/128';
console.log(Utils.cidrType(test1), Utils.cidrType(test2));

return input && Utils.cidrIsValid(input);
}

Expand Down
29 changes: 8 additions & 21 deletions src/app/shared/services/utils/utils.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Params, RouterState, RouterStateSnapshot } from '@angular/router';
import { RouterStateSerializer } from '@ngrx/router-store';
import { IPVersion } from '../../../security-group/sg.model';
import * as uuid from 'uuid';
import * as ipaddr from 'ipaddr.js';
import * as ipaddr from 'ip-address';

export class Utils {
public static getUniqueId(): string {
Expand Down Expand Up @@ -89,28 +89,15 @@ export class Utils {
};

public static cidrIsValid(range: string): boolean {
try {
const cidr = ipaddr.parseCIDR(range);
return true;
} catch (err) {
return false;
}
const ipAddressType = range.match(':') ? ipaddr.Address6 : ipaddr.Address4;
const cidr = new ipAddressType(range);
return cidr.isValid();
}

public static cidrType(cidr: string): IPVersion {
let type: IPVersion;
if (this.cidrIsValid(cidr)) {
try {
ipaddr.IPv4(cidr);
type = ipaddr.IPv4(cidr).kind();
} catch (err) {
type = IPVersion.ipv6;
}
} else {
type = IPVersion.ipv4;
}

return type;
public static cidrType(range: string): IPVersion {
const ipAddressType = range.match(':') ? ipaddr.Address6 : ipaddr.Address4;
const cidr = new ipAddressType(range);
return cidr.isValid() && (cidr.v4 ? IPVersion.ipv4 : IPVersion.ipv6);
}
}

Expand Down
40 changes: 20 additions & 20 deletions src/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -819,26 +819,26 @@
"SELECT_IP_VERSION": "Select IP version",
"SELECT_TYPE": "Select types",
"SELECT_PROTOCOL": "Select protocols",
"EGRESS_RULE": "{{ type }} <b>{{ protocol }}</b> traffic to <b>{{ ipVersion }}</b> <b>{{ cidr }} to port {{ startPort }}</b>",
"EGRESS_RULE_PORT_RANGE": "{{ type }} <b>{{ protocol }}</b> traffic to <b>{{ ipVersion }}</b> <b>{{ cidr }}</b> to <b>port range {{ startPort }}-{{ endPort }}</b>",
"EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic to <b>{{ ipVersion }}</b> <b>{{ cidr }}</b> of ICMP type <b>{{ icmpTypeText }} [{{ icmpType }}]</b> and ICMP code <b>{{ icmpCodeText }} [{{ icmpCode }}]</b>",
"NO_TEXT_EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic to <b>{{ ipVersion }}</b> <b>{{ cidr }}</b> of ICMP type <b>{{ icmpType }}</b> and ICMP code <b>{{ icmpCode }}</b>",
"NO_CODE_EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic to <b>{{ ipVersion }}</b> <b>{{ cidr }}</b> of ICMP type <b>{{ icmpTypeText }} [{{ icmpType }}]</b> and ICMP code <b>{{ icmpCode }}</b>",
"EGRESS_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic to <b>{{ ipVersion }}</b> {{ cidr }} to port {{ startPort }}",
"EGRESS_RULE_PORT_RANGE_NOMARKUP": "{{ type }} {{ protocol }} traffic to <b>{{ ipVersion }}</b> {{ cidr }} to port range {{ startPort }}-{{ endPort }}",
"EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic to <b>{{ ipVersion }}</b> {{ cidr }} of ICMP type {{ icmpTypeText }} [{{ icmpType }}] and ICMP code {{ icmpCodeText }} [{{ icmpCode }}]",
"NO_TEXT_EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic to <b>{{ ipVersion }}</b> {{ cidr }} of ICMP type {{ icmpType }} and ICMP code {{ icmpCode }}",
"NO_CODE_EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic to <b>{{ ipVersion }}</b> {{ cidr }} of ICMP type {{ icmpTypeText }} [{{ icmpType }}] and ICMP code {{ icmpCode }}",
"INGRESS_RULE": "{{ type }} <b>{{ protocol }}</b>traffic from <b>{{ ipVersion }}</b> <b>{{ cidr }} to VM port {{ startPort }}</b>",
"INGRESS_RULE_PORT_RANGE": "{{ type }} <b>{{ protocol }}</b> traffic from <b>{{ ipVersion }}</b> <b>{{ cidr }}</b> to VM <b>port range {{ startPort }}-{{ endPort }}</b>",
"INGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic from <b><b>{{ ipVersion }}</b></b> <b>{{ cidr }}</b> of ICMP type <b>{{ icmpTypeText }} [{{ icmpType }}]</b> and ICMP code <b>{{ icmpCodeText }} [{{ icmpCode }}]</b>",
"NO_TEXT_INGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic from <b>{{ ipVersion }}</b> <b>{{ cidr }}</b> of ICMP type <b>{{ icmpType }}</b> and ICMP code <b>{{ icmpCode }}</b>",
"NO_CODE_INGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic from <b>{{ ipVersion }}</b> <b>{{ cidr }}</b> of ICMP type <b>{{ icmpTypeText }} [{{ icmpType }}]</b> and ICMP code <b>{{ icmpCode }}</b>",
"INGRESS_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic from <b>{{ ipVersion }}</b> {{ cidr }} to port {{ startPort }}",
"INGRESS_RULE_PORT_RANGE_NOMARKUP": "{{ type }} {{ protocol }} traffic from <b>{{ ipVersion }}</b> {{ cidr }} to VM port range {{ startPort }}-{{ endPort }}",
"INGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic from <b>{{ ipVersion }}</b> {{ cidr }} of ICMP type {{ icmpTypeText }} [{{ icmpType }}] and ICMP code {{ icmpCodeText }} [{{ icmpCode }}]",
"NO_TEXT_INGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic from <b>{{ ipVersion }}</b> {{ cidr }} of ICMP type {{ icmpType }} and ICMP code {{ icmpCode }}",
"NO_CODE_INGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic from <b>{{ ipVersion }}</b> {{ cidr }} of ICMP type {{ icmpTypeText }} [{{ icmpType }}] and ICMP code {{ icmpCode }}",
"EGRESS_RULE": "{{ type }} <b>{{ protocol }}</b> traffic to {{ ipVersion }} <b>{{ cidr }} to port {{ startPort }}</b>",
"EGRESS_RULE_PORT_RANGE": "{{ type }} <b>{{ protocol }}</b> traffic to {{ ipVersion }} <b>{{ cidr }}</b> to <b>port range {{ startPort }}-{{ endPort }}</b>",
"EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic to {{ ipVersion }} <b>{{ cidr }}</b> of ICMP type <b>{{ icmpTypeText }} [{{ icmpType }}]</b> and ICMP code <b>{{ icmpCodeText }} [{{ icmpCode }}]</b>",
"NO_TEXT_EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic to {{ ipVersion }} <b>{{ cidr }}</b> of ICMP type <b>{{ icmpType }}</b> and ICMP code <b>{{ icmpCode }}</b>",
"NO_CODE_EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic to {{ ipVersion }} <b>{{ cidr }}</b> of ICMP type <b>{{ icmpTypeText }} [{{ icmpType }}]</b> and ICMP code <b>{{ icmpCode }}</b>",
"EGRESS_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic to {{ ipVersion }} {{ cidr }} to port {{ startPort }}",
"EGRESS_RULE_PORT_RANGE_NOMARKUP": "{{ type }} {{ protocol }} traffic to {{ ipVersion }} {{ cidr }} to port range {{ startPort }}-{{ endPort }}",
"EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic to {{ ipVersion }} {{ cidr }} of ICMP type {{ icmpTypeText }} [{{ icmpType }}] and ICMP code {{ icmpCodeText }} [{{ icmpCode }}]",
"NO_TEXT_EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic to {{ ipVersion }} {{ cidr }} of ICMP type {{ icmpType }} and ICMP code {{ icmpCode }}",
"NO_CODE_EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic to {{ ipVersion }} {{ cidr }} of ICMP type {{ icmpTypeText }} [{{ icmpType }}] and ICMP code {{ icmpCode }}",
"INGRESS_RULE": "{{ type }} <b>{{ protocol }}</b> traffic from {{ ipVersion }} <b>{{ cidr }} to VM port {{ startPort }}</b>",
"INGRESS_RULE_PORT_RANGE": "{{ type }} <b>{{ protocol }}</b> traffic from {{ ipVersion }} <b>{{ cidr }}</b> to VM <b>port range {{ startPort }}-{{ endPort }}</b>",
"INGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic from <b>{{ ipVersion }}</b> <b>{{ cidr }}</b> of ICMP type <b>{{ icmpTypeText }} [{{ icmpType }}]</b> and ICMP code <b>{{ icmpCodeText }} [{{ icmpCode }}]</b>",
"NO_TEXT_INGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic from {{ ipVersion }} <b>{{ cidr }}</b> of ICMP type <b>{{ icmpType }}</b> and ICMP code <b>{{ icmpCode }}</b>",
"NO_CODE_INGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> traffic from {{ ipVersion }} <b>{{ cidr }}</b> of ICMP type <b>{{ icmpTypeText }} [{{ icmpType }}]</b> and ICMP code <b>{{ icmpCode }}</b>",
"INGRESS_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic from {{ ipVersion }} {{ cidr }} to port {{ startPort }}",
"INGRESS_RULE_PORT_RANGE_NOMARKUP": "{{ type }} {{ protocol }} traffic from {{ ipVersion }} {{ cidr }} to VM port range {{ startPort }}-{{ endPort }}",
"INGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic from {{ ipVersion }} {{ cidr }} of ICMP type {{ icmpTypeText }} [{{ icmpType }}] and ICMP code {{ icmpCodeText }} [{{ icmpCode }}]",
"NO_TEXT_INGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic from {{ ipVersion }} {{ cidr }} of ICMP type {{ icmpType }} and ICMP code {{ icmpCode }}",
"NO_CODE_INGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} traffic from {{ ipVersion }} {{ cidr }} of ICMP type {{ icmpTypeText }} [{{ icmpType }}] and ICMP code {{ icmpCode }}",
"NO_FIREWALL_RULES": "No firewall rules"
},
"ICMP_TYPES": {
Expand Down
20 changes: 10 additions & 10 deletions src/i18n/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -815,16 +815,16 @@
"SELECT_IP_VERSION": "Выберите версию IP",
"SELECT_TYPE": "Выберите типы",
"SELECT_PROTOCOL": "Выберите протоколы",
"EGRESS_RULE": "{{ type }} <b>{{ protocol }}</b> трафик до адреса <b>{{ cidr }}</b>, порт: <b>{{ startPort }}</b>",
"EGRESS_RULE_PORT_RANGE": "{{ type }} <b>{{ protocol }}</b> трафик до адреса <b>{{ cidr }}</b>, интервал портов: <b>{{ startPort }}-{{ endPort }}</b>",
"EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> трафик до адреса <b>{{ cidr }}</b>, ICMP тип: <b>{{ icmpTypeText }} [{{ icmpType }}]</b>, ICMP код: <b>{{ icmpCodeText }} [{{ icmpCode }}]</b>",
"NO_TEXT_EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> трафик до адреса <b>{{ cidr }}</b>, ICMP тип: <b>{{ icmpType }}</b>, ICMP код: <b>{{ icmpCode }}</b>",
"NO_CODE_EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> трафик до адреса <b>{{ cidr }}</b>, ICMP тип: <b>{{ icmpTypeText }} [{{ icmpType }}]</b>, ICMP код: <b>{{ icmpCode }}</b>",
"EGRESS_RULE_NOMARKUP": "{{ type }} {{ protocol }} трафик до адреса {{ cidr }}, порт: {{ startPort }}",
"EGRESS_RULE_PORT_RANGE_NOMARKUP": "{{ type }} {{ protocol }} трафик до адреса {{ cidr }}, интервал портов: {{ startPort }}-{{ endPort }}",
"EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} трафик до адреса {{ cidr }}, ICMP тип: {{ icmpTypeText }} [{{ icmpType }}], ICMP код: {{ icmpCodeText }} [{{ icmpCode }}]",
"NO_TEXT_EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} трафик до адреса {{ cidr }}, ICMP тип: {{ icmpType }}, ICMP код: {{ icmpCode }}",
"NO_CODE_EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} трафик до адреса {{ cidr }}, ICMP тип: {{ icmpTypeText }} [{{ icmpType }}], ICMP код: {{ icmpCode }}",
"EGRESS_RULE": "{{ type }} <b>{{ protocol }}</b> трафик до {{ ipVersion }} адреса <b>{{ cidr }}</b>, порт: <b>{{ startPort }}</b>",
"EGRESS_RULE_PORT_RANGE": "{{ type }} <b>{{ protocol }}</b> трафик до {{ ipVersion }} адреса<b> {{ cidr }}</b>, интервал портов: <b>{{ startPort }}-{{ endPort }}</b>",
"EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> трафик до {{ ipVersion }} адреса<b> {{ cidr }}</b>, ICMP тип: <b>{{ icmpTypeText }} [{{ icmpType }}]</b>, ICMP код: <b>{{ icmpCodeText }} [{{ icmpCode }}]</b>",
"NO_TEXT_EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> трафик до {{ ipVersion }} адреса <b>{{ cidr }}</b>, ICMP тип: <b>{{ icmpType }}</b>, ICMP код: <b>{{ icmpCode }}</b>",
"NO_CODE_EGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> трафик до {{ ipVersion }} адреса <b>{{ cidr }}</b>, ICMP тип: <b>{{ icmpTypeText }} [{{ icmpType }}]</b>, ICMP код: <b>{{ icmpCode }}</b>",
"EGRESS_RULE_NOMARKUP": "{{ type }} {{ protocol }} трафик до {{ ipVersion }} адреса {{ cidr }}, порт: {{ startPort }}",
"EGRESS_RULE_PORT_RANGE_NOMARKUP": "{{ type }} {{ protocol }} трафик до {{ ipVersion }} адреса {{ cidr }}, интервал портов: {{ startPort }}-{{ endPort }}",
"EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} трафик до {{ ipVersion }} адреса {{ cidr }}, ICMP тип: {{ icmpTypeText }} [{{ icmpType }}], ICMP код: {{ icmpCodeText }} [{{ icmpCode }}]",
"NO_TEXT_EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} трафик до {{ ipVersion }} адреса {{ cidr }}, ICMP тип: {{ icmpType }}, ICMP код: {{ icmpCode }}",
"NO_CODE_EGRESS_ICMP_RULE_NOMARKUP": "{{ type }} {{ protocol }} трафик до {{ ipVersion }} адреса {{ cidr }}, ICMP тип: {{ icmpTypeText }} [{{ icmpType }}], ICMP код: {{ icmpCode }}",
"INGRESS_RULE": "{{ type }} <b>{{ protocol }}</b> трафик с {{ ipVersion }} адреса <b>{{ cidr }}</b>, порт: <b>{{ startPort }}</b>",
"INGRESS_RULE_PORT_RANGE": "{{ type }} <b>{{ protocol }}</b> трафик с {{ ipVersion }} адреса <b>{{ cidr }}</b>, интервал портов: <b>{{ startPort }}-{{ endPort }}</b>",
"INGRESS_ICMP_RULE": "{{ type }} <b>{{ protocol }}</b> трафик с {{ ipVersion }} адреса <b>{{ cidr }}</b>, ICMP тип: <b>{{ icmpTypeText }} [{{ icmpType }}]</b>, ICMP код: <b>{{ icmpCodeText }} [{{ icmpCode }}]</b>",
Expand Down
50 changes: 40 additions & 10 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -996,12 +996,6 @@ chownr@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"

cidr-regex@^2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.7.tgz#ef794dfffb6659c306d3aee3f33ca3b409505f06"
dependencies:
ip-regex "^2.1.0"

cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
Expand Down Expand Up @@ -2920,9 +2914,17 @@ invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"

ip-regex@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
ip-address@^5.8.9:
version "5.8.9"
resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-5.8.9.tgz#6379277c23fc5adb20511e4d23ec2c1bde105dfd"
dependencies:
jsbn "1.1.0"
lodash.find "^4.6.0"
lodash.max "^4.0.1"
lodash.merge "^4.6.0"
lodash.padstart "^4.6.1"
lodash.repeat "^4.1.0"
sprintf-js "1.1.0"

ip@^1.1.0, ip@^1.1.5:
version "1.1.5"
Expand Down Expand Up @@ -3280,6 +3282,10 @@ js-yaml@~3.7.0:
argparse "^1.0.7"
esprima "^2.6.0"

jsbn@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040"

jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
Expand Down Expand Up @@ -3554,14 +3560,34 @@ lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"

lodash.find@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"

lodash.max@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/lodash.max/-/lodash.max-4.0.1.tgz#8735566c618b35a9f760520b487ae79658af136a"

lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"

lodash.merge@^4.6.0:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"

lodash.mergewith@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"

lodash.padstart@^4.6.1:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b"

lodash.repeat@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44"

lodash.tail@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
Expand Down Expand Up @@ -5469,7 +5495,11 @@ split@^1.0.0:
dependencies:
through "2"

sprintf-js@^1.0.3:
sprintf-js@1.1.0, sprintf-js@^1.0.3:
version "1.1.0"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.0.tgz#cffcaf702daf65ea39bb4e0fa2b299cec1a1be46"

sprintf-js@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c"

Expand Down

0 comments on commit 7063786

Please sign in to comment.