From 3dff7ddae5bb6b8dc788ff68d22c9c958c9684d5 Mon Sep 17 00:00:00 2001 From: Jure Triglav <juretriglav@gmail.com> Date: Fri, 14 Dec 2018 15:55:33 +0100 Subject: [PATCH] refactor(cli): remove starter dependency --- packages/cli/cli/new.js | 13 +- packages/cli/package.json | 1 - packages/cli/src/constants.js | 4 - packages/cli/test/cli/add.test.js | 16 +- packages/cli/test/cli/remove.test.js | 11 +- yarn.lock | 236 ++------------------------- 6 files changed, 22 insertions(+), 259 deletions(-) delete mode 100644 packages/cli/src/constants.js diff --git a/packages/cli/cli/new.js b/packages/cli/cli/new.js index 809362fc6..d7fb5d53c 100644 --- a/packages/cli/cli/new.js +++ b/packages/cli/cli/new.js @@ -2,10 +2,9 @@ const logger = require('@pubsweet/logger') const colors = require('colors/safe') const program = require('commander') const fs = require('fs-extra') -const { spawnSync } = require('child_process') +const { execSync } = require('child_process') const path = require('path') const crypto = require('crypto') -const { STARTER_REPO_URL } = require('../src/constants') const readCommand = async argsOverride => { program @@ -45,13 +44,14 @@ module.exports = async argsOverride => { overWrite(appPath) } - spawnSync('git', ['clone', STARTER_REPO_URL, appName], { stdio: 'inherit' }) + execSync( + `git clone https://gitlab.coko.foundation/pubsweet/pubsweet-starter.git --branch release ${appName}`, + { stdio: 'inherit' }, + ) logger.info('Installing app dependencies') - // TODO: There is an error when using local yarn. Fix it. - // const localYarn = path.join(__dirname, '..', 'node_modules', '.bin', 'yarn') - spawnSync('yarn', ['install'], { + execSync('yarn install', { cwd: appPath, stdio: 'inherit', }) @@ -61,6 +61,5 @@ module.exports = async argsOverride => { const secret = crypto.randomBytes(64).toString('hex') fs.writeJsonSync(configFilePath, { 'pubsweet-server': { secret } }) logger.info(`Added secret to ${configFilePath} under pubsweet-server.secret`) - logger.info('Finished generating initial app') } diff --git a/packages/cli/package.json b/packages/cli/package.json index 706d359ab..a8e123c6e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -35,7 +35,6 @@ "url": "https://gitlab.coko.foundation/pubsweet/pubsweet" }, "devDependencies": { - "@pubsweet/starter": "git+https://gitlab.coko.foundation/pubsweet/pubsweet-starter.git", "jest": "^23.5.0", "jest-environment-db": "^2.0.0", "nsp": "^2.8.1" diff --git a/packages/cli/src/constants.js b/packages/cli/src/constants.js deleted file mode 100644 index e4e410e18..000000000 --- a/packages/cli/src/constants.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - STARTER_REPO_URL: - 'https://gitlab.coko.foundation/pubsweet/pubsweet-starter.git', -} diff --git a/packages/cli/test/cli/add.test.js b/packages/cli/test/cli/add.test.js index bfae775ec..4bb18f204 100644 --- a/packages/cli/test/cli/add.test.js +++ b/packages/cli/test/cli/add.test.js @@ -1,4 +1,5 @@ -jest.mock('child_process', () => ({ spawnSync: jest.fn() })) +const childProcess = require('child_process') + jest.mock('fs-extra', () => { const fs = require.requireActual('fs-extra') fs.writeJsonSync = jest.fn() @@ -11,30 +12,23 @@ jest.mock('../../src/package-management/helpers/', () => { return helpers }) -const path = require('path') +childProcess.spawnSync = jest.fn() +const spawnSpy = require('child_process').spawnSync + const fs = require('fs-extra') const { getMockArgv } = require('../helpers/') const runAdd = require('../../cli/add') -const spawnSpy = require('child_process').spawnSync const readPkgSpy = require('../../src/package-management/helpers/') .getDepsFromPackageJson const writeSpy = fs.writeJsonSync describe('add', () => { - beforeAll(() => { - process.chdir(path.dirname(require.resolve('@pubsweet/starter'))) - }) - beforeEach(() => { jest.clearAllMocks() }) - afterAll(() => { - process.chdir(path.join(__dirname, '..', '..')) - }) - it('requires a component', async () => { await expect(runAdd(getMockArgv(''))).rejects.toBeInstanceOf(Error) }) diff --git a/packages/cli/test/cli/remove.test.js b/packages/cli/test/cli/remove.test.js index 4807ef653..a571ecf0e 100644 --- a/packages/cli/test/cli/remove.test.js +++ b/packages/cli/test/cli/remove.test.js @@ -11,7 +11,6 @@ jest.mock('../../src/package-management/helpers/', () => { return helpers }) -const path = require('path') const fs = require('fs-extra') const { getMockArgv } = require('../helpers/') const runRemove = require('../../cli/remove') @@ -22,19 +21,11 @@ const readPkgSpy = require('../../src/package-management/helpers/') const writeSpy = fs.writeJsonSync -describe.skip('remove', () => { - beforeAll(() => { - process.chdir(path.dirname(require.resolve('@pubsweet/starter'))) - }) - +describe('remove', () => { beforeEach(() => { jest.clearAllMocks() }) - afterAll(() => { - process.chdir(path.join(__dirname, '..', '..')) - }) - it('requires a component', async () => { await expect(runRemove(getMockArgv(''))).rejects.toBeInstanceOf(Error) }) diff --git a/yarn.lock b/yarn.lock index 3954aedf4..9d244f112 100644 --- a/yarn.lock +++ b/yarn.lock @@ -439,58 +439,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== -"@pubsweet/coko-theme@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@pubsweet/coko-theme/-/coko-theme-4.1.0.tgz#c163c20f50990d0aa9bf9455418fe1f368465f9a" - integrity sha512-7tE0ERvkgxyA/ZrXHczqoCy5JGFLcpRCfdp5vwtbQfD7dVvg8kuKP5+SPV3Dw1oF6aym+eoXLdl8IRx7gCcUWA== - dependencies: - "@pubsweet/ui-toolkit" "^1.2.0" - cokourier-prime-sans "git+https://gitlab.coko.foundation/julientaq/cokourier-sans-prime.git" - styled-components "^3.2.5" - typeface-fira-sans-condensed "^0.0.54" - typeface-vollkorn "^0.0.54" - -"@pubsweet/default-theme@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@pubsweet/default-theme/-/default-theme-3.0.0.tgz#7760c88b63fba45b41ad3f6019f54dd0d06e1dfc" - integrity sha512-XEg3nWXs1807ZmxsSv4FJa0VYtWhjXWR0dmxhL2vp3FAPvc9t97Pl1vcseky5I7MN5icwNeF7wLeF2tABmuiPQ== - dependencies: - styled-components "^3.2.5" - typeface-noto-sans "^0.0.54" - typeface-noto-serif "^0.0.54" - typeface-ubuntu-mono "^0.0.54" - -"@pubsweet/starter@git+https://gitlab.coko.foundation/pubsweet/pubsweet-starter.git": - version "1.0.0-alpha.1" - resolved "git+https://gitlab.coko.foundation/pubsweet/pubsweet-starter.git#aa768ddf88dceb1966e94acca34b3f3870d1b700" - dependencies: - "@pubsweet/coko-theme" "^4.1.0" - "@pubsweet/db-manager" "^2.0.5" - "@pubsweet/default-theme" "3.0.0" - "@pubsweet/logger" "^0.2.6" - "@pubsweet/ui" "^8.7.0" - authsome "^0.1.0" - pubsweet "^3.0.5" - pubsweet-client "^6.0.0" - pubsweet-component-blog "^1.0.5" - pubsweet-component-form-group "1.1.25" - pubsweet-component-html "^0.2.5" - pubsweet-component-login "1.1.17" - pubsweet-component-manage "^1.0.0" - pubsweet-component-medium-draft "^0.2.3" - pubsweet-component-navigation "^1.0.1" - pubsweet-component-password-reset-backend "^1.0.5" - pubsweet-component-password-reset-frontend "^2.0.15" - pubsweet-component-pepper-theme "^0.0.5" - pubsweet-component-posts-manager "1.0.40" - pubsweet-component-signup "^1.0.31" - pubsweet-component-teams-manager "^1.1.24" - pubsweet-component-users-manager "^2.0.1" - pubsweet-server "^10.0.0" - pubsweet-theme-plugin "^0.0.3" - react-router-redux next - -"@pubsweet/ui-toolkit@^1.1.2", "@pubsweet/ui-toolkit@^1.2.0": +"@pubsweet/ui-toolkit@^1.1.2": version "1.2.0" resolved "https://registry.yarnpkg.com/@pubsweet/ui-toolkit/-/ui-toolkit-1.2.0.tgz#5531149fa2229acc06e76e964b8a412bf503c4ce" integrity sha512-HwnFt4eES5RopLLY7ajb//UvaCLXS29XCWOOB5cs90DkwysVZaH/GM5HB/QtClQ5tuXiR3BqfjLy2mHMA0Z+PQ== @@ -499,31 +448,6 @@ lodash "^4.17.4" styled-components "^3.2.5" -"@pubsweet/ui@^8.7.0", "@pubsweet/ui@^8.8.0": - version "8.8.0" - resolved "https://registry.yarnpkg.com/@pubsweet/ui/-/ui-8.8.0.tgz#d6a845cd6d0d51c1c14956dccc11900fb87d2178" - integrity sha512-Ypr86pfeysF90upV7Ybk5vTr3uCnR0WWlfQZyXsmGn8jFyTlkHMJDNMw1XggfKxdmefyk5hkpcV4YiKklZ0+PA== - dependencies: - "@pubsweet/ui-toolkit" "^1.2.0" - babel-jest "^21.2.0" - classnames "^2.2.5" - enzyme "^3.7.0" - enzyme-adapter-react-16 "^1.1.1" - invariant "^2.2.3" - lodash "^4.17.4" - moment "^2.22.1" - prop-types "^15.5.10" - react "^16.2.0" - react-dom "^16.2.0" - react-feather "^1.0.8" - react-redux "^5.0.2" - react-router-dom "^4.2.2" - react-tag-autocomplete "^5.5.0" - recompose "^0.26.0" - redux "^3.6.0" - redux-form "^7.0.3" - styled-components "^3.2.5" - "@types/async@2.0.50": version "2.0.50" resolved "https://registry.yarnpkg.com/@types/async/-/async-2.0.50.tgz#117540e026d64e1846093abbd5adc7e27fda7bcb" @@ -4643,23 +4567,6 @@ dotenv@^4.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" integrity sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0= -draft-convert@^1.4.8: - version "1.4.10" - resolved "https://registry.yarnpkg.com/draft-convert/-/draft-convert-1.4.10.tgz#05007f009b18025451a2ce259aa008f4aa6a1add" - integrity sha1-BQB/AJsYAlRRos4lmqAI9KpqGt0= - dependencies: - immutable "~3.7.4" - invariant "^2.2.1" - -draft-js@^0.10.0: - version "0.10.5" - resolved "https://registry.yarnpkg.com/draft-js/-/draft-js-0.10.5.tgz#bfa9beb018fe0533dbb08d6675c371a6b08fa742" - integrity sha512-LE6jSCV9nkPhfVX2ggcRLA4FKs6zWq9ceuO/88BpXdNCS7mjRTgs0NsV6piUCJX9YxMsB9An33wnkMmU2sD2Zg== - dependencies: - fbjs "^0.8.15" - immutable "~3.7.4" - object-assign "^4.1.0" - duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" @@ -5737,7 +5644,7 @@ fbjs-css-vars@^1.0.0: resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.1.tgz#836d876e887d702f45610f5ebd2fbeef649527fc" integrity sha512-IM+v/C40MNZWqsLErc32e0TyIk/NhkkQZL0QmjBh6zi1eXv0/GeVKmKmueQX7nn9SXQBQbTUcB8zuexIF3/88w== -fbjs@^0.8.0, fbjs@^0.8.1, fbjs@^0.8.15, fbjs@^0.8.16, fbjs@^0.8.5: +fbjs@^0.8.0, fbjs@^0.8.1, fbjs@^0.8.16, fbjs@^0.8.5: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= @@ -7064,16 +6971,6 @@ immutable-tuple@^0.4.9: resolved "https://registry.yarnpkg.com/immutable-tuple/-/immutable-tuple-0.4.9.tgz#473ebdd6c169c461913a454bf87ef8f601a20ff0" integrity sha512-LWbJPZnidF8eczu7XmcnLBsumuyRBkpwIRPCZxlojouhBo5jEBO4toj6n7hMy6IxHU/c+MqDSWkvaTpPlMQcyA== -immutable@^3.7.6: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= - -immutable@~3.7.4: - version "3.7.6" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" - integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= - import-local@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" @@ -9270,15 +9167,6 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -medium-draft@^0.5.2: - version "0.5.9" - resolved "https://registry.yarnpkg.com/medium-draft/-/medium-draft-0.5.9.tgz#ae6579e893a2cb251eb53bfd7f07f9f68faf085b" - integrity sha512-LKxEoKgtSJl84zn0+hd8NrCIV2uBmHkYmKrVCZdwhqNer9RiwucsoN47uC33Pjq1W/c2owGQiDGhZGbeTBL1DQ== - dependencies: - draft-js "^0.10.0" - immutable "^3.7.6" - react-transition-group "^2.5.0" - mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" @@ -11625,112 +11513,6 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" -pubsweet-client@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pubsweet-client/-/pubsweet-client-6.1.0.tgz#79194234f591bc515bf1802689e1291c8ae8e679" - integrity sha512-on/uWQuzkuj0XbLh10ts9IbCL3+tAdFFlODqsVSKNnqB/2QxrcmKIkW2+RI3Oy9rBHCff3HVAjzhhfaHYmb8JQ== - dependencies: - "@pubsweet/ui" "^8.8.0" - "@pubsweet/ui-toolkit" "^1.2.0" - apollo-cache-inmemory "^1.2.4" - apollo-client "^2.3.4" - apollo-link "^1.2.1" - apollo-link-context "^1.0.5" - apollo-link-http "^1.5.4" - apollo-link-ws "^1.0.8" - apollo-upload-client "^8.0.0" - authsome "^0.1.0" - config "^2.0.1" - event-source-polyfill "^0.0.10" - global "^4.3.1" - graphql "^14.0.2" - graphql-tag "^2.7.3" - isomorphic-fetch "^2.1.1" - lint-staged "^6.0.0" - lodash "^4.0.0" - prop-types "^15.5.8" - react "^16.2.0" - react-apollo "^2.1.0" - react-redux "^5.0.2" - react-router-dom "^4.2.2" - react-router-redux next - redux "^3.6.0" - redux-form "^7.0.3" - redux-logger "^3.0.1" - redux-thunk "^2.2.0" - reselect "^3.0.1" - styled-components "^3.2.5" - styled-normalize "^3.0.1" - subscriptions-transport-ws "^0.9.12" - -pubsweet-component-form-group@1.1.25: - version "1.1.25" - resolved "https://registry.yarnpkg.com/pubsweet-component-form-group/-/pubsweet-component-form-group-1.1.25.tgz#ba93e042483ce7097f799966322940d6b67f2b11" - integrity sha512-7QmaHh/DbGcOt5jEx7DfQiWwnL7+CHQWm9DLRC9yS7dZ5yFJGsyLpzerAUbFDBlUftcrufymKDbzICbBj0AaaA== - dependencies: - joi-browser "^13.4.0" - prop-types "^15.5.10" - pubsweet-server "^10.0.0" - -pubsweet-component-login@1.1.17: - version "1.1.17" - resolved "https://registry.yarnpkg.com/pubsweet-component-login/-/pubsweet-component-login-1.1.17.tgz#8ea00b85e73a1068fbd6e1d7a4173ba3cfc17c42" - integrity sha512-1M5xBtUGi+nWoknzSYQ8C7RAo3XCPCJzgdOQaKi2Cl1iIKHZy0wsNXlK3gv/3dldJ47QLSL2E6sKnlwy2YijLQ== - dependencies: - "@pubsweet/ui" "^8.7.0" - prop-types "^15.5.10" - react-redux "^5.0.6" - react-router-dom "^4.2.2" - react-router-redux "^5.0.0-alpha.9" - recompose "^0.26.0" - redux-form "^7.0.3" - -pubsweet-component-medium-draft@^0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/pubsweet-component-medium-draft/-/pubsweet-component-medium-draft-0.2.4.tgz#9877c23538fe22915e6b6552608f905edbb70fc9" - integrity sha512-WwaCBdCHW7OtaxJ/Et+ke0xH6+XKjkgQ7TZqs2jv7QYXJ/psD+jVpXFVv5+RNY2wxZbhXWd0vC5ddeewORtwhA== - dependencies: - draft-convert "^1.4.8" - font-awesome "^4.7.0" - medium-draft "^0.5.2" - prop-types "^15.5.10" - react-redux "^5.0.6" - redux "^3.7.2" - -pubsweet-component-password-reset-frontend@^2.0.15: - version "2.0.17" - resolved "https://registry.yarnpkg.com/pubsweet-component-password-reset-frontend/-/pubsweet-component-password-reset-frontend-2.0.17.tgz#8b1d33a66ae18704e48c29e18651288dcab98e5d" - integrity sha512-3fj63ih7yQiB308CrxwQZvPtq3NmahChiAb+86XtxHXYmPIHVOGvLo1RmZuogt6bY7EnRrGBnGVmEGjm/ph2Vg== - dependencies: - "@pubsweet/ui" "^8.8.0" - "@pubsweet/ui-toolkit" "^1.2.0" - prop-types "^15.5.10" - query-string "^5.0.0" - react-router "^4.2.0" - styled-components "^3.2.5" - -pubsweet-component-pepper-theme@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/pubsweet-component-pepper-theme/-/pubsweet-component-pepper-theme-0.0.5.tgz#eb39aafbab8e1a737752b6c5ed7ef057ead414cc" - integrity sha512-b84iM59NMjAqKWbKs2/HSNrwFgb4/siOaXHqyfzs4Z+b+/rO1WthUGjJ4h8Uq3GeuTSPSG8QmdraDyPYHPDDQg== - -pubsweet-component-posts-manager@1.0.40: - version "1.0.40" - resolved "https://registry.yarnpkg.com/pubsweet-component-posts-manager/-/pubsweet-component-posts-manager-1.0.40.tgz#ce757fde0ffbedafe441229b11ad4c97b0a72110" - integrity sha512-hqsltbexB1iw1/l7E/uHq3VlxA5hw+a1gkdpCdzZ5MBawVln/Db6Tme4zxXSkjjBC73NZh/QZ+ABgDI3aUBOiQ== - dependencies: - "@pubsweet/ui" "^8.7.0" - prop-types "^15.5.10" - pubsweet-component-form-group "^1.1.25" - react-redux "^5.0.6" - react-router-dom "^4.2.2" - redux "^3.7.2" - -pubsweet-theme-plugin@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/pubsweet-theme-plugin/-/pubsweet-theme-plugin-0.0.3.tgz#1773543a95ed9f56eb8b14f13f24496e034d140b" - integrity sha512-lKEbQW/pfhhhbpPyO+naDFmgyNwqE9Cj6lk7eqxJgKnVc6AL+B8YBTSpsSDy7LoVrwKjM2Q7+0TrN30llcx6Ag== - pump@^2.0.0, pump@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -12287,7 +12069,7 @@ react-test-renderer@^16.0.0-0, react-test-renderer@^16.5.2: react-is "^16.6.3" scheduler "^0.11.2" -react-transition-group@^2.0.0, react-transition-group@^2.2.0, react-transition-group@^2.5.0: +react-transition-group@^2.0.0, react-transition-group@^2.2.0: version "2.5.0" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.5.0.tgz#70bca0e3546102c4dc5cf3f5f57f73447cce6874" integrity sha512-qYB3JBF+9Y4sE4/Mg/9O6WFpdoYjeeYqx0AFb64PTazVy8RPMiE3A47CG9QmM4WJ/mzDiZYslV+Uly6O1Erlgw== @@ -13157,6 +12939,13 @@ sax@>=0.6.0, sax@^1.2.4, sax@~1.2.1: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +schedule@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.3.0.tgz#1be2ab2fc2e768536269ce7326efb478d6c045e8" + integrity sha512-20+1KVo517sR7Nt+bYBN8a+bEJDKLPEx7Ohtts1kX05E4/HY53YUNuhfkVNItmWAnBYHcpG9vsd2/CJxG+aPCQ== + dependencies: + object-assign "^4.1.1" + scheduler@^0.11.2: version "0.11.2" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.11.2.tgz#a8db5399d06eba5abac51b705b7151d2319d33d3" @@ -13966,11 +13755,6 @@ styled-components@^4.1.1: stylis-rule-sheet "^0.0.10" supports-color "^5.5.0" -styled-normalize@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/styled-normalize/-/styled-normalize-3.0.1.tgz#217efb96598690addd04699ca71af0db3473fea2" - integrity sha512-EtTwCJDKMoJ+GU0YxklkHukltPGz7Swfq/fKyeP/WEQGF01DXGVXmuo1Rp2kMTQ9kz7o6dVBvvmT+KQyKe8Okw== - styled-normalize@^8.0.4: version "8.0.4" resolved "https://registry.yarnpkg.com/styled-normalize/-/styled-normalize-8.0.4.tgz#6a0885dc16c61d88813dab8f5137da928fe0c947" -- GitLab