From a6abc105a9390cb2fbfaec9336a68d1f483db187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Ramos?= Date: Tue, 5 Sep 2017 21:53:15 +0100 Subject: [PATCH] fix(cp-frontend): fix branches overriding services --- packages/cp-frontend/src/graphql/Services.gql | 1 + .../src/graphql/ServicesTopology.gql | 1 + packages/cp-frontend/src/state/store.js | 8 +- packages/portal-api/lib/data/index.js | 110 ++--- packages/portal-api/lib/data/transform.js | 4 +- .../portal-api/lib/watch/container-pilot.js | 8 +- packages/portal-api/package.json | 1 + yarn.lock | 390 ++++++++---------- 8 files changed, 250 insertions(+), 273 deletions(-) diff --git a/packages/cp-frontend/src/graphql/Services.gql b/packages/cp-frontend/src/graphql/Services.gql index 26bc504a..00a32133 100644 --- a/packages/cp-frontend/src/graphql/Services.gql +++ b/packages/cp-frontend/src/graphql/Services.gql @@ -12,6 +12,7 @@ query Services( services { ...ServiceInfo branches { + id name slug instances { diff --git a/packages/cp-frontend/src/graphql/ServicesTopology.gql b/packages/cp-frontend/src/graphql/ServicesTopology.gql index 5bc7d44f..226ded5a 100644 --- a/packages/cp-frontend/src/graphql/ServicesTopology.gql +++ b/packages/cp-frontend/src/graphql/ServicesTopology.gql @@ -7,6 +7,7 @@ query Services($deploymentGroupSlug: String!) { services { ...ServiceInfo branches { + id name slug instances { diff --git a/packages/cp-frontend/src/state/store.js b/packages/cp-frontend/src/state/store.js index 817c1663..83be6937 100644 --- a/packages/cp-frontend/src/state/store.js +++ b/packages/cp-frontend/src/state/store.js @@ -20,10 +20,10 @@ const GQL_PROTOCOL = process.env.REACT_APP_GQL_PROTOCOL || 'https'; export const client = new ApolloClient({ dataIdFromObject: o => { - const id = o.slug - ? o.slug - : o.id - ? o.id + const id = o.id + ? o.id + : o.slug + ? o.slug : o.uuid ? o.uuid : o.timestamp diff --git a/packages/portal-api/lib/data/index.js b/packages/portal-api/lib/data/index.js index 0503e7b0..eb9e142d 100644 --- a/packages/portal-api/lib/data/index.js +++ b/packages/portal-api/lib/data/index.js @@ -22,7 +22,7 @@ const ParamCase = require('param-case'); const Penseur = require('penseur'); const Prometheus = require('prom-query'); const Triton = require('triton'); -const Uuid = require('uuid/v4'); +const Hasha = require('hasha'); const VAsync = require('vasync'); // local modules @@ -684,21 +684,6 @@ class Data extends EventEmitter { }); } - // static _calcCurrentScale ({ config, currentVersion }, cb) { - // return config.map(({ name }) => { - // const currentScale = Find(ForceArray(currentVersion ? currentVersion.scale : []), [ - // 'serviceName', - // name - // ]); - // - // return { - // id: Uuid(), - // serviceName: name, - // replicas: Number.isFinite(currentScale) ? currentScale : 1 - // }; - // }); - // } - _getCurrentScale (deploymentGroupId, cb) { const handleServiceInstanceMap = (err, result) => { if (err) { @@ -706,11 +691,14 @@ class Data extends EventEmitter { } cb(err, ForceArray(result.successes).map(({ name, instances }) => { - return { - id: Uuid(), + const scale = { serviceName: name, replicas: ForceArray(instances).length }; + + return Object.assign(scale, { + id: Hasha(JSON.stringify(scale)) + }); })); }; @@ -831,31 +819,37 @@ class Data extends EventEmitter { const getNewScale = () => { return ctx.currentScale.map(({ serviceName, replicas }) => { - return { - id: Uuid(), + const scale = { serviceName: serviceName, replicas: serviceName === ctx.service.name ? (ctx.serviceScale + ctx.diff) : replicas }; + + return Object.assign(scale, { + id: Hasha(JSON.stringify(scale)) + }); }); }; const handleScaleDown = () => { + const plan = { + type: 'REMOVE', + service: ctx.service.name, + toProcess: Math.abs(ctx.diff), + machines: ctx.instances.map(({ machineId }) => { + return machineId; + }) + }; + const payload = { manifest: ctx.manifest, deploymentGroupId: ctx.deploymentGroup.id, scale: getNewScale(), - plan: [{ - id: Uuid(), - type: 'REMOVE', - service: ctx.service.name, - toProcess: Math.abs(ctx.diff), - machines: ctx.instances.map(({ machineId }) => { - return machineId; - }) - }], - hasPlan: true + hasPlan: true, + plan: [Object.assign(plan, { + id: Hasha(JSON.stringify(plan)) + })] }; this._server.log(['debug'], `-> creating new Version for DOWN scale ${Util.inspect(payload)}`); @@ -865,20 +859,23 @@ class Data extends EventEmitter { }; const handleScaleUp = () => { + const plan = { + type: 'CREATE', + service: ctx.service.name, + toProcess: Math.abs(ctx.diff), + machines: ctx.instances.map(({ machineId }) => { + return machineId; + }) + }; + const payload = { manifest: ctx.manifest, deploymentGroupId: ctx.deploymentGroup.id, scale: getNewScale(), - plan: [{ - id: Uuid(), - type: 'CREATE', - service: ctx.service.name, - toProcess: Math.abs(ctx.diff), - machines: ctx.instances.map(({ machineId }) => { - return machineId; - }) - }], - hasPlan: true + hasPlan: true, + plan: [Object.assign(plan, { + id: Hasha(JSON.stringify(plan)) + })] }; this._server.log(['debug'], `-> creating new Version for UP scale ${Util.inspect(payload)}`); @@ -1089,49 +1086,54 @@ class Data extends EventEmitter { const action = Get(provision, 'plan.action', 'NOOP').toUpperCase(); if (!provision) { - return { - id: Uuid(), + const plan = { type: 'REMOVE', service: name, toProcess: machines.length, machines: machines }; + + return Object.assign(plan, { id: Hasha(JSON.stringify(plan)) }); } const ActionMap = { 'NOOP': () => { - return { - id: Uuid(), + const plan = { type: 'NOOP', service: name, machines }; + + return Object.assign(plan, { id: Hasha(JSON.stringify(plan)) }); }, 'CREATE': () => { - return { - id: Uuid(), + const plan = { type: 'CREATE', service: name, toProcess: scale, machines: machines }; + + return Object.assign(plan, { id: Hasha(JSON.stringify(plan)) }); }, 'RECREATE': () => { - return { - id: Uuid(), + const plan = { type: 'CREATE', service: name, toProcess: machines.length, machines: machines }; + + return Object.assign(plan, { id: Hasha(JSON.stringify(plan)) }); }, 'START': () => { - return { - id: Uuid(), + const plan = { type: 'START', service: name, machines }; + + return Object.assign(plan, { id: Hasha(JSON.stringify(plan)) }); } }; @@ -1532,7 +1534,9 @@ class Data extends EventEmitter { return Object.assign({}, branch, { instances: this._instancesFilter(branch.instances) }); - }).filter(({ name }) => { return name; }); + }).filter(({ name }) => { + return name; + }); return cb(null, Transform.fromService({ service, @@ -1600,7 +1604,9 @@ class Data extends EventEmitter { return Object.assign({}, branch, { instances: this._instancesFilter(branch.instances) }); - }).filter(({ name }) => { return name; }); + }).filter(({ name }) => { + return name; + }); return Transform.fromService({ service, diff --git a/packages/portal-api/lib/data/transform.js b/packages/portal-api/lib/data/transform.js index 41fb21f9..a8704237 100644 --- a/packages/portal-api/lib/data/transform.js +++ b/packages/portal-api/lib/data/transform.js @@ -1,7 +1,7 @@ 'use strict'; const ParamCase = require('param-case'); -const Uuid = require('uuid/v4'); +const Hasha = require('hasha'); const clean = (v) => { return JSON.parse(JSON.stringify(v)); @@ -134,7 +134,7 @@ exports.toManifest = function (clientManifest) { environment: clientManifest.environment, files: clientManifest.files ? clientManifest.files.map((m) => { return Object.assign({}, m, { - id: m.id || Uuid() + id: m.id || Hasha(JSON.stringify(m)) }); }) : undefined, raw: clientManifest.raw diff --git a/packages/portal-api/lib/watch/container-pilot.js b/packages/portal-api/lib/watch/container-pilot.js index ee4538af..74fe3588 100644 --- a/packages/portal-api/lib/watch/container-pilot.js +++ b/packages/portal-api/lib/watch/container-pilot.js @@ -9,7 +9,7 @@ const CIDRMatcher = require('cidr-matcher'); const ForceArray = require('force-array'); const Get = require('lodash.get'); const Uniq = require('lodash.uniq'); -const Uuid = require('uuid/v4'); +const Hasha = require('hasha'); const ParamCase = require('param-case'); const Queue = require('./queue'); @@ -403,12 +403,13 @@ module.exports = class ContainerPilotWatcher extends Events { return service; }, { - id: Uuid(), name: name, slug: slug, instances: [] }); + defaultBranch.id = Hasha(JSON.stringify(defaultBranch)); + const branches = instances.reduce((branches, { id, jobs }) => { if (defaultBranch.instances.indexOf(id) >= 0) { return branches; @@ -422,11 +423,12 @@ module.exports = class ContainerPilotWatcher extends Events { if (!branches[branchName]) { branches[branchName] = { - id: Uuid(), name: branchName, slug: ParamCase(branchName), instances: [] }; + + branches[branchName].id = Hasha(JSON.stringify(branches[branchName])); } branches[branchName].instances.push(id); diff --git a/packages/portal-api/package.json b/packages/portal-api/package.json index 13fa0b75..33234e21 100644 --- a/packages/portal-api/package.json +++ b/packages/portal-api/package.json @@ -38,6 +38,7 @@ "dockerode": "^2.5.0", "force-array": "^3.1.0", "graphi": "^3.0.0", + "hasha": "^3.0.0", "hoek": "^4.2.0", "joyent-cp-gql-schema": "^1.7.0", "lodash.find": "^4.6.0", diff --git a/yarn.lock b/yarn.lock index e50d91f7..9412b91e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -138,8 +138,8 @@ acorn@^4.0.3, acorn@^4.0.4: resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" acorn@^5.0.0, acorn@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" + version "5.1.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" add-stream@^1.0.0: version "1.0.0" @@ -578,10 +578,6 @@ ast-types-flow@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" -ast-types@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.0.tgz#c8721c8747ae4d5b29b929e99c5317b4e8745623" - ast-types@0.9.11: version "0.9.11" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.11.tgz#371177bb59232ff5ceaa1d09ee5cad705b1a5aa9" @@ -1558,7 +1554,7 @@ babelrc-rollup@3.0.0: dependencies: resolve "^1.1.7" -babylon@^6.1.0, babylon@^6.10.0, babylon@^6.12.0, babylon@^6.17.0, babylon@^6.17.2, babylon@^6.17.4, babylon@^6.18.0: +babylon@^6.1.0, babylon@^6.10.0, babylon@^6.12.0, babylon@^6.17.0, babylon@^6.17.2, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -1773,14 +1769,15 @@ browser-resolve@^1.11.2: resolve "1.1.7" browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + version "1.0.8" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.8.tgz#c8fa3b1b7585bb7ba77c5560b60996ddec6d5309" dependencies: - buffer-xor "^1.0.2" + buffer-xor "^1.0.3" cipher-base "^1.0.0" create-hash "^1.1.0" - evp_bytestokey "^1.0.0" + evp_bytestokey "^1.0.3" inherits "^2.0.1" + safe-buffer "^5.0.1" browserify-cipher@^1.0.0: version "1.0.0" @@ -1873,7 +1870,7 @@ buffer-indexof@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" -buffer-xor@^1.0.2: +buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -2056,12 +2053,12 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000721" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000721.tgz#cdc52efe8f82dd13916615b78e86f704ece61802" + version "1.0.30000725" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000725.tgz#20f2313d79401e02f61840f39698bc8c558811a6" caniuse-lite@^1.0.30000669, caniuse-lite@^1.0.30000697, caniuse-lite@^1.0.30000718: - version "1.0.30000721" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000721.tgz#931a21a7bd85016300328d21f126d84b73437d35" + version "1.0.30000725" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000725.tgz#4fa66372323c6ff46c8a1ba03f9dcd73d7a1cb39" capture-stack-trace@^1.0.0: version "1.0.0" @@ -2178,7 +2175,7 @@ checksum@^0.1.1: dependencies: optimist "~0.3.5" -chokidar@^1.4.2, chokidar@^1.4.3, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: +chokidar@^1.4.2, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -2198,8 +2195,8 @@ chownr@^1.0.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" ci-info@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" + version "1.1.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a" cidr-matcher@^1.0.5: version "1.0.5" @@ -2228,13 +2225,13 @@ clap@^1.0.9: dependencies: chalk "^1.1.3" -classnames@2.2.5, classnames@^2.2.5: +classnames@2.2.5, classnames@^2.2.3, classnames@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" clean-css@4.1.x: - version "4.1.7" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.7.tgz#b9aea4f85679889cf3eae8b40349ec4ebdfdd032" + version "4.1.8" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.8.tgz#061455b2494a750ac98f46d8d5ebb17c679ea9d1" dependencies: source-map "0.5.x" @@ -2361,11 +2358,15 @@ code@4.1.x, code@^4.1.0: dependencies: hoek "4.x.x" +codemirror@5.20.2: + version "5.20.2" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.20.2.tgz#918e0ece96d57a99030b2f8b33011284bed5217a" + codemirror@5.28.0: version "5.28.0" resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.28.0.tgz#2978d9280d671351a4f5737d06bbd681a0fd6f83" -codemirror@^5.18.2, codemirror@^5.28.0: +codemirror@^5.13.4, codemirror@^5.18.2, codemirror@^5.28.0: version "5.29.0" resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.29.0.tgz#e68de1350e2f0ce804a3930576d0ae318736e967" @@ -2544,19 +2545,6 @@ concordance@^3.0.0: semver "^5.3.0" well-known-symbols "^1.0.0" -configstore@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" - dependencies: - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" - write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" - configstore@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" @@ -3247,7 +3235,7 @@ d3-drag@1, d3-drag@1.1.1: d3-dispatch "1" d3-selection "1" -d3-dsv@1: +d3-dsv@1, d3-dsv@1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.7.tgz#137076663f398428fc3d031ae65370522492b78f" dependencies: @@ -3255,14 +3243,6 @@ d3-dsv@1: iconv-lite "0.4" rw "1" -d3-dsv@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.5.tgz#419f7db47f628789fc3fdb636e678449d0821136" - dependencies: - commander "2" - iconv-lite "0.4" - rw "1" - d3-ease@1, d3-ease@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.3.tgz#68bfbc349338a380c44d8acc4fbc3304aa2d8c0e" @@ -3316,9 +3296,9 @@ d3-random@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.0.tgz#6642e506c6fa3a648595d2b2469788a8d12529d3" -d3-request@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-request/-/d3-request-1.0.5.tgz#4daae946d1dd0d57dfe01f022956354958d51f23" +d3-request@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-request/-/d3-request-1.0.6.tgz#a1044a9ef4ec28c824171c9379fae6d79474b19f" dependencies: d3-collection "1" d3-dispatch "1" @@ -3357,9 +3337,9 @@ d3-time@1, d3-time@1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.7.tgz#94caf6edbb7879bb809d0d1f7572bc48482f7270" -d3-timer@1, d3-timer@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.6.tgz#4044bf15d7025c06ce7d1149f73cd07b54dbd784" +d3-timer@1, d3-timer@1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.7.tgz#df9650ca587f6c96607ff4e60cc38229e8dd8531" d3-transition@1, d3-transition@1.1.0: version "1.1.0" @@ -3387,8 +3367,8 @@ d3-zoom@1.5.0: d3-transition "1" d3@^4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-4.10.0.tgz#0bcca3a3b614e2fd45b1b5bd0b9164d57352a862" + version "4.10.2" + resolved "https://registry.yarnpkg.com/d3/-/d3-4.10.2.tgz#d401b2bc0372a77e6822f278c0e4b4090206babd" dependencies: d3-array "1.2.0" d3-axis "1.0.8" @@ -3398,7 +3378,7 @@ d3@^4.10.0: d3-color "1.0.3" d3-dispatch "1.0.3" d3-drag "1.1.1" - d3-dsv "1.0.5" + d3-dsv "1.0.7" d3-ease "1.0.3" d3-force "1.0.6" d3-format "1.2.0" @@ -3410,13 +3390,13 @@ d3@^4.10.0: d3-quadtree "1.0.3" d3-queue "3.0.7" d3-random "1.1.0" - d3-request "1.0.5" + d3-request "1.0.6" d3-scale "1.0.6" d3-selection "1.1.0" d3-shape "1.2.0" d3-time "1.0.7" d3-time-format "2.0.5" - d3-timer "1.0.6" + d3-timer "1.0.7" d3-transition "1.1.0" d3-voronoi "1.1.2" d3-zoom "1.5.0" @@ -3650,8 +3630,8 @@ dictionary-en-us@^1.0.2: resolved "https://registry.yarnpkg.com/dictionary-en-us/-/dictionary-en-us-1.2.1.tgz#d21009edaccab49fae8eefdc483da83438526b5f" diff@3.3.x, diff@^3.0.0, diff@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.0.tgz#056695150d7aa93237ca7e378ac3b1682b7963b9" + version "3.3.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" diffie-hellman@^5.0.0: version "5.0.2" @@ -3857,7 +3837,7 @@ duplexer@^0.1.1, duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.1.2, duplexify@^3.2.0, duplexify@^3.4.2: +duplexify@^3.1.2, duplexify@^3.4.2: version "3.5.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd" dependencies: @@ -3964,8 +3944,8 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.7.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.1.tgz#fd85a3bdfa67786ce7be7e1584678e119cd70c04" + version "1.8.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee" dependencies: es-to-primitive "^1.1.1" function-bind "^1.1.1" @@ -4015,7 +3995,7 @@ es6-object-assign@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" -es6-promise@^3.0.2: +es6-promise@^3.0.2, es6-promise@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" @@ -4082,8 +4062,8 @@ eslint-config-hapi@10.x.x: resolved "https://registry.yarnpkg.com/eslint-config-hapi/-/eslint-config-hapi-10.1.0.tgz#e65720917575da292c4ffe8d59ad9aa4e5b0a2ac" eslint-config-prettier@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.3.0.tgz#b75b1eabea0c8b97b34403647ee25db349b9d8a0" + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.4.0.tgz#fb7cf29c0ab2ba61af5164fb1930f9bef3be2872" dependencies: get-stdin "^5.0.1" @@ -4265,7 +4245,7 @@ eslint@4.4.1: table "^4.0.1" text-table "~0.2.0" -eslint@4.5.x, eslint@4.x.x, eslint@^4.5.0: +eslint@4.5.x: version "4.5.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.5.0.tgz#bb75d3b8bde97fb5e13efcd539744677feb019c3" dependencies: @@ -4307,6 +4287,48 @@ eslint@4.5.x, eslint@4.x.x, eslint@^4.5.0: table "^4.0.1" text-table "~0.2.0" +eslint@4.x.x, eslint@^4.5.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.6.1.tgz#ddc7fc7fd70bf93205b0b3449bb16a1e9e7d4950" + dependencies: + ajv "^5.2.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^2.6.8" + doctrine "^2.0.0" + eslint-scope "^3.7.1" + espree "^3.5.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^9.17.0" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^4.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "^4.0.1" + text-table "~0.2.0" + espower-location-detector@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" @@ -4323,7 +4345,7 @@ espree@3.5.x, espree@^3.5.0: acorn "^5.1.1" acorn-jsx "^3.0.0" -esprima@^2.1.0, esprima@^2.6.0, esprima@^2.7.1, esprima@~2.7.1: +esprima@^2.1.0, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" @@ -4407,9 +4429,9 @@ eventsource@0.1.6: dependencies: original ">=0.0.5" -evp_bytestokey@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz#f66bb88ecd57f71a766821e20283ea38c68bf80a" +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" @@ -5194,21 +5216,6 @@ good@^7.3.0: oppsy "1.x.x" pumpify "1.3.x" -got@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" - dependencies: - duplexify "^3.2.0" - infinity-agent "^2.0.0" - is-redirect "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - nested-error-stacks "^1.0.0" - object-assign "^3.0.0" - prepend-http "^1.0.0" - read-all-stream "^3.0.0" - timed-out "^2.0.0" - got@^5.0.0: version "5.7.1" resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" @@ -5724,7 +5731,7 @@ iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" -ignore-by-default@^1.0.0: +ignore-by-default@^1.0.0, ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" @@ -5771,10 +5778,6 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" -infinity-agent@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -6223,14 +6226,14 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" istanbul-api@^1.1.1: - version "1.1.13" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.13.tgz#7197f64413600ebdfec6347a2dc3d4e03f97ed5a" + version "1.1.14" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.14.tgz#25bc5701f7c680c0ffff913de46e3619a3a6e680" dependencies: async "^2.1.4" fileset "^2.0.2" istanbul-lib-coverage "^1.1.1" istanbul-lib-hook "^1.0.7" - istanbul-lib-instrument "^1.7.5" + istanbul-lib-instrument "^1.8.0" istanbul-lib-report "^1.1.1" istanbul-lib-source-maps "^1.2.1" istanbul-reports "^1.1.2" @@ -6248,15 +6251,15 @@ istanbul-lib-hook@^1.0.7: dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.7.4, istanbul-lib-instrument@^1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.5.tgz#adb596f8f0cb8b95e739206351a38a586af21b1e" +istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.2, istanbul-lib-instrument@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz#66f6c9421cc9ec4704f76f2db084ba9078a2b532" dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" babel-traverse "^6.18.0" babel-types "^6.18.0" - babylon "^6.17.4" + babylon "^6.18.0" istanbul-lib-coverage "^1.1.1" semver "^5.3.0" @@ -6856,6 +6859,10 @@ known-css-properties@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.2.0.tgz#899c94be368e55b42d7db8d5be7d73a4a4a41454" +known-css-properties@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.3.0.tgz#a3d135bbfc60ee8c6eacf2f7e7e6f2d4755e49a4" + lab@^14.2.2: version "14.2.2" resolved "https://registry.yarnpkg.com/lab/-/lab-14.2.2.tgz#9f8bf3a1c87fd7e5bf06ae20a7e15d064e8893aa" @@ -6885,12 +6892,6 @@ last-line-stream@^1.0.0: dependencies: through2 "^2.0.0" -latest-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" - dependencies: - package-json "^1.0.0" - latest-version@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" @@ -7131,7 +7132,7 @@ lodash.cond@^4.3.0: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" -lodash.debounce@^4.0.3, lodash.debounce@^4.0.8: +lodash.debounce@^4.0.3, lodash.debounce@^4.0.4, lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -7305,6 +7306,12 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.0.0.tgz#595e63be4d5c8cbf294a9e09e0d5629f5913fc0c" + dependencies: + chalk "^2.0.1" + loglevel@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.4.1.tgz#95b383f91a3c2756fd4ab093667e4309161f2bcd" @@ -7546,19 +7553,15 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.x.x, "mime-db@>= 1.29.0 < 2": +mime-db@1.x.x, "mime-db@>= 1.29.0 < 2", mime-db@~1.30.0: version "1.30.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" -mime-db@~1.29.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" - mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.7: - version "2.1.16" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" dependencies: - mime-db "~1.29.0" + mime-db "~1.30.0" mime@1.3.4: version "1.3.4" @@ -7763,12 +7766,6 @@ negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" -nested-error-stacks@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" - dependencies: - inherits "~2.0.1" - nigel@2.x.x: version "2.0.2" resolved "https://registry.yarnpkg.com/nigel/-/nigel-2.0.2.tgz#93a1866fb0c52d87390aa75e2b161f4b5c75e5b1" @@ -7891,19 +7888,19 @@ node-uuid@^1.4.6: resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" nodemon@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.11.0.tgz#226c562bd2a7b13d3d7518b49ad4828a3623d06c" + version "1.12.0" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.12.0.tgz#e538548a777340a19f855c4f087b7e528aa3feda" dependencies: - chokidar "^1.4.3" - debug "^2.2.0" - es6-promise "^3.0.2" - ignore-by-default "^1.0.0" + chokidar "^1.7.0" + debug "^2.6.8" + es6-promise "^3.3.1" + ignore-by-default "^1.0.1" lodash.defaults "^3.1.2" - minimatch "^3.0.0" - ps-tree "^1.0.1" - touch "1.0.0" + minimatch "^3.0.4" + ps-tree "^1.1.0" + touch "^3.1.0" undefsafe "0.0.3" - update-notifier "0.5.0" + update-notifier "^2.2.0" nopt@^2.2.0: version "2.2.1" @@ -8005,8 +8002,8 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.1.tgz#7ae9b07b0ea804db7e25f05cb5fe4097d4e4949f" nyc@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.1.0.tgz#d6b3c5e16892a25af63138ba484676aa8a22eda7" + version "11.2.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.2.0.tgz#8bfe9a3ddb7be5c5f9fa5ab6e6949c18b7d34ca1" dependencies: archy "^1.0.0" arrify "^1.0.1" @@ -8020,7 +8017,7 @@ nyc@^11.1.0: glob "^7.0.6" istanbul-lib-coverage "^1.1.1" istanbul-lib-hook "^1.0.7" - istanbul-lib-instrument "^1.7.4" + istanbul-lib-instrument "^1.8.0" istanbul-lib-report "^1.1.1" istanbul-lib-source-maps "^1.2.1" istanbul-reports "^1.1.1" @@ -8044,10 +8041,6 @@ object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^ version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - object-hash@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.1.8.tgz#28a659cf987d96a4dabe7860289f3b5326c4a03c" @@ -8256,13 +8249,6 @@ package-hash@^2.0.0: md5-hex "^2.0.0" release-zalgo "^1.0.0" -package-json@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" - dependencies: - got "^3.2.0" - registry-url "^3.0.0" - package-json@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" @@ -8842,13 +8828,14 @@ postcss-reporter@^3.0.0: log-symbols "^1.0.2" postcss "^5.0.0" -postcss-reporter@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-4.0.0.tgz#13356c365c36783adde88e28e09dbba6ec6c6501" +postcss-reporter@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-5.0.0.tgz#a14177fd1342829d291653f2786efd67110332c3" dependencies: - chalk "^1.0.0" - lodash "^4.1.0" - log-symbols "^1.0.2" + chalk "^2.0.1" + lodash "^4.17.4" + log-symbols "^2.0.0" + postcss "^6.0.8" postcss-resolve-nested-selector@^0.1.1: version "0.1.1" @@ -8912,7 +8899,7 @@ postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0. source-map "^0.5.6" supports-color "^3.2.3" -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.10, postcss@^6.0.2, postcss@^6.0.3, postcss@^6.0.6: +postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.10, postcss@^6.0.2, postcss@^6.0.3, postcss@^6.0.6, postcss@^6.0.8: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.10.tgz#c311b89734483d87a91a56dc9e53f15f4e6e84e4" dependencies: @@ -9050,7 +9037,7 @@ prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" -ps-tree@^1.0.1: +ps-tree@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" dependencies: @@ -9267,6 +9254,14 @@ react-codemirror2@0.0.13: dependencies: codemirror "5.28.0" +react-codemirror@0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/react-codemirror/-/react-codemirror-0.2.6.tgz#e71e35717ce6effae68df1dbf2b5a75b84a44f84" + dependencies: + classnames "^2.2.3" + codemirror "^5.13.4" + lodash.debounce "^4.0.4" + react-codemirror@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/react-codemirror/-/react-codemirror-1.0.0.tgz#91467b53b1f5d80d916a2fd0b4c7adb85a9001ba" @@ -9302,9 +9297,9 @@ react-dev-utils@^3.0.2: strip-ansi "3.0.1" text-table "0.2.0" -react-dev-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-4.0.0.tgz#76467b380946197e738aab5683336b5439e979ba" +react-dev-utils@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-4.0.1.tgz#106ae3d29f811c169d459bb9215a5933b7e11fb6" dependencies: address "1.0.2" babel-code-frame "6.22.0" @@ -9318,7 +9313,7 @@ react-dev-utils@^4.0.0: inquirer "3.2.1" is-root "1.0.0" opn "5.1.0" - react-error-overlay "^2.0.0" + react-error-overlay "^2.0.1" recursive-readdir "2.2.1" shell-quote "1.6.1" sockjs-client "1.1.4" @@ -9326,10 +9321,10 @@ react-dev-utils@^4.0.0: text-table "0.2.0" react-docgen-displayname-handler@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/react-docgen-displayname-handler/-/react-docgen-displayname-handler-1.0.0.tgz#9fc1b071cfaad01e2546b258382dec33c59e107b" + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-docgen-displayname-handler/-/react-docgen-displayname-handler-1.0.1.tgz#6944875d19c51d3f657f2506610958bb19c66fcc" dependencies: - recast "0.11.12" + recast "0.12.6" react-docgen@ramitos/react-docgen#7a687c0: version "3.0.0-beta6" @@ -9352,9 +9347,9 @@ react-docgen@ramitos/react-docgen#7a687c0: object-assign "^4.1.0" prop-types "^15.5.10" -react-error-overlay@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-2.0.0.tgz#0251951eb6315dee45f532f3f59f854086c1462e" +react-error-overlay@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-2.0.1.tgz#622e3cc85cdfb4bcfc8e93f47ddcddd38e1e176e" dependencies: anser "1.4.1" babel-code-frame "6.22.0" @@ -9418,8 +9413,8 @@ react-router@^4.1.1, react-router@^4.2.0: warning "^3.0.0" react-scripts@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.0.12.tgz#a08a8214431c45db7424246d6f5510cc19b42927" + version "1.0.13" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.0.13.tgz#a51d775a4b195ab2653c562b735735c8f70cba0e" dependencies: autoprefixer "7.1.2" babel-core "6.25.0" @@ -9448,7 +9443,7 @@ react-scripts@^1.0.12: postcss-flexbugs-fixes "3.2.0" postcss-loader "2.0.6" promise "8.0.1" - react-dev-utils "^4.0.0" + react-dev-utils "^4.0.1" style-loader "0.18.2" sw-precache-webpack-plugin "0.11.4" url-loader "0.5.9" @@ -9692,16 +9687,7 @@ readjson@^1.1.3: dependencies: try-catch "~1.0.0" -recast@0.11.12: - version "0.11.12" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.12.tgz#a79e4d3f82d5d72a82ee177aeaa791e793bbe5d6" - dependencies: - ast-types "0.9.0" - esprima "~2.7.1" - private "~0.1.5" - source-map "~0.5.0" - -recast@^0.12.6: +recast@0.12.6, recast@^0.12.6: version "0.12.6" resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.6.tgz#4b0fb82feb1d10b3bd62d34943426d9b3ed30d4c" dependencies: @@ -9857,7 +9843,7 @@ registry-auth-token@^3.0.1: rc "^1.1.6" safe-buffer "^5.0.1" -registry-url@^3.0.0, registry-url@^3.0.3: +registry-url@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" dependencies: @@ -10021,12 +10007,6 @@ repeat-string@^1.5.0, repeat-string@^1.5.2, repeat-string@^1.5.4: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" -repeating@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" - dependencies: - is-finite "^1.0.0" - repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" @@ -10596,14 +10576,16 @@ snake-case@^2.1.0: no-case "^2.2.0" snapguidist@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/snapguidist/-/snapguidist-2.0.0.tgz#430ddf17e0c04da47725210f6ee5d9ba7c4268d9" + version "2.0.1" + resolved "https://registry.yarnpkg.com/snapguidist/-/snapguidist-2.0.1.tgz#0440b019c75ea29145967227c5ccd1e53dbd3177" dependencies: body-parser "1.15.2" classnames "2.2.5" + codemirror "5.20.2" cors "2.8.1" jest-diff "18.1.0" jest-snapshot "18.1.0" + react-codemirror "0.2.6" react-test-renderer "15.6.1" strip-ansi "3.0.1" unfetch "2.1.2" @@ -10662,8 +10644,8 @@ source-map-resolve@^0.3.0: urix "~0.1.0" source-map-support@0.4.x, source-map-support@^0.4.0, source-map-support@^0.4.15: - version "0.4.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.16.tgz#16fecf98212467d017d586a2af68d628b9421cd8" + version "0.4.17" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430" dependencies: source-map "^0.5.6" @@ -10923,7 +10905,7 @@ strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" -string-length@^1.0.0, string-length@^1.0.1: +string-length@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" dependencies: @@ -11156,14 +11138,14 @@ stylelint-selector-no-utility@^1.5.0: stylelint "^7.0.0" stylelint@>=5.0.0, stylelint@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-8.0.0.tgz#87611211776cb315c93fcf6c58bc261d3c92612e" + version "8.1.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-8.1.1.tgz#9feeed699598b27427715551ed7786db341c19ad" dependencies: autoprefixer "^7.1.2" balanced-match "^1.0.0" chalk "^2.0.1" cosmiconfig "^2.1.3" - debug "^2.6.8" + debug "^3.0.0" execall "^1.0.0" file-entry-cache "^2.0.0" get-stdin "^5.0.1" @@ -11172,9 +11154,9 @@ stylelint@>=5.0.0, stylelint@^8.0.0: html-tags "^2.0.0" ignore "^3.3.3" imurmurhash "^0.1.4" - known-css-properties "^0.2.0" + known-css-properties "^0.3.0" lodash "^4.17.4" - log-symbols "^1.0.2" + log-symbols "^2.0.0" mathml-tag-names "^2.0.1" meow "^3.7.0" micromatch "^2.3.11" @@ -11183,7 +11165,7 @@ stylelint@>=5.0.0, stylelint@^8.0.0: postcss "^6.0.6" postcss-less "^1.1.0" postcss-media-query-parser "^0.2.3" - postcss-reporter "^4.0.0" + postcss-reporter "^5.0.0" postcss-resolve-nested-selector "^0.1.1" postcss-scss "^1.0.2" postcss-selector-parser "^2.2.3" @@ -11499,8 +11481,8 @@ test-exclude@^4.1.1: require-main-filename "^1.0.1" text-extensions@^1.0.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.5.0.tgz#d1cb2d14b5d0bc45bfdca8a08a473f68c7eb0cbc" + version "1.6.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.6.0.tgz#771561b26022783a45f5b6c2e78ad6e7de9fe322" text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" @@ -11565,10 +11547,6 @@ time-zone@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" -timed-out@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" - timed-out@^3.0.0: version "3.1.3" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" @@ -11652,9 +11630,9 @@ toppsy@^1.1.0: oppsy "^1.0.2" putmetric "^1.0.1" -touch@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" dependencies: nopt "~1.0.10" @@ -12018,18 +11996,6 @@ unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" -update-notifier@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.5.0.tgz#07b5dc2066b3627ab3b4f530130f7eddda07a4cc" - dependencies: - chalk "^1.0.0" - configstore "^1.0.0" - is-npm "^1.0.0" - latest-version "^1.0.0" - repeating "^1.1.2" - semver-diff "^2.0.0" - string-length "^1.0.0" - update-notifier@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" @@ -12043,7 +12009,7 @@ update-notifier@^1.0.3: semver-diff "^2.0.0" xdg-basedir "^2.0.0" -update-notifier@^2.1.0: +update-notifier@^2.1.0, update-notifier@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f" dependencies: