diff --git a/spikes/leak/.babelrc b/spikes/leak/.babelrc new file mode 100644 index 00000000..82cc857a --- /dev/null +++ b/spikes/leak/.babelrc @@ -0,0 +1,15 @@ +{ + "presets": [ + "react", + "es2015" + ], + "plugins": [ + ["transform-object-rest-spread", { + "useBuiltIns": true + }], + "add-module-exports", + "transform-es2015-modules-commonjs", + "react-hot-loader/babel" + ], + "sourceMaps": "both" +} diff --git a/spikes/leak/.eslintignore b/spikes/leak/.eslintignore new file mode 100644 index 00000000..683e721c --- /dev/null +++ b/spikes/leak/.eslintignore @@ -0,0 +1,3 @@ +/node_modules +coverage +.nyc_output diff --git a/spikes/leak/.eslintrc b/spikes/leak/.eslintrc new file mode 100644 index 00000000..19bd88dc --- /dev/null +++ b/spikes/leak/.eslintrc @@ -0,0 +1,29 @@ +{ + "extends": "semistandard", + "parser": "babel-eslint", + "parserOptions": { + "ecmaVersion": 7, + "ecmaFeatures": { + "jsx": true + }, + "sourceType": "module" + }, + "plugins": [ + "babel", + "react" + ], + "rules": { + "generator-star-spacing": 0, + "babel/generator-star-spacing": 1, + "space-before-function-paren": [2, "never"], + "react/jsx-uses-react": 2, + "react/jsx-uses-vars": 2, + "react/react-in-jsx-scope": 2, + "object-curly-newline": ["error", { + "minProperties": 1 + }], + "sort-vars": ["error", { + "ignoreCase": true + }] + } +} \ No newline at end of file diff --git a/spikes/leak/artillery-fast.yml b/spikes/leak/artillery/artillery-another-fast.yml similarity index 100% rename from spikes/leak/artillery-fast.yml rename to spikes/leak/artillery/artillery-another-fast.yml diff --git a/spikes/leak/artillery-cpu.yml b/spikes/leak/artillery/artillery-cpu.yml similarity index 100% rename from spikes/leak/artillery-cpu.yml rename to spikes/leak/artillery/artillery-cpu.yml diff --git a/spikes/leak/artillery/artillery-fast.yml b/spikes/leak/artillery/artillery-fast.yml new file mode 100644 index 00000000..2aff8937 --- /dev/null +++ b/spikes/leak/artillery/artillery-fast.yml @@ -0,0 +1,9 @@ +config: + target: "http://fast-node:8000" + phases: + - duration: 13200 + arrivalRate: 1 +scenarios: + - flow: + - get: + url: "/mem-fast" diff --git a/spikes/leak/artillery-plain.yml b/spikes/leak/artillery/artillery-plain.yml similarity index 100% rename from spikes/leak/artillery-plain.yml rename to spikes/leak/artillery/artillery-plain.yml diff --git a/spikes/leak/artillery-slow.yml b/spikes/leak/artillery/artillery-slow.yml similarity index 100% rename from spikes/leak/artillery-slow.yml rename to spikes/leak/artillery/artillery-slow.yml diff --git a/spikes/leak/docker-compose.yml b/spikes/leak/docker-compose.yml index 4a04bdfc..69b9709d 100644 --- a/spikes/leak/docker-compose.yml +++ b/spikes/leak/docker-compose.yml @@ -13,6 +13,19 @@ services: - MODE=fast depends_on: - fast-node + another-fast-node: + build: . + environment: + - TYPE=node + ports: + - "8004:8000" + another-fast-artillery: + build: . + environment: + - TYPE=artillery + - MODE=another-fast + depends_on: + - another-fast-node slow-node: build: . environment: @@ -49,5 +62,6 @@ services: - TYPE=telemetry depends_on: - fast-node + - another-fast-node - slow-node - plain-node diff --git a/spikes/leak/etc/containerpilot.json b/spikes/leak/etc/containerpilot.json deleted file mode 100644 index 9e26dfee..00000000 --- a/spikes/leak/etc/containerpilot.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/spikes/leak/metrics.json b/spikes/leak/metrics.json new file mode 100644 index 00000000..135c1a53 --- /dev/null +++ b/spikes/leak/metrics.json @@ -0,0 +1,3012 @@ +{ + "leak-fast": { + "node_memory_heap_used_bytes": { + "another-fast-node:8000": [ + [ + 1479914179, + "21731384" + ], + [ + 1479914180, + "21731384" + ], + [ + 1479914181, + "21731384" + ], + [ + 1479914182, + "21731384" + ], + [ + 1479914183, + "21731384" + ], + [ + 1479914184, + "23129048" + ], + [ + 1479914185, + "23129048" + ], + [ + 1479914186, + "23129048" + ], + [ + 1479914187, + "23129048" + ], + [ + 1479914188, + "23129048" + ], + [ + 1479914189, + "24494096" + ], + [ + 1479914190, + "24494096" + ], + [ + 1479914191, + "24494096" + ], + [ + 1479914192, + "24494096" + ], + [ + 1479914193, + "24494096" + ], + [ + 1479914194, + "25938144" + ], + [ + 1479914195, + "25938144" + ], + [ + 1479914196, + "25938144" + ], + [ + 1479914197, + "25938144" + ], + [ + 1479914198, + "25938144" + ], + [ + 1479914199, + "27200488" + ], + [ + 1479914200, + "27200488" + ], + [ + 1479914201, + "27200488" + ], + [ + 1479914202, + "27200488" + ], + [ + 1479914203, + "27200488" + ], + [ + 1479914204, + "28430224" + ], + [ + 1479914205, + "28430224" + ], + [ + 1479914206, + "28430224" + ], + [ + 1479914207, + "28430224" + ], + [ + 1479914208, + "28430224" + ], + [ + 1479914209, + "23316232" + ], + [ + 1479914210, + "23316232" + ], + [ + 1479914211, + "23316232" + ], + [ + 1479914212, + "23316232" + ], + [ + 1479914213, + "23316232" + ], + [ + 1479914214, + "23278384" + ], + [ + 1479914215, + "23278384" + ], + [ + 1479914216, + "23278384" + ], + [ + 1479914217, + "23278384" + ], + [ + 1479914218, + "23278384" + ], + [ + 1479914219, + "23770456" + ], + [ + 1479914220, + "23770456" + ], + [ + 1479914221, + "23770456" + ], + [ + 1479914222, + "23770456" + ], + [ + 1479914223, + "23770456" + ], + [ + 1479914224, + "24169576" + ], + [ + 1479914225, + "24169576" + ], + [ + 1479914226, + "24169576" + ], + [ + 1479914227, + "24169576" + ], + [ + 1479914228, + "24169576" + ], + [ + 1479914229, + "23686096" + ], + [ + 1479914230, + "23686096" + ], + [ + 1479914231, + "23686096" + ], + [ + 1479914232, + "23686096" + ], + [ + 1479914233, + "23686096" + ], + [ + 1479914234, + "23974320" + ], + [ + 1479914235, + "23974320" + ], + [ + 1479914236, + "23974320" + ], + [ + 1479914237, + "23974320" + ], + [ + 1479914238, + "23974320" + ], + [ + 1479914239, + "24346072" + ], + [ + 1479914240, + "24346072" + ], + [ + 1479914241, + "24346072" + ], + [ + 1479914242, + "24346072" + ], + [ + 1479914243, + "24346072" + ], + [ + 1479914244, + "24693448" + ], + [ + 1479914245, + "24693448" + ], + [ + 1479914246, + "24693448" + ], + [ + 1479914247, + "24693448" + ], + [ + 1479914248, + "24693448" + ], + [ + 1479914249, + "24294136" + ], + [ + 1479914250, + "24294136" + ], + [ + 1479914251, + "24294136" + ], + [ + 1479914252, + "24294136" + ], + [ + 1479914253, + "24294136" + ], + [ + 1479914254, + "22697976" + ], + [ + 1479914255, + "22697976" + ], + [ + 1479914256, + "22697976" + ], + [ + 1479914257, + "22697976" + ], + [ + 1479914258, + "22697976" + ], + [ + 1479914259, + "22329200" + ], + [ + 1479914260, + "22329200" + ], + [ + 1479914261, + "22329200" + ], + [ + 1479914262, + "22329200" + ], + [ + 1479914263, + "22329200" + ], + [ + 1479914264, + "19140984" + ], + [ + 1479914265, + "19140984" + ], + [ + 1479914266, + "19140984" + ], + [ + 1479914267, + "19140984" + ], + [ + 1479914268, + "19140984" + ], + [ + 1479914269, + "18725160" + ], + [ + 1479914270, + "18725160" + ] + ], + "fast-node:8000": [ + [ + 1479914178, + "27983464" + ], + [ + 1479914179, + "27983464" + ], + [ + 1479914180, + "27983464" + ], + [ + 1479914181, + "27983464" + ], + [ + 1479914182, + "27983464" + ], + [ + 1479914183, + "22900328" + ], + [ + 1479914184, + "22900328" + ], + [ + 1479914185, + "22900328" + ], + [ + 1479914186, + "22900328" + ], + [ + 1479914187, + "22900328" + ], + [ + 1479914188, + "29941152" + ], + [ + 1479914189, + "29941152" + ], + [ + 1479914190, + "29941152" + ], + [ + 1479914191, + "29941152" + ], + [ + 1479914192, + "29941152" + ], + [ + 1479914193, + "29808848" + ], + [ + 1479914194, + "29808848" + ], + [ + 1479914195, + "29808848" + ], + [ + 1479914196, + "29808848" + ], + [ + 1479914197, + "29808848" + ], + [ + 1479914198, + "30235072" + ], + [ + 1479914199, + "30235072" + ], + [ + 1479914200, + "30235072" + ], + [ + 1479914201, + "30235072" + ], + [ + 1479914202, + "30235072" + ], + [ + 1479914203, + "36984776" + ], + [ + 1479914204, + "36984776" + ], + [ + 1479914205, + "36984776" + ], + [ + 1479914206, + "36984776" + ], + [ + 1479914207, + "36984776" + ], + [ + 1479914208, + "29274384" + ], + [ + 1479914209, + "29274384" + ], + [ + 1479914210, + "29274384" + ], + [ + 1479914211, + "29274384" + ], + [ + 1479914212, + "29274384" + ], + [ + 1479914213, + "35922128" + ], + [ + 1479914214, + "35922128" + ], + [ + 1479914215, + "35922128" + ], + [ + 1479914216, + "35922128" + ], + [ + 1479914217, + "35922128" + ], + [ + 1479914218, + "28783680" + ], + [ + 1479914219, + "28783680" + ], + [ + 1479914220, + "28783680" + ], + [ + 1479914221, + "28783680" + ], + [ + 1479914222, + "28783680" + ], + [ + 1479914223, + "35445168" + ], + [ + 1479914224, + "35445168" + ], + [ + 1479914225, + "35445168" + ], + [ + 1479914226, + "35445168" + ], + [ + 1479914227, + "35445168" + ], + [ + 1479914228, + "42148896" + ], + [ + 1479914229, + "42148896" + ], + [ + 1479914230, + "42148896" + ], + [ + 1479914231, + "42148896" + ], + [ + 1479914232, + "42148896" + ], + [ + 1479914233, + "35088656" + ], + [ + 1479914234, + "35088656" + ], + [ + 1479914235, + "35088656" + ], + [ + 1479914236, + "35088656" + ], + [ + 1479914237, + "35088656" + ], + [ + 1479914238, + "42443008" + ], + [ + 1479914239, + "42443008" + ], + [ + 1479914240, + "42443008" + ], + [ + 1479914241, + "42443008" + ], + [ + 1479914242, + "42443008" + ], + [ + 1479914243, + "35406424" + ], + [ + 1479914244, + "35406424" + ], + [ + 1479914245, + "35406424" + ], + [ + 1479914246, + "35406424" + ], + [ + 1479914247, + "35406424" + ], + [ + 1479914248, + "42101624" + ], + [ + 1479914249, + "42101624" + ], + [ + 1479914250, + "42101624" + ], + [ + 1479914251, + "42101624" + ], + [ + 1479914252, + "42101624" + ], + [ + 1479914253, + "35134416" + ], + [ + 1479914254, + "35134416" + ], + [ + 1479914255, + "35134416" + ], + [ + 1479914256, + "35134416" + ], + [ + 1479914257, + "35134416" + ], + [ + 1479914258, + "41812992" + ], + [ + 1479914259, + "41812992" + ], + [ + 1479914260, + "41812992" + ], + [ + 1479914261, + "41812992" + ], + [ + 1479914262, + "41812992" + ], + [ + 1479914263, + "48513768" + ], + [ + 1479914264, + "48513768" + ], + [ + 1479914265, + "48513768" + ], + [ + 1479914266, + "48513768" + ], + [ + 1479914267, + "48513768" + ], + [ + 1479914268, + "41557040" + ], + [ + 1479914269, + "41557040" + ], + [ + 1479914270, + "41557040" + ] + ] + }, + "node_memory_heap_total_bytes": { + "another-fast-node:8000": [ + [ + 1479914179, + "41922560" + ], + [ + 1479914180, + "41922560" + ], + [ + 1479914181, + "41922560" + ], + [ + 1479914182, + "41922560" + ], + [ + 1479914183, + "41922560" + ], + [ + 1479914184, + "41922560" + ], + [ + 1479914185, + "41922560" + ], + [ + 1479914186, + "41922560" + ], + [ + 1479914187, + "41922560" + ], + [ + 1479914188, + "41922560" + ], + [ + 1479914189, + "42971136" + ], + [ + 1479914190, + "42971136" + ], + [ + 1479914191, + "42971136" + ], + [ + 1479914192, + "42971136" + ], + [ + 1479914193, + "42971136" + ], + [ + 1479914194, + "42971136" + ], + [ + 1479914195, + "42971136" + ], + [ + 1479914196, + "42971136" + ], + [ + 1479914197, + "42971136" + ], + [ + 1479914198, + "42971136" + ], + [ + 1479914199, + "42971136" + ], + [ + 1479914200, + "42971136" + ], + [ + 1479914201, + "42971136" + ], + [ + 1479914202, + "42971136" + ], + [ + 1479914203, + "42971136" + ], + [ + 1479914204, + "42971136" + ], + [ + 1479914205, + "42971136" + ], + [ + 1479914206, + "42971136" + ], + [ + 1479914207, + "42971136" + ], + [ + 1479914208, + "42971136" + ], + [ + 1479914209, + "29339648" + ], + [ + 1479914210, + "29339648" + ], + [ + 1479914211, + "29339648" + ], + [ + 1479914212, + "29339648" + ], + [ + 1479914213, + "29339648" + ], + [ + 1479914214, + "29339648" + ], + [ + 1479914215, + "29339648" + ], + [ + 1479914216, + "29339648" + ], + [ + 1479914217, + "29339648" + ], + [ + 1479914218, + "29339648" + ], + [ + 1479914219, + "29339648" + ], + [ + 1479914220, + "29339648" + ], + [ + 1479914221, + "29339648" + ], + [ + 1479914222, + "29339648" + ], + [ + 1479914223, + "29339648" + ], + [ + 1479914224, + "29339648" + ], + [ + 1479914225, + "29339648" + ], + [ + 1479914226, + "29339648" + ], + [ + 1479914227, + "29339648" + ], + [ + 1479914228, + "29339648" + ], + [ + 1479914229, + "29339648" + ], + [ + 1479914230, + "29339648" + ], + [ + 1479914231, + "29339648" + ], + [ + 1479914232, + "29339648" + ], + [ + 1479914233, + "29339648" + ], + [ + 1479914234, + "30388224" + ], + [ + 1479914235, + "30388224" + ], + [ + 1479914236, + "30388224" + ], + [ + 1479914237, + "30388224" + ], + [ + 1479914238, + "30388224" + ], + [ + 1479914239, + "30388224" + ], + [ + 1479914240, + "30388224" + ], + [ + 1479914241, + "30388224" + ], + [ + 1479914242, + "30388224" + ], + [ + 1479914243, + "30388224" + ], + [ + 1479914244, + "30388224" + ], + [ + 1479914245, + "30388224" + ], + [ + 1479914246, + "30388224" + ], + [ + 1479914247, + "30388224" + ], + [ + 1479914248, + "30388224" + ], + [ + 1479914249, + "30388224" + ], + [ + 1479914250, + "30388224" + ], + [ + 1479914251, + "30388224" + ], + [ + 1479914252, + "30388224" + ], + [ + 1479914253, + "30388224" + ], + [ + 1479914254, + "31436800" + ], + [ + 1479914255, + "31436800" + ], + [ + 1479914256, + "31436800" + ], + [ + 1479914257, + "31436800" + ], + [ + 1479914258, + "31436800" + ], + [ + 1479914259, + "28291072" + ], + [ + 1479914260, + "28291072" + ], + [ + 1479914261, + "28291072" + ], + [ + 1479914262, + "28291072" + ], + [ + 1479914263, + "28291072" + ], + [ + 1479914264, + "28291072" + ], + [ + 1479914265, + "28291072" + ], + [ + 1479914266, + "28291072" + ], + [ + 1479914267, + "28291072" + ], + [ + 1479914268, + "28291072" + ], + [ + 1479914269, + "28291072" + ], + [ + 1479914270, + "28291072" + ] + ], + "fast-node:8000": [ + [ + 1479914178, + "41922560" + ], + [ + 1479914179, + "41922560" + ], + [ + 1479914180, + "41922560" + ], + [ + 1479914181, + "41922560" + ], + [ + 1479914182, + "41922560" + ], + [ + 1479914183, + "44019712" + ], + [ + 1479914184, + "44019712" + ], + [ + 1479914185, + "44019712" + ], + [ + 1479914186, + "44019712" + ], + [ + 1479914187, + "44019712" + ], + [ + 1479914188, + "45068288" + ], + [ + 1479914189, + "45068288" + ], + [ + 1479914190, + "45068288" + ], + [ + 1479914191, + "45068288" + ], + [ + 1479914192, + "45068288" + ], + [ + 1479914193, + "45068288" + ], + [ + 1479914194, + "45068288" + ], + [ + 1479914195, + "45068288" + ], + [ + 1479914196, + "45068288" + ], + [ + 1479914197, + "45068288" + ], + [ + 1479914198, + "62894080" + ], + [ + 1479914199, + "62894080" + ], + [ + 1479914200, + "62894080" + ], + [ + 1479914201, + "62894080" + ], + [ + 1479914202, + "62894080" + ], + [ + 1479914203, + "62894080" + ], + [ + 1479914204, + "62894080" + ], + [ + 1479914205, + "62894080" + ], + [ + 1479914206, + "62894080" + ], + [ + 1479914207, + "62894080" + ], + [ + 1479914208, + "63942656" + ], + [ + 1479914209, + "63942656" + ], + [ + 1479914210, + "63942656" + ], + [ + 1479914211, + "63942656" + ], + [ + 1479914212, + "63942656" + ], + [ + 1479914213, + "63942656" + ], + [ + 1479914214, + "63942656" + ], + [ + 1479914215, + "63942656" + ], + [ + 1479914216, + "63942656" + ], + [ + 1479914217, + "63942656" + ], + [ + 1479914218, + "64991232" + ], + [ + 1479914219, + "64991232" + ], + [ + 1479914220, + "64991232" + ], + [ + 1479914221, + "64991232" + ], + [ + 1479914222, + "64991232" + ], + [ + 1479914223, + "64991232" + ], + [ + 1479914224, + "64991232" + ], + [ + 1479914225, + "64991232" + ], + [ + 1479914226, + "64991232" + ], + [ + 1479914227, + "64991232" + ], + [ + 1479914228, + "64991232" + ], + [ + 1479914229, + "64991232" + ], + [ + 1479914230, + "64991232" + ], + [ + 1479914231, + "64991232" + ], + [ + 1479914232, + "64991232" + ], + [ + 1479914233, + "67088384" + ], + [ + 1479914234, + "67088384" + ], + [ + 1479914235, + "67088384" + ], + [ + 1479914236, + "67088384" + ], + [ + 1479914237, + "67088384" + ], + [ + 1479914238, + "68136960" + ], + [ + 1479914239, + "68136960" + ], + [ + 1479914240, + "68136960" + ], + [ + 1479914241, + "68136960" + ], + [ + 1479914242, + "68136960" + ], + [ + 1479914243, + "70234112" + ], + [ + 1479914244, + "70234112" + ], + [ + 1479914245, + "70234112" + ], + [ + 1479914246, + "70234112" + ], + [ + 1479914247, + "70234112" + ], + [ + 1479914248, + "70234112" + ], + [ + 1479914249, + "70234112" + ], + [ + 1479914250, + "70234112" + ], + [ + 1479914251, + "70234112" + ], + [ + 1479914252, + "70234112" + ], + [ + 1479914253, + "71282688" + ], + [ + 1479914254, + "71282688" + ], + [ + 1479914255, + "71282688" + ], + [ + 1479914256, + "71282688" + ], + [ + 1479914257, + "71282688" + ], + [ + 1479914258, + "72331264" + ], + [ + 1479914259, + "72331264" + ], + [ + 1479914260, + "72331264" + ], + [ + 1479914261, + "72331264" + ], + [ + 1479914262, + "72331264" + ], + [ + 1479914263, + "72331264" + ], + [ + 1479914264, + "72331264" + ], + [ + 1479914265, + "72331264" + ], + [ + 1479914266, + "72331264" + ], + [ + 1479914267, + "72331264" + ], + [ + 1479914268, + "73379840" + ], + [ + 1479914269, + "73379840" + ], + [ + 1479914270, + "73379840" + ] + ] + } + }, + "no-leak": { + "node_memory_heap_used_bytes": { + "plain-node:8000": [ + [ + 1479914178, + "28700032" + ], + [ + 1479914179, + "28700032" + ], + [ + 1479914180, + "28700032" + ], + [ + 1479914181, + "28700032" + ], + [ + 1479914182, + "28700032" + ], + [ + 1479914183, + "26824696" + ], + [ + 1479914184, + "26824696" + ], + [ + 1479914185, + "26824696" + ], + [ + 1479914186, + "26824696" + ], + [ + 1479914187, + "26824696" + ], + [ + 1479914188, + "23215624" + ], + [ + 1479914189, + "23215624" + ], + [ + 1479914190, + "23215624" + ], + [ + 1479914191, + "23215624" + ], + [ + 1479914192, + "23215624" + ], + [ + 1479914193, + "23859448" + ], + [ + 1479914194, + "23859448" + ], + [ + 1479914195, + "23859448" + ], + [ + 1479914196, + "23859448" + ], + [ + 1479914197, + "23859448" + ], + [ + 1479914198, + "24773048" + ], + [ + 1479914199, + "24773048" + ], + [ + 1479914200, + "24773048" + ], + [ + 1479914201, + "24773048" + ], + [ + 1479914202, + "24773048" + ], + [ + 1479914203, + "25307104" + ], + [ + 1479914204, + "25307104" + ], + [ + 1479914205, + "25307104" + ], + [ + 1479914206, + "25307104" + ], + [ + 1479914207, + "25307104" + ], + [ + 1479914208, + "25849776" + ], + [ + 1479914209, + "25849776" + ], + [ + 1479914210, + "25849776" + ], + [ + 1479914211, + "25849776" + ], + [ + 1479914212, + "25849776" + ], + [ + 1479914213, + "23209280" + ], + [ + 1479914214, + "23209280" + ], + [ + 1479914215, + "23209280" + ], + [ + 1479914216, + "23209280" + ], + [ + 1479914217, + "23209280" + ], + [ + 1479914218, + "22757024" + ], + [ + 1479914219, + "22757024" + ], + [ + 1479914220, + "22757024" + ], + [ + 1479914221, + "22757024" + ], + [ + 1479914222, + "22757024" + ], + [ + 1479914223, + "20410336" + ], + [ + 1479914224, + "20410336" + ], + [ + 1479914225, + "20410336" + ], + [ + 1479914226, + "20410336" + ], + [ + 1479914227, + "20410336" + ], + [ + 1479914228, + "20167104" + ], + [ + 1479914229, + "20167104" + ], + [ + 1479914230, + "20167104" + ], + [ + 1479914231, + "20167104" + ], + [ + 1479914232, + "20167104" + ], + [ + 1479914233, + "20656536" + ], + [ + 1479914234, + "20656536" + ], + [ + 1479914235, + "20656536" + ], + [ + 1479914236, + "20656536" + ], + [ + 1479914237, + "20656536" + ], + [ + 1479914238, + "21222096" + ], + [ + 1479914239, + "21222096" + ], + [ + 1479914240, + "21222096" + ], + [ + 1479914241, + "21222096" + ], + [ + 1479914242, + "21222096" + ], + [ + 1479914243, + "21719560" + ], + [ + 1479914244, + "21719560" + ], + [ + 1479914245, + "21719560" + ], + [ + 1479914246, + "21719560" + ], + [ + 1479914247, + "21719560" + ], + [ + 1479914248, + "22224184" + ], + [ + 1479914249, + "22224184" + ], + [ + 1479914250, + "22224184" + ], + [ + 1479914251, + "22224184" + ], + [ + 1479914252, + "22224184" + ], + [ + 1479914253, + "22640344" + ], + [ + 1479914254, + "22640344" + ], + [ + 1479914255, + "22640344" + ], + [ + 1479914256, + "22640344" + ], + [ + 1479914257, + "22640344" + ], + [ + 1479914258, + "23120608" + ], + [ + 1479914259, + "23120608" + ], + [ + 1479914260, + "23120608" + ], + [ + 1479914261, + "23120608" + ], + [ + 1479914262, + "23120608" + ], + [ + 1479914263, + "23554496" + ], + [ + 1479914264, + "23554496" + ], + [ + 1479914265, + "23554496" + ], + [ + 1479914266, + "23554496" + ], + [ + 1479914267, + "23554496" + ], + [ + 1479914268, + "24003960" + ], + [ + 1479914269, + "24003960" + ], + [ + 1479914270, + "24003960" + ] + ] + }, + "node_memory_heap_total_bytes": { + "plain-node:8000": [ + [ + 1479914178, + "42971136" + ], + [ + 1479914179, + "42971136" + ], + [ + 1479914180, + "42971136" + ], + [ + 1479914181, + "42971136" + ], + [ + 1479914182, + "42971136" + ], + [ + 1479914183, + "42971136" + ], + [ + 1479914184, + "42971136" + ], + [ + 1479914185, + "42971136" + ], + [ + 1479914186, + "42971136" + ], + [ + 1479914187, + "42971136" + ], + [ + 1479914188, + "36679680" + ], + [ + 1479914189, + "36679680" + ], + [ + 1479914190, + "36679680" + ], + [ + 1479914191, + "36679680" + ], + [ + 1479914192, + "36679680" + ], + [ + 1479914193, + "29339648" + ], + [ + 1479914194, + "29339648" + ], + [ + 1479914195, + "29339648" + ], + [ + 1479914196, + "29339648" + ], + [ + 1479914197, + "29339648" + ], + [ + 1479914198, + "30388224" + ], + [ + 1479914199, + "30388224" + ], + [ + 1479914200, + "30388224" + ], + [ + 1479914201, + "30388224" + ], + [ + 1479914202, + "30388224" + ], + [ + 1479914203, + "30388224" + ], + [ + 1479914204, + "30388224" + ], + [ + 1479914205, + "30388224" + ], + [ + 1479914206, + "30388224" + ], + [ + 1479914207, + "30388224" + ], + [ + 1479914208, + "30388224" + ], + [ + 1479914209, + "30388224" + ], + [ + 1479914210, + "30388224" + ], + [ + 1479914211, + "30388224" + ], + [ + 1479914212, + "30388224" + ], + [ + 1479914213, + "32485376" + ], + [ + 1479914214, + "32485376" + ], + [ + 1479914215, + "32485376" + ], + [ + 1479914216, + "32485376" + ], + [ + 1479914217, + "32485376" + ], + [ + 1479914218, + "29339648" + ], + [ + 1479914219, + "29339648" + ], + [ + 1479914220, + "29339648" + ], + [ + 1479914221, + "29339648" + ], + [ + 1479914222, + "29339648" + ], + [ + 1479914223, + "30388224" + ], + [ + 1479914224, + "30388224" + ], + [ + 1479914225, + "30388224" + ], + [ + 1479914226, + "30388224" + ], + [ + 1479914227, + "30388224" + ], + [ + 1479914228, + "30388224" + ], + [ + 1479914229, + "30388224" + ], + [ + 1479914230, + "30388224" + ], + [ + 1479914231, + "30388224" + ], + [ + 1479914232, + "30388224" + ], + [ + 1479914233, + "30388224" + ], + [ + 1479914234, + "30388224" + ], + [ + 1479914235, + "30388224" + ], + [ + 1479914236, + "30388224" + ], + [ + 1479914237, + "30388224" + ], + [ + 1479914238, + "30388224" + ], + [ + 1479914239, + "30388224" + ], + [ + 1479914240, + "30388224" + ], + [ + 1479914241, + "30388224" + ], + [ + 1479914242, + "30388224" + ], + [ + 1479914243, + "31436800" + ], + [ + 1479914244, + "31436800" + ], + [ + 1479914245, + "31436800" + ], + [ + 1479914246, + "31436800" + ], + [ + 1479914247, + "31436800" + ], + [ + 1479914248, + "31436800" + ], + [ + 1479914249, + "31436800" + ], + [ + 1479914250, + "31436800" + ], + [ + 1479914251, + "31436800" + ], + [ + 1479914252, + "31436800" + ], + [ + 1479914253, + "31436800" + ], + [ + 1479914254, + "31436800" + ], + [ + 1479914255, + "31436800" + ], + [ + 1479914256, + "31436800" + ], + [ + 1479914257, + "31436800" + ], + [ + 1479914258, + "32485376" + ], + [ + 1479914259, + "32485376" + ], + [ + 1479914260, + "32485376" + ], + [ + 1479914261, + "32485376" + ], + [ + 1479914262, + "32485376" + ], + [ + 1479914263, + "32485376" + ], + [ + 1479914264, + "32485376" + ], + [ + 1479914265, + "32485376" + ], + [ + 1479914266, + "32485376" + ], + [ + 1479914267, + "32485376" + ], + [ + 1479914268, + "32485376" + ], + [ + 1479914269, + "32485376" + ], + [ + 1479914270, + "32485376" + ] + ] + } + }, + "leak-slow": { + "node_memory_heap_used_bytes": { + "slow-node:8000": [ + [ + 1479914177, + "27964880" + ], + [ + 1479914178, + "27964880" + ], + [ + 1479914179, + "27964880" + ], + [ + 1479914180, + "27964880" + ], + [ + 1479914181, + "27964880" + ], + [ + 1479914182, + "26315136" + ], + [ + 1479914183, + "26315136" + ], + [ + 1479914184, + "26315136" + ], + [ + 1479914185, + "26315136" + ], + [ + 1479914186, + "26315136" + ], + [ + 1479914187, + "24342088" + ], + [ + 1479914188, + "24342088" + ], + [ + 1479914189, + "24342088" + ], + [ + 1479914190, + "24342088" + ], + [ + 1479914191, + "24342088" + ], + [ + 1479914192, + "23689000" + ], + [ + 1479914193, + "23689000" + ], + [ + 1479914194, + "23689000" + ], + [ + 1479914195, + "23689000" + ], + [ + 1479914196, + "23689000" + ], + [ + 1479914197, + "24684504" + ], + [ + 1479914198, + "24684504" + ], + [ + 1479914199, + "24684504" + ], + [ + 1479914200, + "24684504" + ], + [ + 1479914201, + "24684504" + ], + [ + 1479914202, + "24751576" + ], + [ + 1479914203, + "24751576" + ], + [ + 1479914204, + "24751576" + ], + [ + 1479914205, + "24751576" + ], + [ + 1479914206, + "24751576" + ], + [ + 1479914207, + "25520184" + ], + [ + 1479914208, + "25520184" + ], + [ + 1479914209, + "25520184" + ], + [ + 1479914210, + "25520184" + ], + [ + 1479914211, + "25520184" + ], + [ + 1479914212, + "25843896" + ], + [ + 1479914213, + "25843896" + ], + [ + 1479914214, + "25843896" + ], + [ + 1479914215, + "25843896" + ], + [ + 1479914216, + "25843896" + ], + [ + 1479914217, + "23577240" + ], + [ + 1479914218, + "23577240" + ], + [ + 1479914219, + "23577240" + ], + [ + 1479914220, + "23577240" + ], + [ + 1479914221, + "23577240" + ], + [ + 1479914222, + "23262496" + ], + [ + 1479914223, + "23262496" + ], + [ + 1479914224, + "23262496" + ], + [ + 1479914225, + "23262496" + ], + [ + 1479914226, + "23262496" + ], + [ + 1479914227, + "19624184" + ], + [ + 1479914228, + "19624184" + ], + [ + 1479914229, + "19624184" + ], + [ + 1479914230, + "19624184" + ], + [ + 1479914231, + "19624184" + ], + [ + 1479914232, + "20555648" + ], + [ + 1479914233, + "20555648" + ], + [ + 1479914234, + "20555648" + ], + [ + 1479914235, + "20555648" + ], + [ + 1479914236, + "20555648" + ], + [ + 1479914237, + "20523160" + ], + [ + 1479914238, + "20523160" + ], + [ + 1479914239, + "20523160" + ], + [ + 1479914240, + "20523160" + ], + [ + 1479914241, + "20523160" + ], + [ + 1479914242, + "21232440" + ], + [ + 1479914243, + "21232440" + ], + [ + 1479914244, + "21232440" + ], + [ + 1479914245, + "21232440" + ], + [ + 1479914246, + "21232440" + ], + [ + 1479914247, + "21913344" + ], + [ + 1479914248, + "21913344" + ], + [ + 1479914249, + "21913344" + ], + [ + 1479914250, + "21913344" + ], + [ + 1479914251, + "21913344" + ], + [ + 1479914252, + "21759952" + ], + [ + 1479914253, + "21759952" + ], + [ + 1479914254, + "21759952" + ], + [ + 1479914255, + "21759952" + ], + [ + 1479914256, + "21759952" + ], + [ + 1479914257, + "22396248" + ], + [ + 1479914258, + "22396248" + ], + [ + 1479914259, + "22396248" + ], + [ + 1479914260, + "22396248" + ], + [ + 1479914261, + "22396248" + ], + [ + 1479914262, + "23019968" + ], + [ + 1479914263, + "23019968" + ], + [ + 1479914264, + "23019968" + ], + [ + 1479914265, + "23019968" + ], + [ + 1479914266, + "23019968" + ], + [ + 1479914267, + "22769760" + ], + [ + 1479914268, + "22769760" + ], + [ + 1479914269, + "22769760" + ], + [ + 1479914270, + "22769760" + ] + ] + }, + "node_memory_heap_total_bytes": { + "slow-node:8000": [ + [ + 1479914177, + "41922560" + ], + [ + 1479914178, + "41922560" + ], + [ + 1479914179, + "41922560" + ], + [ + 1479914180, + "41922560" + ], + [ + 1479914181, + "41922560" + ], + [ + 1479914182, + "42971136" + ], + [ + 1479914183, + "42971136" + ], + [ + 1479914184, + "42971136" + ], + [ + 1479914185, + "42971136" + ], + [ + 1479914186, + "42971136" + ], + [ + 1479914187, + "29339648" + ], + [ + 1479914188, + "29339648" + ], + [ + 1479914189, + "29339648" + ], + [ + 1479914190, + "29339648" + ], + [ + 1479914191, + "29339648" + ], + [ + 1479914192, + "36679680" + ], + [ + 1479914193, + "36679680" + ], + [ + 1479914194, + "36679680" + ], + [ + 1479914195, + "36679680" + ], + [ + 1479914196, + "36679680" + ], + [ + 1479914197, + "30388224" + ], + [ + 1479914198, + "30388224" + ], + [ + 1479914199, + "30388224" + ], + [ + 1479914200, + "30388224" + ], + [ + 1479914201, + "30388224" + ], + [ + 1479914202, + "31436800" + ], + [ + 1479914203, + "31436800" + ], + [ + 1479914204, + "31436800" + ], + [ + 1479914205, + "31436800" + ], + [ + 1479914206, + "31436800" + ], + [ + 1479914207, + "30388224" + ], + [ + 1479914208, + "30388224" + ], + [ + 1479914209, + "30388224" + ], + [ + 1479914210, + "30388224" + ], + [ + 1479914211, + "30388224" + ], + [ + 1479914212, + "31436800" + ], + [ + 1479914213, + "31436800" + ], + [ + 1479914214, + "31436800" + ], + [ + 1479914215, + "31436800" + ], + [ + 1479914216, + "31436800" + ], + [ + 1479914217, + "31436800" + ], + [ + 1479914218, + "31436800" + ], + [ + 1479914219, + "31436800" + ], + [ + 1479914220, + "31436800" + ], + [ + 1479914221, + "31436800" + ], + [ + 1479914222, + "28291072" + ], + [ + 1479914223, + "28291072" + ], + [ + 1479914224, + "28291072" + ], + [ + 1479914225, + "28291072" + ], + [ + 1479914226, + "28291072" + ], + [ + 1479914227, + "29339648" + ], + [ + 1479914228, + "29339648" + ], + [ + 1479914229, + "29339648" + ], + [ + 1479914230, + "29339648" + ], + [ + 1479914231, + "29339648" + ], + [ + 1479914232, + "29339648" + ], + [ + 1479914233, + "29339648" + ], + [ + 1479914234, + "29339648" + ], + [ + 1479914235, + "29339648" + ], + [ + 1479914236, + "29339648" + ], + [ + 1479914237, + "30388224" + ], + [ + 1479914238, + "30388224" + ], + [ + 1479914239, + "30388224" + ], + [ + 1479914240, + "30388224" + ], + [ + 1479914241, + "30388224" + ], + [ + 1479914242, + "29339648" + ], + [ + 1479914243, + "29339648" + ], + [ + 1479914244, + "29339648" + ], + [ + 1479914245, + "29339648" + ], + [ + 1479914246, + "29339648" + ], + [ + 1479914247, + "31436800" + ], + [ + 1479914248, + "31436800" + ], + [ + 1479914249, + "31436800" + ], + [ + 1479914250, + "31436800" + ], + [ + 1479914251, + "31436800" + ], + [ + 1479914252, + "30388224" + ], + [ + 1479914253, + "30388224" + ], + [ + 1479914254, + "30388224" + ], + [ + 1479914255, + "30388224" + ], + [ + 1479914256, + "30388224" + ], + [ + 1479914257, + "30388224" + ], + [ + 1479914258, + "30388224" + ], + [ + 1479914259, + "30388224" + ], + [ + 1479914260, + "30388224" + ], + [ + 1479914261, + "30388224" + ], + [ + 1479914262, + "31436800" + ], + [ + 1479914263, + "31436800" + ], + [ + 1479914264, + "31436800" + ], + [ + 1479914265, + "31436800" + ], + [ + 1479914266, + "31436800" + ], + [ + 1479914267, + "34582528" + ], + [ + 1479914268, + "34582528" + ], + [ + 1479914269, + "34582528" + ], + [ + 1479914270, + "34582528" + ] + ] + } + } +} diff --git a/spikes/leak/package.json b/spikes/leak/package.json index d40844fb..02c477c9 100644 --- a/spikes/leak/package.json +++ b/spikes/leak/package.json @@ -7,13 +7,20 @@ "dependencies": { "artillery": "^1.5.0-17", "clone": "^2.0.0", + "date.js": "^0.3.1", "epimetheus": "^1.0.46", "good": "^7.0.2", "good-console": "^6.3.1", "good-squeeze": "^5.0.1", + "got": "^6.6.3", "hapi": "^15.2.0", + "hapi-webpack-dev-plugin": "^1.2.0", + "internet-timestamp": "^0.0.1", + "lodash.get": "^4.4.2", + "minimist": "^1.2.0", "pretty-hrtime": "^1.0.3", "prom-client": "^6.1.2", - "require-dir": "^0.3.1" + "require-dir": "^0.3.1", + "webpack": "^1.13.3" } } diff --git a/spikes/leak/prometheus.yml b/spikes/leak/prometheus.yml index 928ddc77..c164b348 100644 --- a/spikes/leak/prometheus.yml +++ b/spikes/leak/prometheus.yml @@ -3,7 +3,7 @@ scrape_configs: # Override the global default and scrape targets from this job every 5 seconds. scrape_interval: 1s static_configs: - - targets: ['fast-node:8000'] + - targets: ['fast-node:8000', 'another-fast-node:8000'] - job_name: 'leak-slow' # Override the global default and scrape targets from this job every 5 seconds. scrape_interval: 1s diff --git a/spikes/leak/readme.md b/spikes/leak/readme.md index be893180..e69de29b 100644 --- a/spikes/leak/readme.md +++ b/spikes/leak/readme.md @@ -1,16 +0,0 @@ -GET /mem -GET /cpu - - cpu-node: - build: . - environment: - - TYPE=node - ports: - - "8003:8000" - cpu-artillery: - build: . - environment: - - TYPE=artillery - - MODE=cpu - depends_on: - - cpu-node diff --git a/spikes/leak/scripts/metrics.js b/spikes/leak/scripts/metrics.js new file mode 100644 index 00000000..2c78ea65 --- /dev/null +++ b/spikes/leak/scripts/metrics.js @@ -0,0 +1,78 @@ +process.on('unhandledRejection', (reason) => { + throw reason +}); + +const argv = require('minimist')(process.argv.slice(2)); +const get = require('lodash.get'); +const date = require('date.js'); +const timestamp = require('internet-timestamp'); +const got = require('got'); +const url = require('url'); + +const conf = { + query: argv.query, + ago: argv.ago || '1h', + step: argv.step || '1s', + hostname: argv.hostname || 'localhost', +}; + +if (!conf.query) { + console.error(` +Usage: node metrics.js --query={metric} --step={step} --ago={ago} + node metrics.js --query=node_memory_heap_used_bytes --query=node_memory_heap_total_bytes + `.trim()); + + process.exit(1); +} + +// query=node_memory_heap_used_bytes&end=147989905368&step=15s +const end = timestamp(new Date()); +const start = timestamp(date(`${conf.ago} ago`)); + +Promise.all(conf.query.map((query) => { + return got(url.format({ + protocol: 'http:', + slashes: true, + port: '9090', + hostname: conf.hostname, + pathname: '/api/v1/query_range', + query: { + query: query, + end: end, + step: conf.step, + start: start + } + })); +})).then((res) => { + return res.reduce((sum, r) => { + const { + data: { + result + } + } = JSON.parse(r.body); + + return result.reduce((sum, inst) => { + const { + values, + metric: { + instance, + job, + __name__ + } + } = inst; + + const oldJob = get(sum, job, {}); + const oldQuery = get(sum, `${job}.${__name__}`, {}); + + return Object.assign(sum, { + [job]: Object.assign(oldJob, { + [__name__]: Object.assign(oldQuery, { + [instance]: values + }) + }) + }) + }, sum); + }, {}); +}).then((res) => { + console.log(JSON.stringify(res, null, 2)); +}); diff --git a/spikes/leak/start.js b/spikes/leak/scripts/start.js similarity index 72% rename from spikes/leak/start.js rename to spikes/leak/scripts/start.js index 69ddcb1e..1c3e3331 100644 --- a/spikes/leak/start.js +++ b/spikes/leak/scripts/start.js @@ -1,4 +1,5 @@ const cp = require('child_process'); +const path = require('path'); const TYPE = process.env.TYPE; const MODE = process.env.MODE; @@ -12,17 +13,15 @@ Usage: TYPE={type} node start.js process.exit(1); } - const handler = ({ node: () => { - console.log('node src/index.js'); return cp.exec('node src/index.js', { cwd: __dirname }) }, artillery: () => { - console.log(`./node_modules/.bin/artillery run ${__dirname}/artillery-${MODE}.yml`); - return cp.exec(`./node_modules/.bin/artillery run ${__dirname}/artillery-${MODE}.yml`) + const conf = path.join(__dirname, '../artillery/artillery-${MODE}.yml'); + return cp.exec(`../node_modules/.bin/artillery run ${conf}`) } })[TYPE]; diff --git a/spikes/leak/src/client/actions.js b/spikes/leak/src/client/actions.js new file mode 100644 index 00000000..852bf7ea --- /dev/null +++ b/spikes/leak/src/client/actions.js @@ -0,0 +1,82 @@ +const take = require('lodash.take'); + +const actions = { + 'UPDATE_STATS': (state, action) => { + const data = (state[action.subscription] || { + cpu: [], + mem: [], + disk: [] + }); + + const newData = ['cpu', 'mem', 'disk'].reduce((sum, key) => { + const item = { + ...action.payload.stats[key], + when: action.payload.when + }; + + const prepended = [item].concat(data[key]); + + return { + ...sum, + [key]: take(prepended, state.windowSize) + }; + }, {}); + + return { + ...state, + [action.subscription]: newData + }; + } +}; + +module.exports = (state, action) => { + return !actions[action.type] ? state : actions[action.type](state, action); +}; + +module.exports.subscribe = (id) => (dispatch, getState) => { + const { + ws + } = getState(); + + const p = new Promise((resolve, reject) => { + ws.subscribe(`/stats/${id}`, (update, flag) => { + dispatch({ + type: 'UPDATE_STATS', + payload: update, + subscription: id + }); + }, (err) => { + if (err) { + return reject(err); + } + + resolve(); + }); + }); + + return dispatch({ + type: 'SUBSCRIBE', + payload: p + }); +}; + +module.exports.unsubscribe = (id) => (dispatch, getState) => { + const { + ws + } = getState(); + + const p = new Promise((resolve, reject) => { + ws.unsubscribe(`/stats/${id}`, null, (err) => { + if (err) { + return reject(err); + } + + resolve(); + }); + }); + + return dispatch({ + type: 'UNSUBSCRIBE', + payload: p + }); +}; \ No newline at end of file diff --git a/spikes/leak/src/client/chart/base.js b/spikes/leak/src/client/chart/base.js new file mode 100644 index 00000000..d3c52441 --- /dev/null +++ b/spikes/leak/src/client/chart/base.js @@ -0,0 +1,71 @@ +const buildArray = require('build-array'); +const Chart = require('chart.js'); +const React = require('react'); + +module.exports = React.createClass({ + ref: function(name) { + this._refs = this._refs || {}; + + return (el) => { + this._refs[name] = el; + }; + }, + componentDidMount: function() { + const { + datasets = [], + labels = 0, + stacked = false, + xAxe = false, + yAxe = false, + legend = false + } = this.props; + + const _labels = !Array.isArray(labels) + ? buildArray(labels).map((v, i) => '') + : labels; + + this._chart = new Chart(this._refs.component, { + type: 'bar', + stacked: stacked, + responsive: true, + options: { + scales: { + xAxes: [{ + display: xAxe, + stacked: stacked + }], + yAxes: [{ + display: yAxe, + stacked: stacked + }] + }, + legend: { + display: legend + } + }, + data: { + labels: + datasets: datasets + } + }); + }, + componentWillReceiveProps: function(nextProps) { + const { + datasets = [], + labels = 0 + } = this.props; + + this._chart.data.datasets = datasets; + this._chart.data.labels = buildArray(labels).map((v, i) => ''); + this._chart.update(0); + }, + render: function() { + return ( + + ); + } +}); diff --git a/spikes/leak/src/client/chart/cpu.js b/spikes/leak/src/client/chart/cpu.js new file mode 100644 index 00000000..6df20000 --- /dev/null +++ b/spikes/leak/src/client/chart/cpu.js @@ -0,0 +1,31 @@ +const buildArray = require('build-array'); +const Chart = require('./base'); +const React = require('react'); + +const colors = { + user: 'rgb(255, 99, 132)', + sys: 'rgb(255, 159, 64)' +}; + +module.exports = ({ + data = {}, + windowSize +}) => { + const datasets = ['user', 'sys'].map((key) => { + return { + label: key, + backgroundColor: colors[key], + data: buildArray(windowSize).map((v, i) => ((data[i] || {})[key] || 0)) + }; + }); + + return ( + + ); +}; + diff --git a/spikes/leak/src/client/chart/disk.js b/spikes/leak/src/client/chart/disk.js new file mode 100644 index 00000000..64e0221c --- /dev/null +++ b/spikes/leak/src/client/chart/disk.js @@ -0,0 +1,35 @@ +const pretty = require('prettysize'); +const buildArray = require('build-array'); +const Chart = require('./base'); +const React = require('react'); + +const colors = { + user: 'rgb(255, 99, 132)', + sys: 'rgb(255, 159, 64)' +}; + +module.exports = ({ + data = [], + windowSize +}) => { + const datasets = [{ + label: 'disk', + backgroundColor: 'rgb(255, 159, 64)', + data: buildArray(windowSize).map((v, i) => { + return data[i] ? (data[i].total - data[i].free) : 0; + }) + }]; + + const labels = buildArray(windowSize).map((v, i) => { + return data[i] ? pretty(datasets[0].data[i]) : ''; + }); + + return ( + + ); +}; + diff --git a/spikes/leak/src/client/chart/index.js b/spikes/leak/src/client/chart/index.js new file mode 100644 index 00000000..43dc4817 --- /dev/null +++ b/spikes/leak/src/client/chart/index.js @@ -0,0 +1,8 @@ +module.exports = { + CPU: require('./cpu'), + cpu: require('./cpu'), + Mem: require('./mem'), + mem: require('./mem'), + Disk: require('./disk'), + disk: require('./disk') +}; diff --git a/spikes/leak/src/client/chart/mem.js b/spikes/leak/src/client/chart/mem.js new file mode 100644 index 00000000..a9a0943d --- /dev/null +++ b/spikes/leak/src/client/chart/mem.js @@ -0,0 +1,28 @@ +const buildArray = require('build-array'); +const Chart = require('./base'); +const React = require('react'); + +const colors = { + user: 'rgb(255, 99, 132)', + sys: 'rgb(255, 159, 64)' +}; + +module.exports = ({ + data = [], + windowSize +}) => { + const datasets = [{ + label: 'mem', + backgroundColor: 'rgb(255, 99, 132)', + data: buildArray(windowSize).map((v, i) => ((data[i] || {}).used || 0)) + }]; + + return ( + + ); +}; + diff --git a/spikes/leak/src/client/index.js b/spikes/leak/src/client/index.js new file mode 100644 index 00000000..fea081b5 --- /dev/null +++ b/spikes/leak/src/client/index.js @@ -0,0 +1,36 @@ +const ReactDOM = require('react-dom'); +const React = require('react'); +const Store = require('./store'); +const nes = require('nes/dist/client'); + +const { + Client +} = nes; + +const client = new Client(`ws://${document.location.host}`); + +client.connect((err) => { + if (err) { + throw err; + } +}); + +const store = Store({ + ws: client, + windowSize: 20 +}); + +const render = () => { + const Root = require('./root'); + + ReactDOM.render( + , + document.getElementById('root') + ); +}; + +render(); + +if (module.hot) { + module.hot.accept('./root', render); +} diff --git a/spikes/leak/src/client/matrix.js b/spikes/leak/src/client/matrix.js new file mode 100644 index 00000000..3c520efb --- /dev/null +++ b/spikes/leak/src/client/matrix.js @@ -0,0 +1,89 @@ +const React = require('react'); +const buildArray = require('build-array'); +const ReactRedux = require('react-redux'); +const Chart = require('./chart'); +const actions = require('./actions'); + +const { + connect +} = ReactRedux; + +const { + subscribe, + unsubscribe +} = actions; + +const mapStateToProps = (state, ownProps) => { + return { + windowSize: state.windowSize, + data: state[ownProps.id] + }; +}; + +const mapDispatchToProps = (dispatch, ownProps) => { + return { + subscribe: () => { + return dispatch(subscribe(ownProps.id)); + }, + unsubscribe: () => { + return unsubscribe(ownProps.id); + } + } +}; + +const Row = connect( + mapStateToProps, + mapDispatchToProps, +)(React.createClass({ + componentWillMount: function() { + this.props.subscribe(); + }, + componentWillUnmount: function() { + this.props.unsubscribe(); + }, + render: function() { + const { + data = {}, + windowSize + } = this.props; + + const charts = Object.keys(data).map((key, i, arr) => { + if (!Chart[key]) { + return null; + } + + const chart = React.createElement(Chart[key], { + data: data[key], + windowSize + }); + + return ( +
+ {chart} +
+ ); + }); + + return ( +
+ {charts} +
+ ); + } +})); + +module.exports = ({ + rows +}) => { + const _rows = buildArray(rows).map((v, i) => { + return ( + + ); + }); + + return ( +
+ {_rows} +
+ ); +}; diff --git a/spikes/leak/src/client/root.js b/spikes/leak/src/client/root.js new file mode 100644 index 00000000..cb128946 --- /dev/null +++ b/spikes/leak/src/client/root.js @@ -0,0 +1,24 @@ +const React = require('react'); +const ReactHotLoader = require('react-hot-loader'); +const ReactRedux = require('react-redux'); +const Matrix = require('./matrix'); + +const { + AppContainer +} = ReactHotLoader; + +const { + Provider +} = ReactRedux; + +module.exports = ({ + store +}) => { + return ( + + + + + + ); +}; diff --git a/spikes/leak/src/client/store.js b/spikes/leak/src/client/store.js new file mode 100644 index 00000000..27f9837a --- /dev/null +++ b/spikes/leak/src/client/store.js @@ -0,0 +1,21 @@ +const createLogger = require('redux-logger'); +const promiseMiddleware = require('redux-promise-middleware').default; +const thunk = require('redux-thunk').default; +const redux = require('redux'); +const reducer = require('./actions'); + +const { + createStore, + compose, + applyMiddleware +} = redux; + +module.exports = (state = Object.freeze({})) => { + return createStore(reducer, state, applyMiddleware( + createLogger({ + predicate: (getState, action) => action.type !== 'UPDATE_STATS' + }), + promiseMiddleware(), + thunk + )); +}; diff --git a/spikes/leak/src/plugins.js b/spikes/leak/src/plugins.js deleted file mode 100644 index 39321fb1..00000000 --- a/spikes/leak/src/plugins.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = [{ - register: require('good'), - options: { - reporters: { - console: [{ - module: 'good-squeeze', - name: 'Squeeze', - args: [{ - response: '*', - log: '*' - }] - }, { - module: 'good-console' - }, 'stdout'] - } - } -}]; diff --git a/spikes/leak/src/index.js b/spikes/leak/src/server/index.js similarity index 100% rename from spikes/leak/src/index.js rename to spikes/leak/src/server/index.js diff --git a/spikes/leak/src/server/plugins.js b/spikes/leak/src/server/plugins.js new file mode 100644 index 00000000..273468a5 --- /dev/null +++ b/spikes/leak/src/server/plugins.js @@ -0,0 +1,29 @@ +const webpack = require('webpack'); +const path = require('path'); + +const cfg = require('../webpack.config.js'); + +module.exports = [ + require('inert'), { + register: require('good'), + options: { + reporters: { + console: [{ + module: 'good-squeeze', + name: 'Squeeze', + args: [{ + response: '*', + log: '*' + }] + }, { + module: 'good-console' + }, 'stdout'] + } + } +}, { + register: require('hapi-webpack-dev-plugin'), + options: { + compiler: webpack(cfg), + devIndex: path.join(__dirname, '../static') + } +}]; diff --git a/spikes/leak/src/routes/leak.js b/spikes/leak/src/server/routes/leak.js similarity index 100% rename from spikes/leak/src/routes/leak.js rename to spikes/leak/src/server/routes/leak.js diff --git a/spikes/leak/src/routes/version.js b/spikes/leak/src/server/routes/version.js similarity index 100% rename from spikes/leak/src/routes/version.js rename to spikes/leak/src/server/routes/version.js diff --git a/spikes/leak/src/webpack.config.js b/spikes/leak/src/webpack.config.js new file mode 100644 index 00000000..b73febcd --- /dev/null +++ b/spikes/leak/src/webpack.config.js @@ -0,0 +1,58 @@ +const webpack = require('webpack'); +const path = require('path'); + +const config = { + debug: true, + devtool: 'source-map', + context: path.join(__dirname, './client'), + app: path.join(__dirname, './client/index.js'), + entry: [ + 'webpack-dev-server/client?http://localhost:8080', + 'webpack/hot/only-dev-server', + 'react-hot-loader/patch', + './index.js' + ], + output: { + path: path.join(__dirname, '../static'), + publicPath: '/static/', + filename: 'bundle.js' + }, + plugins: [ + new webpack.HotModuleReplacementPlugin(), + new webpack.NoErrorsPlugin(), + new webpack.ProvidePlugin({ + 'd3': 'd3' + }) + ], + module: { + loaders: [{ + test: /js?$/, + exclude: /node_modules/, + include: [ + path.join(__dirname, './client') + ], + loaders: ['babel'] + }, { + test: /\.json?$/, + exclude: /node_modules/, + include: [ + path.join(__dirname, './client') + ], + loaders: ['json'] + }] + } +}; + +const devServer = { + hot: true, + compress: true, + lazy: false, + publicPath: config.output.publicPath, + historyApiFallback: { + index: '../static/index.html' + } +}; + +module.exports = Object.assign({ + devServer +}, config); diff --git a/spikes/leak/static/index.html b/spikes/leak/static/index.html new file mode 100644 index 00000000..c012e3d4 --- /dev/null +++ b/spikes/leak/static/index.html @@ -0,0 +1,973 @@ + + + + React Boilerplate + + + + +
+ + + \ No newline at end of file diff --git a/spikes/leak/yarn.lock b/spikes/leak/yarn.lock index 42af9fbd..9ea298da 100644 --- a/spikes/leak/yarn.lock +++ b/spikes/leak/yarn.lock @@ -15,6 +15,13 @@ accept@2.x.x: boom "4.x.x" hoek "4.x.x" +accepts@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + acorn-globals@^1.0.4: version "1.0.9" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" @@ -25,10 +32,22 @@ acorn@^2.1.0, acorn@^2.4.0: version "2.7.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" +acorn@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + after@0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" @@ -48,10 +67,46 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" +anymatch@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +aproba@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" + +are-we-there-yet@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.0 || ^1.1.13" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + arraybuffer.slice@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + arrivals@^2.0.2, arrivals@latest: version "2.0.2" resolved "https://registry.yarnpkg.com/arrivals/-/arrivals-2.0.2.tgz#3eacafebbc9c924f93173ac6a8a63fc8b281ddd0" @@ -113,7 +168,21 @@ assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" -async@^1.0.0, async@1.5.2: +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +async@^1.0.0, async@^1.3.0, async@1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -123,6 +192,10 @@ async@^2.0.1: dependencies: lodash "^4.14.0" +async@~0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -143,10 +216,30 @@ backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + base64-arraybuffer@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz#474df4a9f2da24e05df3158c3b1db3c3cd46a154" +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64-js@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + +Base64@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" + +base64id@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" + bcrypt-pbkdf@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" @@ -163,6 +256,14 @@ better-assert@~1.0.0: dependencies: callsite "1.0.0" +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +binary-extensions@^1.0.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" + bintrees@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524" @@ -177,11 +278,17 @@ blob@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" -boom@2.x.x: +boom@^2.6.0, boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" dependencies: @@ -199,10 +306,39 @@ boom@4.x.x: dependencies: hoek "4.x.x" +brace-expansion@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browserify-zlib@~0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + buffer-shims@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" +buffer@^4.9.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + call@3.x.x: version "3.0.3" resolved "https://registry.yarnpkg.com/call/-/call-3.0.3.tgz#e4748ddbbb7f41ae40cee055f8b270b733bf7c8d" @@ -214,6 +350,14 @@ callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" @@ -232,6 +376,13 @@ catbox@7.x.x: hoek "4.x.x" joi "9.x.x" +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + chalk@^1.1.1, chalk@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -254,6 +405,21 @@ cheerio@0.20.0: optionalDependencies: jsdom "^7.0.2" +chokidar@^1.0.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + cli@^0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/cli/-/cli-0.6.6.tgz#02ad44a380abf27adac5e6f0cdd7b043d74c53e3" @@ -261,10 +427,26 @@ cli@^0.6.6: exit "0.1.2" glob "~ 3.2.1" +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +clone@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + clone@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/clone/-/clone-2.0.0.tgz#df65d3ca142e4a4a47db33da3468d088a16fc76e" +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" @@ -289,20 +471,52 @@ component-emitter@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe" +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + component-inherit@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" + content@3.x.x: version "3.0.3" resolved "https://registry.yarnpkg.com/content/-/content-3.0.3.tgz#000f8a01371b95c66afe99be9390fa6cb91aa87a" dependencies: boom "4.x.x" +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -315,6 +529,14 @@ cryptiles@3.x.x: dependencies: boom "4.x.x" +crypto-browserify@~3.2.6: + version "3.2.8" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.2.8.tgz#b9b11dbe6d9651dd882a01e6cc467df718ecf189" + dependencies: + pbkdf2-compat "2.0.1" + ripemd160 "0.2.0" + sha.js "2.2.6" + css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" @@ -348,12 +570,43 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -debug@2.2.0: +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +date.js: + version "0.3.1" + resolved "https://registry.yarnpkg.com/date.js/-/date.js-0.3.1.tgz#39e7c7c77adc765d10becf496cacd391332d7cc8" + dependencies: + debug "~0.7.2" + lodash.filter "^4.2.0" + lodash.findkey "^4.2.0" + lodash.foreach "^4.1.0" + lodash.includes "^4.1.0" + lodash.isempty "^4.1.2" + lodash.partition "^4.2.0" + lodash.trim "^4.2.0" + +debug@~0.7.2: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + +debug@~2.2.0, debug@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: ms "0.7.1" +debug@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" + +decamelize@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" @@ -370,6 +623,10 @@ delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + dom-serializer@~0.1.0, dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" @@ -377,6 +634,10 @@ dom-serializer@~0.1.0, dom-serializer@0: domelementtype "~1.1.1" entities "~1.1.1" +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" @@ -398,6 +659,10 @@ domutils@1.5, domutils@1.5.1: dom-serializer "0" domelementtype "1" +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + duplexify@^3.1.2: version "3.5.0" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" @@ -413,6 +678,10 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + end-of-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07" @@ -442,6 +711,23 @@ engine.io-client@1.6.9: xmlhttprequest-ssl "1.5.1" yeast "0.1.2" +engine.io-client@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.0.tgz#7b730e4127414087596d9be3c88d2bc5fdb6cf5c" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.1" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.1" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + engine.io-parser@1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.2.4.tgz#e0897b0bf14e792d4cd2a5950553919c56948c42" @@ -453,6 +739,36 @@ engine.io-parser@1.2.4: has-binary "0.1.6" utf8 "2.1.0" +engine.io-parser@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.1.tgz#9554f1ae33107d6fbd170ca5466d2f833f6a07cf" + dependencies: + after "0.8.1" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.6" + wtf-8 "1.0.0" + +engine.io@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.0.tgz#3eeb5f264cb75dbbec1baaea26d61f5a4eace2aa" + dependencies: + accepts "1.3.3" + base64id "0.1.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.1" + ws "1.1.1" + +enhanced-resolve@~0.9.0: + version "0.9.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -465,6 +781,12 @@ epimetheus@^1.0.46: version "1.0.46" resolved "https://registry.yarnpkg.com/epimetheus/-/epimetheus-1.0.46.tgz#fad0664062fac5f4cd31abb2de9a67853a984662" +errno@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + escape-string-regexp@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -496,14 +818,36 @@ esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + exit@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + extend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" @@ -516,10 +860,34 @@ fast-safe-stringify@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-1.1.0.tgz#4ca98c502e00c387ca1b0e7184e955718bf512e8" +filename-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + filtrex@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/filtrex/-/filtrex-0.5.4.tgz#98075d518f068c4f58b7b589a227d98bd9f6395d" +for-in@^0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" + +for-own@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + dependencies: + for-in "^0.1.5" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -540,6 +908,48 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.0.15" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fstream-ignore@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +gauge@~2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.1.tgz#388473894fe8be5e13ffcdb8b93e4ed0616428c7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-color "^0.1.7" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + generate-function@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" @@ -550,12 +960,43 @@ generate-object-property@^1.1.0: dependencies: is-property "^1.0.0" +get-stream@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + getpass@^0.1.1: version "0.1.6" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" dependencies: assert-plus "^1.0.0" +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^7.0.5: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + "glob@~ 3.2.1": version "3.2.11" resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" @@ -588,10 +1029,40 @@ good-squeeze: fast-safe-stringify "1.1.0" hoek "4.x.x" +got: + version "6.6.3" + resolved "https://registry.yarnpkg.com/got/-/got-6.6.3.tgz#ff72c56d7f040eb8918ffb80fb62bcaf489d4eec" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^2.3.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + node-status-codes "^2.0.0" + timed-out "^3.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" +hapi-webpack-dev-plugin: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hapi-webpack-dev-plugin/-/hapi-webpack-dev-plugin-1.2.0.tgz#316554888b7cba7df181ec806c36671cfe9a6314" + dependencies: + boom "^2.6.0" + jquery "^2.1.1" + memory-fs "^0.1.0" + mime "^1.2.11" + socket.io "^1.3.3" + hapi@^15.2.0: version "15.2.0" resolved "https://registry.yarnpkg.com/hapi/-/hapi-15.2.0.tgz#5704ca2c04b6386c03caf9ee901f1de080316d23" @@ -642,10 +1113,22 @@ has-binary@0.1.7: dependencies: isarray "0.0.1" +has-color@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" @@ -692,6 +1175,13 @@ htmlparser2@~3.8.1: entities "1.0" readable-stream "1.1" +http-browserify@^1.3.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" + dependencies: + Base64 "~0.2.0" + inherits "~2.0.1" + http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -700,18 +1190,45 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" +https-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.0.tgz#b3ffdfe734b2a3d4a9efd58e8654c91fce86eafd" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" -inherits@^2.0.1, inherits@~2.0.1, inherits@2: +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@2: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +internet-timestamp: + version "0.0.1" + resolved "https://registry.yarnpkg.com/internet-timestamp/-/internet-timestamp-0.0.1.tgz#16b4a7ada6d1110d4e141fd443756b81b16d1712" + +interpret@^0.6.4: + version "0.6.6" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b" + iron@4.x.x: version "4.0.4" resolved "https://registry.yarnpkg.com/iron/-/iron-4.0.4.tgz#c1f8cc4c91454194ab8920d9247ba882e528061a" @@ -720,6 +1237,46 @@ iron@4.x.x: cryptiles "3.x.x" hoek "4.x.x" +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + is-my-json-valid@^2.12.4: version "2.15.0" resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" @@ -729,15 +1286,41 @@ is-my-json-valid@^2.12.4: jsonpointer "^4.0.0" xtend "^4.0.0" +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + is-property@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" -isarray@~1.0.0: +isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -753,6 +1336,12 @@ isnumber@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isnumber/-/isnumber-1.0.0.tgz#0e3f9759b581d99dd85086f0ec2a74909cfadd01" +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -795,6 +1384,10 @@ joi@9.x.x: moment "2.x.x" topo "2.x.x" +jquery@^2.1.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-2.2.4.tgz#2c89d6889b5eac522a7eea32c14521559c6cbf02" + jsbn@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" @@ -835,6 +1428,10 @@ json3@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" +json5@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2" + JSONPath@0.11.2: version "0.11.2" resolved "https://registry.yarnpkg.com/JSONPath/-/JSONPath-0.11.2.tgz#3fbd2033a9579f7ff56c11825b5d7dd77641583d" @@ -851,6 +1448,16 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.3.6" +kind-of@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.0.4.tgz#7b8ecf18a4e17f8269d73b501c9f232c96887a74" + dependencies: + is-buffer "^1.0.2" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -858,6 +1465,47 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +loader-utils@^0.2.11: + version "0.2.16" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +lodash.filter@^4.2.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + +lodash.findkey@^4.2.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.findkey/-/lodash.findkey-4.6.0.tgz#83058e903b51cbb759d09ccf546dea3ea39c4718" + +lodash.foreach@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + +lodash.get: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + +lodash.includes@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + +lodash.isempty@^4.1.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + +lodash.partition@^4.2.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.partition/-/lodash.partition-4.6.0.tgz#a38e46b73469e0420b0da1212e66d414be364ba4" + +lodash.trim@^4.2.0: + version "4.5.1" + resolved "https://registry.yarnpkg.com/lodash.trim/-/lodash.trim-4.5.1.tgz#36425e7ee90be4aa5e27bcebb85b7d11ea47aa57" + lodash@^3.9.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" @@ -870,20 +1518,65 @@ lodash@4.13.1: version "4.13.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.13.1.tgz#83e4b10913f48496d4d16fec4a560af2ee744b68" +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + lru-cache@2: version "2.7.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" +memory-fs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.1.1.tgz#bec997e8654a29753206e3b921809869bec0e943" + +memory-fs@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + +memory-fs@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + mime-db@~1.25.0, mime-db@1.x.x: version "1.25.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" -mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.7: +mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: version "2.1.13" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88" dependencies: mime-db "~1.25.0" +mime@^1.2.11: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + mimos@3.x.x: version "3.0.3" resolved "https://registry.yarnpkg.com/mimos/-/mimos-3.0.3.tgz#b9109072ad378c2b72f6a0101c43ddfb2b36641f" @@ -891,6 +1584,12 @@ mimos@3.x.x: hoek "4.x.x" mime-db "1.x.x" +minimatch@^3.0.0, minimatch@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + minimatch@0.3: version "0.3.0" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" @@ -898,10 +1597,24 @@ minimatch@0.3: lru-cache "2" sigmund "~1.0.0" -minimist@^1.2.0: +minimist, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +"mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + mkdirp@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" @@ -922,10 +1635,22 @@ ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +nan@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" + nanotimer@0.3.14: version "0.3.14" resolved "https://registry.yarnpkg.com/nanotimer/-/nanotimer-0.3.14.tgz#10d811f8d064788180096ce1f96c70846fd5a2ba" +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + nigel@2.x.x: version "2.0.2" resolved "https://registry.yarnpkg.com/nigel/-/nigel-2.0.2.tgz#93a1866fb0c52d87390aa75e2b161f4b5c75e5b1" @@ -933,22 +1658,91 @@ nigel@2.x.x: hoek "4.x.x" vise "2.x.x" +node-libs-browser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.6.0.tgz#244806d44d319e048bc8607b5cc4eaf9a29d2e3c" + dependencies: + assert "^1.1.1" + browserify-zlib "~0.1.4" + buffer "^4.9.0" + console-browserify "^1.1.0" + constants-browserify "0.0.1" + crypto-browserify "~3.2.6" + domain-browser "^1.1.1" + events "^1.0.0" + http-browserify "^1.3.2" + https-browserify "0.0.0" + os-browserify "~0.1.2" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "~0.2.0" + readable-stream "^1.1.13" + stream-browserify "^1.0.0" + string_decoder "~0.10.25" + timers-browserify "^1.0.1" + tty-browserify "0.0.0" + url "~0.10.1" + util "~0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.29: + version "0.6.31" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.31.tgz#d8a00ddaa301a940615dbcc8caad4024d58f6017" + dependencies: + mkdirp "~0.5.1" + nopt "~3.0.6" + npmlog "^4.0.0" + rc "~1.1.6" + request "^2.75.0" + rimraf "~2.5.4" + semver "~5.3.0" + tar "~2.2.1" + tar-pack "~3.3.0" + +node-status-codes@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-2.0.1.tgz#298067659cb68a2b4670abbefde02a3819981f5b" + node-uuid@~1.4.7, node-uuid@1.4.7: version "1.4.7" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" +nopt@~3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + nopt@1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" dependencies: abbrev "1" +normalize-path@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + +npmlog@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.1.tgz#d14f503b4cd79710375553004ba96e6662fbc0b8" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.1" + set-blocking "~2.0.0" + nth-check@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" dependencies: boolbase "~1.0.0" +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + "nwmatcher@>= 1.3.7 < 2.0.0": version "1.3.9" resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" @@ -957,17 +1751,28 @@ oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + object-component@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" -once@^1.3.1: +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@^1.3.0, once@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" -once@~1.3.0: +once@~1.3.0, once@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" dependencies: @@ -984,6 +1789,13 @@ oppsy@1.x.x: hoek "4.x.x" items "2.x.x" +optimist@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + optionator@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" @@ -999,10 +1811,27 @@ options@>=0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" +os-browserify@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" + os-tmpdir@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + parse5@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" @@ -1013,18 +1842,48 @@ parsejson@0.0.1: dependencies: better-assert "~1.0.0" +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + dependencies: + better-assert "~1.0.0" + parseqs@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7" dependencies: better-assert "~1.0.0" +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + parseuri@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350" dependencies: better-assert "~1.0.0" +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +pbkdf2-compat@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288" + pez@2.x.x: version "2.1.3" resolved "https://registry.yarnpkg.com/pez/-/pez-2.1.3.tgz#e53ebcbf48961b4aa1bb2b68cfd1eb20c9898039" @@ -1057,6 +1916,14 @@ prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" @@ -1065,6 +1932,10 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process@^0.11.0, process@~0.11.0: + version "0.11.9" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" + prom-client@^6.1.2: version "6.1.2" resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-6.1.2.tgz#530d6c4815b2459e8e0edbdf128f8a978e0d9dd0" @@ -1072,6 +1943,10 @@ prom-client@^6.1.2: tdigest "^0.1.1" util-extend "^1.0.1" +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + pump@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.1.tgz#f1f1409fb9bd1085bbdb576b43b84ec4b5eadc1a" @@ -1087,10 +1962,14 @@ pumpify@1.3.x: inherits "^2.0.1" pump "^1.0.0" -punycode@^1.4.1: +punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + qs@~6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.1.0.tgz#ec1d1626b24278d99f0fdf4549e524e24eceeb26" @@ -1099,7 +1978,22 @@ qs@~6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" -rc@^1.1.6: +querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +randomatic@^1.1.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +rc@^1.1.6, rc@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" dependencies: @@ -1108,7 +2002,16 @@ rc@^1.1.6: minimist "^1.2.0" strip-json-comments "~1.0.4" -readable-stream@^2.0.0: +readable-stream@^1.0.27-1, readable-stream@^1.1.13: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" dependencies: @@ -1131,6 +2034,18 @@ readable-stream@~2.0.5: string_decoder "~0.10.x" util-deprecate "~1.0.1" +readable-stream@~2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + readable-stream@1.1: version "1.1.13" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" @@ -1140,7 +2055,31 @@ readable-stream@1.1: isarray "0.0.1" string_decoder "~0.10.x" -request@^2.55.0: +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +request@^2.55.0, request@^2.75.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: @@ -1195,10 +2134,42 @@ require-dir@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/require-dir/-/require-dir-0.3.1.tgz#b5a8e28bae0343bb0d0cc38ab1f531e1931b264a" +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2: + version "2.5.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + dependencies: + glob "^7.0.5" + +ripemd160@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + sax@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +sha.js@2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" + shot@3.x.x: version "3.3.2" resolved "https://registry.yarnpkg.com/shot/-/shot-3.3.2.tgz#691c2611759decc20487b20d25cc299f39e5f9b7" @@ -1210,12 +2181,23 @@ sigmund@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" +signal-exit@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.1.tgz#5a4c884992b63a7acd9badb7894c3ee9cfccad81" + sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" dependencies: hoek "2.x.x" +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + socket.io-client@1.4.6: version "1.4.6" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.4.6.tgz#49b0ba537efd15b8297c84016e642e1c7c752c3d" @@ -1232,6 +2214,22 @@ socket.io-client@1.4.6: socket.io-parser "2.2.6" to-array "0.1.4" +socket.io-client@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.6.0.tgz#5b668f4f771304dfeed179064708386fa6717853" + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.0" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + socket.io-parser@2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99" @@ -1242,12 +2240,47 @@ socket.io-parser@2.2.6: isarray "0.0.1" json3 "3.3.2" +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@^1.3.3: + version "1.6.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.6.0.tgz#3e40d932637e6bd923981b25caf7c53e83b6e2e1" + dependencies: + debug "2.3.3" + engine.io "1.8.0" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.6.0" + socket.io-parser "2.3.1" + +source-list-map@~0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.6.tgz#e1e6f94f0b40c4d28dcf8f5b8766e0e45636877f" + source-map@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" dependencies: amdefine ">=0.0.4" +source-map@~0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + sshpk@^1.7.0: version "1.10.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" @@ -1280,19 +2313,34 @@ stats-lite@2.0.0: dependencies: isnumber "~1.0.0" +stream-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" + dependencies: + inherits "~2.0.1" + readable-stream "^1.0.27-1" + stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" -string_decoder@~0.10.x: +string_decoder@~0.10.25, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + stringstream@~0.0.4: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" -strip-ansi@^3.0.0: +strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: @@ -1316,16 +2364,57 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" +supports-color@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + "symbol-tree@>= 3.1.0 < 4.0.0": version "3.1.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.1.4.tgz#02b279348d337debc39694c5c95f882d448a312a" +tapable@^0.1.8, tapable@~0.1.8: + version "0.1.10" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + +tar-pack@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" + dependencies: + debug "~2.2.0" + fstream "~1.0.10" + fstream-ignore "~1.0.5" + once "~1.3.3" + readable-stream "~2.1.4" + rimraf "~2.5.1" + tar "~2.2.1" + uid-number "~0.0.6" + +tar@~2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + tdigest@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" dependencies: bintrees "1.0.1" +timed-out@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.0.0.tgz#ff88de96030ce960eabd42487db61d3add229273" + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + dependencies: + process "~0.11.0" + tmp@0.0.28: version "0.0.28" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" @@ -1360,6 +2449,10 @@ traverse@0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + tunnel-agent@~0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" @@ -1374,10 +2467,44 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +uglify-js@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.4.tgz#a295a0de12b6a650c031c40deb0dc40b14568bd2" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@~0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + ultron@1.0.x: version "1.0.2" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url@~0.10.1: + version "0.10.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + utf8@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.0.tgz#0cfec5c8052d44a23e3aaa908104e8075f95dfd5" @@ -1390,6 +2517,12 @@ util-extend@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" +util@~0.10.3, util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + uuid@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.0.tgz#6728fc0459c450d796a99c31837569bdf672d728" @@ -1406,20 +2539,79 @@ vise@2.x.x: dependencies: hoek "4.x.x" +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +watchpack@^0.2.1: + version "0.2.9" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" + dependencies: + async "^0.9.0" + chokidar "^1.0.0" + graceful-fs "^4.1.2" + webidl-conversions@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-2.0.1.tgz#3bf8258f7d318c7443c36f2e169402a1a6703506" +webpack: + version "1.13.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.13.3.tgz#e79c46fe5a37c5ca70084ba0894c595cdcb42815" + dependencies: + acorn "^3.0.0" + async "^1.3.0" + clone "^1.0.2" + enhanced-resolve "~0.9.0" + interpret "^0.6.4" + loader-utils "^0.2.11" + memory-fs "~0.3.0" + mkdirp "~0.5.0" + node-libs-browser "^0.6.0" + optimist "~0.6.0" + supports-color "^3.1.0" + tapable "~0.1.8" + uglify-js "~2.7.3" + watchpack "^0.2.1" + webpack-core "~0.6.0" + +webpack-core@~0.6.0: + version "0.6.8" + resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.8.tgz#edf9135de00a6a3c26dd0f14b208af0aa4af8d0a" + dependencies: + source-list-map "~0.1.0" + source-map "~0.4.1" + whatwg-url-compat@~0.6.5: version "0.6.5" resolved "https://registry.yarnpkg.com/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz#00898111af689bb097541cd5a45ca6c8798445bf" dependencies: tr46 "~0.0.1" +wide-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -1438,6 +2630,17 @@ ws@1.0.1: options ">=0.0.5" ultron "1.0.x" +ws@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +wtf-8@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + "xml-name-validator@>= 2.0.1 < 3.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" @@ -1446,6 +2649,10 @@ xmlhttprequest-ssl@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67" +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + xtend@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -1454,6 +2661,15 @@ yaml-js@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/yaml-js/-/yaml-js-0.1.4.tgz#ac965488a94daad5b65a92cab28c262407730fc0" +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"