diff options
author | Clement Ho <ClemMakesApps@gmail.com> | 2017-05-19 18:56:02 -0500 |
---|---|---|
committer | Clement Ho <ClemMakesApps@gmail.com> | 2017-05-19 20:04:26 -0500 |
commit | 44765724b105eaf29e1ac689d5509cb3dc416216 (patch) | |
tree | 3b60d5043e32e9b4e6281ce24940c486b8bdf1a9 | |
parent | 9d2d104293f7a4e012de14c6df2601aa59bfe884 (diff) | |
download | gitlab-ce-add-svg-optimizer.tar.gz |
Test svg optimizeradd-svg-optimizer
-rw-r--r-- | .gitlab-ci.yml | 545 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | scripts/check_svg.js | 57 | ||||
-rw-r--r-- | yarn.lock | 25 |
4 files changed, 81 insertions, 548 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 45f1638f871..23941e61eac 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,545 +1,6 @@ image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.3-golang-1.8-git-2.7-phantomjs-2.1-node-7.1-postgresql-9.6" -cache: - key: "ruby-233-with-yarn" - paths: - - vendor/ruby - - .yarn-cache/ - -variables: - MYSQL_ALLOW_EMPTY_PASSWORD: "1" - RAILS_ENV: "test" - NODE_ENV: "test" - SIMPLECOV: "true" - GIT_DEPTH: "20" - GIT_SUBMODULE_STRATEGY: "none" - PHANTOMJS_VERSION: "2.1.1" - GET_SOURCES_ATTEMPTS: "3" - KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/rspec_report-master.json - KNAPSACK_SPINACH_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/spinach_report-master.json - -before_script: - - bundle --version - - source scripts/utils.sh - - source scripts/prepare_build.sh - -stages: -- build -- prepare -- test -- post-test -- pages - -# Predefined scopes -.dedicated-runner: &dedicated-runner - tags: - - gitlab-org - -.knapsack-state: &knapsack-state - services: [] - variables: - SETUP_DB: "false" - USE_BUNDLE_INSTALL: "false" - KNAPSACK_S3_BUCKET: "gitlab-ce-cache" - cache: - key: "knapsack" - paths: - - knapsack/ - artifacts: - expire_in: 31d - paths: - - knapsack/ - -.use-pg: &use-pg - services: - - postgres:latest - - redis:alpine - -.use-mysql: &use-mysql - services: - - mysql:latest - - redis:alpine - -.only-master-and-ee-or-mysql: &only-master-and-ee-or-mysql - only: - - /mysql/ - - master@gitlab-org/gitlab-ce - - master@gitlab/gitlabhq - - tags@gitlab-org/gitlab-ce - - tags@gitlab/gitlabhq - - //@gitlab-org/gitlab-ee - - //@gitlab/gitlab-ee - -# Skip all jobs except the ones that begin with 'docs/'. -# Used for commits including ONLY documentation changes. -# https://docs.gitlab.com/ce/development/writing_documentation.html#testing -.except-docs: &except-docs - except: - - /(^docs[\/-].*|.*-docs$)/ - -.rspec-knapsack: &rspec-knapsack - stage: test - <<: *dedicated-runner - script: - - JOB_NAME=( $CI_JOB_NAME ) - - export CI_NODE_INDEX=${JOB_NAME[-2]} - - export CI_NODE_TOTAL=${JOB_NAME[-1]} - - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - - export KNAPSACK_GENERATE_REPORT=true - - export CACHE_CLASSES=true - - cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH} - - knapsack rspec "--color --format documentation" - artifacts: - expire_in: 31d - when: always - paths: - - coverage/ - - knapsack/ - - tmp/capybara/ - -.rspec-knapsack-pg: &rspec-knapsack-pg - <<: *rspec-knapsack - <<: *use-pg - <<: *except-docs - -.rspec-knapsack-mysql: &rspec-knapsack-mysql - <<: *rspec-knapsack - <<: *use-mysql - <<: *only-master-and-ee-or-mysql - <<: *except-docs - -.spinach-knapsack: &spinach-knapsack - stage: test - <<: *dedicated-runner - script: - - JOB_NAME=( $CI_JOB_NAME ) - - export CI_NODE_INDEX=${JOB_NAME[-2]} - - export CI_NODE_TOTAL=${JOB_NAME[-1]} - - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - - export KNAPSACK_GENERATE_REPORT=true - - export CACHE_CLASSES=true - - cp ${KNAPSACK_SPINACH_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH} - - knapsack spinach "-r rerun" || retry '[[ -e tmp/spinach-rerun.txt ]] && bundle exec spinach -r rerun $(cat tmp/spinach-rerun.txt)' - artifacts: - expire_in: 31d - when: always - paths: - - coverage/ - - knapsack/ - - tmp/capybara/ - -.spinach-knapsack-pg: &spinach-knapsack-pg - <<: *spinach-knapsack - <<: *use-pg - <<: *except-docs - -.spinach-knapsack-mysql: &spinach-knapsack-mysql - <<: *spinach-knapsack - <<: *use-mysql - <<: *only-master-and-ee-or-mysql - <<: *except-docs - -.only-canonical-masters: &only-canonical-masters - only: - - master@gitlab-org/gitlab-ce - - master@gitlab-org/gitlab-ee - - master@gitlab/gitlabhq - - master@gitlab/gitlab-ee - -# Trigger a package build on omnibus-gitlab repository - -build-package: - before_script: [] - services: [] - variables: - SETUP_DB: "false" - USE_BUNDLE_INSTALL: "false" - stage: build - when: manual - script: - - scripts/trigger-build - -# Prepare and merge knapsack tests -knapsack: - <<: *knapsack-state - <<: *dedicated-runner - <<: *except-docs - stage: prepare - script: - - mkdir -p knapsack/${CI_PROJECT_NAME}/ - - wget -O $KNAPSACK_RSPEC_SUITE_REPORT_PATH http://${KNAPSACK_S3_BUCKET}.s3.amazonaws.com/$KNAPSACK_RSPEC_SUITE_REPORT_PATH || rm $KNAPSACK_RSPEC_SUITE_REPORT_PATH - - wget -O $KNAPSACK_SPINACH_SUITE_REPORT_PATH http://${KNAPSACK_S3_BUCKET}.s3.amazonaws.com/$KNAPSACK_SPINACH_SUITE_REPORT_PATH || rm $KNAPSACK_SPINACH_SUITE_REPORT_PATH - - '[[ -f $KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${KNAPSACK_RSPEC_SUITE_REPORT_PATH}' - - '[[ -f $KNAPSACK_SPINACH_SUITE_REPORT_PATH ]] || echo "{}" > ${KNAPSACK_SPINACH_SUITE_REPORT_PATH}' - -update-knapsack: - <<: *knapsack-state - <<: *dedicated-runner - <<: *only-canonical-masters - stage: post-test - script: - - scripts/merge-reports ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec-pg_node_*.json - - scripts/merge-reports ${KNAPSACK_SPINACH_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/spinach-pg_node_*.json - - '[[ -z ${KNAPSACK_S3_BUCKET} ]] || scripts/sync-reports put $KNAPSACK_S3_BUCKET $KNAPSACK_RSPEC_SUITE_REPORT_PATH $KNAPSACK_SPINACH_SUITE_REPORT_PATH' - - rm -f knapsack/${CI_PROJECT_NAME}/*_node_*.json - -setup-test-env: - <<: *use-pg - <<: *dedicated-runner - <<: *except-docs - stage: prepare - script: - - node --version - - yarn install --pure-lockfile --cache-folder .yarn-cache - - bundle exec rake gitlab:assets:compile - - bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init' - artifacts: - expire_in: 7d - paths: - - node_modules - - public/assets - - tmp/tests - -rspec-pg 0 20: *rspec-knapsack-pg -rspec-pg 1 20: *rspec-knapsack-pg -rspec-pg 2 20: *rspec-knapsack-pg -rspec-pg 3 20: *rspec-knapsack-pg -rspec-pg 4 20: *rspec-knapsack-pg -rspec-pg 5 20: *rspec-knapsack-pg -rspec-pg 6 20: *rspec-knapsack-pg -rspec-pg 7 20: *rspec-knapsack-pg -rspec-pg 8 20: *rspec-knapsack-pg -rspec-pg 9 20: *rspec-knapsack-pg -rspec-pg 10 20: *rspec-knapsack-pg -rspec-pg 11 20: *rspec-knapsack-pg -rspec-pg 12 20: *rspec-knapsack-pg -rspec-pg 13 20: *rspec-knapsack-pg -rspec-pg 14 20: *rspec-knapsack-pg -rspec-pg 15 20: *rspec-knapsack-pg -rspec-pg 16 20: *rspec-knapsack-pg -rspec-pg 17 20: *rspec-knapsack-pg -rspec-pg 18 20: *rspec-knapsack-pg -rspec-pg 19 20: *rspec-knapsack-pg - -rspec-mysql 0 20: *rspec-knapsack-mysql -rspec-mysql 1 20: *rspec-knapsack-mysql -rspec-mysql 2 20: *rspec-knapsack-mysql -rspec-mysql 3 20: *rspec-knapsack-mysql -rspec-mysql 4 20: *rspec-knapsack-mysql -rspec-mysql 5 20: *rspec-knapsack-mysql -rspec-mysql 6 20: *rspec-knapsack-mysql -rspec-mysql 7 20: *rspec-knapsack-mysql -rspec-mysql 8 20: *rspec-knapsack-mysql -rspec-mysql 9 20: *rspec-knapsack-mysql -rspec-mysql 10 20: *rspec-knapsack-mysql -rspec-mysql 11 20: *rspec-knapsack-mysql -rspec-mysql 12 20: *rspec-knapsack-mysql -rspec-mysql 13 20: *rspec-knapsack-mysql -rspec-mysql 14 20: *rspec-knapsack-mysql -rspec-mysql 15 20: *rspec-knapsack-mysql -rspec-mysql 16 20: *rspec-knapsack-mysql -rspec-mysql 17 20: *rspec-knapsack-mysql -rspec-mysql 18 20: *rspec-knapsack-mysql -rspec-mysql 19 20: *rspec-knapsack-mysql - -spinach-pg 0 10: *spinach-knapsack-pg -spinach-pg 1 10: *spinach-knapsack-pg -spinach-pg 2 10: *spinach-knapsack-pg -spinach-pg 3 10: *spinach-knapsack-pg -spinach-pg 4 10: *spinach-knapsack-pg -spinach-pg 5 10: *spinach-knapsack-pg -spinach-pg 6 10: *spinach-knapsack-pg -spinach-pg 7 10: *spinach-knapsack-pg -spinach-pg 8 10: *spinach-knapsack-pg -spinach-pg 9 10: *spinach-knapsack-pg - -spinach-mysql 0 10: *spinach-knapsack-mysql -spinach-mysql 1 10: *spinach-knapsack-mysql -spinach-mysql 2 10: *spinach-knapsack-mysql -spinach-mysql 3 10: *spinach-knapsack-mysql -spinach-mysql 4 10: *spinach-knapsack-mysql -spinach-mysql 5 10: *spinach-knapsack-mysql -spinach-mysql 6 10: *spinach-knapsack-mysql -spinach-mysql 7 10: *spinach-knapsack-mysql -spinach-mysql 8 10: *spinach-knapsack-mysql -spinach-mysql 9 10: *spinach-knapsack-mysql - -# Static analysis jobs -.ruby-static-analysis: &ruby-static-analysis - variables: - SIMPLECOV: "false" - SETUP_DB: "false" - -.rake-exec: &rake-exec - <<: *ruby-static-analysis - <<: *dedicated-runner - <<: *except-docs - stage: test - script: - - bundle exec rake $CI_JOB_NAME - -static-analysis: - <<: *ruby-static-analysis - <<: *dedicated-runner - <<: *except-docs - stage: test - script: - - scripts/static-analysis - -# Documentation checks: -# - Check validity of relative links -# - Make sure cURL examples in API docs use the full switches -docs lint: - image: "registry.gitlab.com/gitlab-org/gitlab-build-images:nanoc-bootstrap-ruby-2.4-alpine" - stage: test - <<: *dedicated-runner - cache: {} - dependencies: [] - before_script: [] - script: - - scripts/lint-doc.sh - - mv doc/ /nanoc/content/ - - cd /nanoc - # Build HTML from Markdown - - bundle exec nanoc - # Check the internal links - - bundle exec nanoc check internal_links - -downtime_check: - <<: *rake-exec - except: - - master - - tags - - /^[\d-]+-stable(-ee)?$/ - - /(^docs[\/-].*|.*-docs$)/ - -ee_compat_check: - <<: *rake-exec - only: - - branches@gitlab-org/gitlab-ce - except: - - master - - tags - - /^[\d-]+-stable(-ee)?$/ - allow_failure: yes - cache: - key: "ee_compat_check_repo" - paths: - - ee_compat_check/ee-repo/ - artifacts: - name: "${CI_JOB_NAME}_${CI_COMIT_REF_NAME}_${CI_COMMIT_SHA}" - when: on_failure - expire_in: 10d - paths: - - ee_compat_check/patches/*.patch - -# DB migration, rollback, and seed jobs -.db-migrate-reset: &db-migrate-reset - stage: test - <<: *dedicated-runner - <<: *except-docs - script: - - bundle exec rake db:migrate:reset - -db:migrate:reset-pg: - <<: *db-migrate-reset - <<: *use-pg - -db:migrate:reset-mysql: - <<: *db-migrate-reset - <<: *use-mysql - -.migration-paths: &migration-paths - stage: test - <<: *dedicated-runner - variables: - SETUP_DB: "false" - <<: *only-canonical-masters - script: - - git fetch origin v8.14.10 - - git checkout -f FETCH_HEAD - - bundle install $BUNDLE_INSTALL_FLAGS - - bundle exec rake db:drop db:create db:schema:load db:seed_fu - - git checkout $CI_COMMIT_SHA - - bundle install $BUNDLE_INSTALL_FLAGS - - . scripts/prepare_build.sh - - bundle exec rake db:migrate - -migration:path-pg: - <<: *migration-paths - <<: *use-pg - -migration:path-mysql: - <<: *migration-paths - <<: *use-mysql - -.db-rollback: &db-rollback - stage: test - <<: *dedicated-runner - <<: *except-docs - script: - - bundle exec rake db:rollback STEP=120 - - bundle exec rake db:migrate - -db:rollback-pg: - <<: *db-rollback - <<: *use-pg - -db:rollback-mysql: - <<: *db-rollback - <<: *use-mysql - -.db-seed_fu: &db-seed_fu - stage: test - <<: *dedicated-runner - <<: *except-docs - variables: - SIZE: "1" - SETUP_DB: "false" - RAILS_ENV: "development" - script: - - git clone https://gitlab.com/gitlab-org/gitlab-test.git - /home/git/repositories/gitlab-org/gitlab-test.git - - bundle exec rake db:setup db:seed_fu - artifacts: - when: on_failure - expire_in: 1d - paths: - - log/development.log - -db:seed_fu-pg: - <<: *db-seed_fu - <<: *use-pg - -db:seed_fu-mysql: - <<: *db-seed_fu - <<: *use-mysql - -# Frontend-related jobs -gitlab:assets:compile: - stage: test - <<: *dedicated-runner - <<: *except-docs - dependencies: [] - variables: - NODE_ENV: "production" - RAILS_ENV: "production" - SETUP_DB: "false" - USE_DB: "false" - SKIP_STORAGE_VALIDATION: "true" - WEBPACK_REPORT: "true" - script: - - yarn install --pure-lockfile --production --cache-folder .yarn-cache - - bundle exec rake gitlab:assets:compile - artifacts: - name: webpack-report - expire_in: 31d - paths: - - webpack-report/ - -karma: - stage: test - <<: *use-pg - <<: *dedicated-runner - <<: *except-docs - variables: - BABEL_ENV: "coverage" - script: - - bundle exec rake karma - coverage: '/^Statements *: (\d+\.\d+%)/' - artifacts: - name: coverage-javascript - expire_in: 31d - paths: - - coverage-javascript/ - -coverage: - stage: post-test - services: [] - <<: *dedicated-runner - <<: *except-docs - variables: - SETUP_DB: "false" - USE_BUNDLE_INSTALL: "true" - script: - - bundle exec scripts/merge-simplecov - coverage: '/LOC \((\d+\.\d+%)\) covered.$/' - artifacts: - name: coverage - expire_in: 31d - paths: - - coverage/index.html - - coverage/assets/ - -lint:javascript:report: - <<: *dedicated-runner - <<: *except-docs - stage: post-test - before_script: [] - script: - - find app/ spec/ -name '*.js' -exec sed --in-place 's|/\* eslint-disable .*\*/||' {} \; # run report over all files - - yarn run eslint-report || true # ignore exit code - artifacts: - name: eslint-report - expire_in: 31d - paths: - - eslint-report.html - -# Trigger docs build -# https://gitlab.com/gitlab-com/doc-gitlab-com/blob/master/README.md#deployment-process -trigger_docs: - stage: post-test - image: "alpine" - <<: *dedicated-runner - before_script: - - apk update && apk add curl - variables: - GIT_STRATEGY: "none" - cache: {} - artifacts: {} - script: - - "HTTP_STATUS=$(curl -X POST -F token=${DOCS_TRIGGER_TOKEN} -F ref=master -F variables[PROJECT]=${CI_PROJECT_NAME} --silent --output curl.log --write-out '%{http_code}' https://gitlab.com/api/v3/projects/1794617/trigger/builds)" - - if [ "${HTTP_STATUS}" -ne "201" ]; then echo "Error ${HTTP_STATUS}"; cat curl.log; echo; exit 1; fi - only: - - master@gitlab-org/gitlab-ce - - master@gitlab-org/gitlab-ee - -pages: - before_script: [] - stage: pages - <<: *dedicated-runner - dependencies: - - coverage - - karma - - gitlab:assets:compile - - lint:javascript:report - script: - - mv public/ .public/ - - mkdir public/ - - mv coverage/ public/coverage-ruby/ || true - - mv coverage-javascript/ public/coverage-javascript/ || true - - mv eslint-report.html public/ || true - - mv webpack-report/ public/webpack-report/ || true - artifacts: - paths: - - public - only: - - master@gitlab-org/gitlab-ce - - master@gitlab-org/gitlab-ee - -# Insurance in case a gem needed by one of our releases gets yanked from -# rubygems.org in the future. -cache gems: - <<: *dedicated-runner - only: - - tags - variables: - SETUP_DB: "false" +check_svg: script: - - bundle package --all --all-platforms - artifacts: - paths: - - vendor/cache - only: - - master@gitlab-org/gitlab-ce - - master@gitlab-org/gitlab-ee + - yarn install --pure-lockfile --cache-folder .yarn-cache + - node scripts/check_svg.js diff --git a/package.json b/package.json index 800327d8a08..1729514076d 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "eslint-plugin-html": "^2.0.1", "exports-loader": "^0.6.4", "file-loader": "^0.11.1", + "glob": "^7.1.2", "jed": "^1.1.1", "jquery": "^2.2.1", "jquery-ujs": "^1.2.1", @@ -46,6 +47,7 @@ "select2": "3.5.2-browserify", "sql.js": "^0.4.0", "stats-webpack-plugin": "^0.4.3", + "svgo": "^0.7.2", "three": "^0.84.0", "three-orbit-controls": "^82.1.0", "three-stl-loader": "^1.0.4", diff --git a/scripts/check_svg.js b/scripts/check_svg.js new file mode 100644 index 00000000000..ebc0bd574a4 --- /dev/null +++ b/scripts/check_svg.js @@ -0,0 +1,57 @@ +const glob = require('glob'); +const fs = require('fs'); +const SVGOptimizer = require('svgo'); + +// node check_svg.js [failIfUncompressedSVGFound = true | false] +const failFlag = process.argv[2]; +const failIfUncompressedSVGFound = failFlag !== undefined ? JSON.parse(failFlag) : true; + +const svgo = new SVGOptimizer(); +const globPath = 'app/views/shared/icons/*.svg'; +const globOptions = { mark: true }; + +function error(err) { + console.error(err); + process.exit(1); +} + +function saveOptimization(options) { + const { filepath, data, originalSize, failIfUncompressed } = options; + + fs.writeFile(filepath, data, (err) => { + if (err) { + return error(err); + } + + const compressedSize = fs.statSync(filepath).size; + const wasUncompressed = compressedSize < originalSize; + const compression = (100 - ((compressedSize / originalSize) * 100)).toFixed(2); + + if (failIfUncompressed && wasUncompressed) { + error(`${filepath} was found to be uncompressed - could be compressed by ${compression}%`); + } else { + console.log(`${filepath} was compressed by ${compression}%`); + } + }); +} + +function optimize(filepath) { + fs.readFile(filepath, 'utf8', (err, data) => { + if (err) { + return error(err); + } + + svgo.optimize(data, (result) => { + saveOptimization({ + filepath, + data: result.data, + originalSize: fs.statSync(filepath).size, + failIfUncompressed: failIfUncompressedSVGFound, + }); + }); + }); +} + +glob(globPath, globOptions, (er, files) => { + files.forEach(filepath => optimize(filepath)); +}); diff --git a/yarn.lock b/yarn.lock index 8aac2b1b1cd..b58843c3282 100644 --- a/yarn.lock +++ b/yarn.lock @@ -914,6 +914,13 @@ brace-expansion@^1.0.0: balanced-match "^0.4.1" concat-map "0.0.1" +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + braces@^0.1.2: version "0.1.5" resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" @@ -2490,14 +2497,14 @@ glob@^5.0.15: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.2" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" @@ -3657,7 +3664,13 @@ minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" -"minimatch@2 || 3", minimatch@3.0.3, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimatch@3.0.3, minimatch@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: @@ -5326,7 +5339,7 @@ supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2, supports-co dependencies: has-flag "^1.0.0" -svgo@^0.7.0: +svgo@^0.7.0, svgo@^0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" dependencies: |