From c0d781d28fad4a8100d47d34a703ec6fb205eaae Mon Sep 17 00:00:00 2001 From: Tim Griesser Date: Mon, 1 Nov 2021 13:37:33 -0400 Subject: [PATCH] refactor: remove Ramda (#18723) --- cli/lib/cli.js | 16 +++++---- cli/lib/errors.js | 3 +- cli/lib/exec/info.js | 15 ++++++--- cli/lib/logger.js | 5 +-- cli/lib/tasks/state.js | 7 ++-- cli/lib/util.js | 17 +++++----- cli/package.json | 1 - cli/test/lib/build_spec.js | 3 +- cli/test/lib/cypress_spec.js | 8 ++--- package.json | 2 -- packages/launcher/lib/darwin/index.ts | 3 +- packages/launcher/lib/darwin/util.ts | 13 +++++--- packages/launcher/lib/detect.ts | 33 +++++++++++-------- packages/launcher/lib/linux/index.ts | 11 ++++--- packages/launcher/lib/windows/index.ts | 11 ++++--- packages/launcher/package.json | 1 - packages/launcher/test/unit/detect_spec.ts | 4 +-- packages/server/lib/config.ts | 5 ++- packages/server/lib/controllers/files.js | 19 ++++++----- packages/server/lib/cypress.js | 3 +- packages/server/lib/exec.js | 25 +++++++++----- packages/server/lib/modes/info.js | 7 +--- packages/server/lib/scaffold.js | 5 ++- packages/server/lib/util/newlines.js | 16 ++++++--- packages/server/lib/util/shell.js | 3 +- packages/server/lib/util/specs.ts | 7 ++-- packages/server/package.json | 1 - packages/server/test/integration/cli_spec.js | 3 +- .../server/test/integration/cypress_spec.js | 3 +- packages/server/test/unit/config_spec.js | 3 +- packages/server/test/unit/modes/run_spec.js | 4 +-- packages/server/test/unit/util/specs_spec.js | 6 ++-- scripts/binary/build.js | 19 +++++++---- scripts/binary/bump.js | 32 +++++++----------- scripts/binary/index.js | 3 +- scripts/binary/meta.js | 6 ++-- scripts/binary/move-binaries.ts | 13 ++++---- scripts/binary/s3-api.ts | 5 ++- scripts/binary/upload-unique-binary.js | 5 ++- scripts/binary/util/packages.js | 3 +- scripts/binary/zip.js | 23 ++++++++----- scripts/unit/binary/bump-spec.js | 9 ++--- system-tests/lib/performance.js | 12 +++---- system-tests/package.json | 1 - yarn.lock | 2 +- 45 files changed, 205 insertions(+), 191 deletions(-) diff --git a/cli/lib/cli.js b/cli/lib/cli.js index a0237380c5ae..7a1759d87a9b 100644 --- a/cli/lib/cli.js +++ b/cli/lib/cli.js @@ -1,6 +1,5 @@ // @ts-check const _ = require('lodash') -const R = require('ramda') const commander = require('commander') const { stripIndent } = require('common-tags') const logSymbols = require('log-symbols') @@ -279,12 +278,17 @@ const castCypressRunOptions = (opts) => { // only properties that have type "string | false" in our TS definition // require special handling, because CLI parsing takes care of purely // boolean arguments - const result = R.evolve({ - port: coerceAnyStringToInt, - configFile: coerceFalseOrString, - })(opts) + const castOpts = { ...opts } - return result + if (_.has(opts, 'port')) { + castOpts.port = coerceAnyStringToInt(opts.port) + } + + if (_.has(opts, 'configFile')) { + castOpts.configFile = coerceFalseOrString(opts.configFile) + } + + return castOpts } module.exports = { diff --git a/cli/lib/errors.js b/cli/lib/errors.js index aced13a48292..cedc7cb899dd 100644 --- a/cli/lib/errors.js +++ b/cli/lib/errors.js @@ -1,6 +1,5 @@ const chalk = require('chalk') const { stripIndent, stripIndents } = require('common-tags') -const { merge } = require('ramda') const la = require('lazy-ass') const is = require('check-more-types') @@ -241,7 +240,7 @@ const CYPRESS_RUN_BINARY = { function addPlatformInformation (info) { return util.getPlatformInfo().then((platform) => { - return merge(info, { platform }) + return { ...info, platform } }) } diff --git a/cli/lib/exec/info.js b/cli/lib/exec/info.js index 415d276f1cbf..cd21138029c8 100644 --- a/cli/lib/exec/info.js +++ b/cli/lib/exec/info.js @@ -6,7 +6,6 @@ const os = require('os') const chalk = require('chalk') const prettyBytes = require('pretty-bytes') const _ = require('lodash') -const R = require('ramda') // color for numbers and show values const g = chalk.green @@ -22,14 +21,20 @@ methods.findProxyEnvironmentVariables = () => { return _.pick(process.env, ['HTTP_PROXY', 'HTTPS_PROXY', 'NO_PROXY']) } -const maskSensitiveVariables = R.evolve({ - CYPRESS_RECORD_KEY: R.always(''), -}) +const maskSensitiveVariables = (obj) => { + const masked = { ...obj } + + if (masked.CYPRESS_RECORD_KEY) { + masked.CYPRESS_RECORD_KEY = '' + } + + return masked +} methods.findCypressEnvironmentVariables = () => { const isCyVariable = (val, key) => key.startsWith('CYPRESS_') - return R.pickBy(isCyVariable)(process.env) + return _.pickBy(process.env, isCyVariable) } const formatCypressVariables = () => { diff --git a/cli/lib/logger.js b/cli/lib/logger.js index 679aeb52f517..088c07e058f8 100644 --- a/cli/lib/logger.js +++ b/cli/lib/logger.js @@ -1,4 +1,3 @@ -const R = require('ramda') const chalk = require('chalk') let logs = [] @@ -36,7 +35,9 @@ const always = (...messages) => { const logLines = (text) => { const lines = text.split('\n') - R.forEach(log, lines) + for (const line of lines) { + log(line) + } } const print = () => { diff --git a/cli/lib/tasks/state.js b/cli/lib/tasks/state.js index 6f92a752f760..475dfaeb94f3 100644 --- a/cli/lib/tasks/state.js +++ b/cli/lib/tasks/state.js @@ -2,7 +2,6 @@ const _ = require('lodash') const os = require('os') const path = require('path') const untildify = require('untildify') -const R = require('ramda') const debug = require('debug')('cypress:cli') const fs = require('../fs') @@ -179,9 +178,9 @@ const getBinaryPkgAsync = (binaryDir) => { }) } -const getBinaryPkgVersion = R.propOr(null, 'version') -const getBinaryElectronVersion = R.propOr(null, 'electronVersion') -const getBinaryElectronNodeVersion = R.propOr(null, 'electronNodeVersion') +const getBinaryPkgVersion = (o) => _.get(o, 'version', null) +const getBinaryElectronVersion = (o) => _.get(o, 'electronVersion', null) +const getBinaryElectronNodeVersion = (o) => _.get(o, 'electronNodeVersion', null) module.exports = { getPathToExecutable, diff --git a/cli/lib/util.js b/cli/lib/util.js index da4729caab5a..1c966300f68f 100644 --- a/cli/lib/util.js +++ b/cli/lib/util.js @@ -1,5 +1,4 @@ const _ = require('lodash') -const R = require('ramda') const os = require('os') const ospath = require('ospath') const crypto = require('crypto') @@ -114,10 +113,9 @@ const logBrokenGtkDisplayWarning = () => { } function stdoutLineMatches (expectedLine, stdout) { - const lines = stdout.split('\n').map(R.trim) - const lineMatches = R.equals(expectedLine) + const lines = stdout.split('\n').map((val) => val.trim()) - return lines.some(lineMatches) + return lines.some((line) => line === expectedLine) } /** @@ -229,11 +227,14 @@ const parseOpts = (opts) => { // some options might be quoted - which leads to unexpected results // remove double quotes from certain options - const removeQuotes = { - group: dequote, - ciBuildId: dequote, + const cleanOpts = { ...opts } + const toDequote = ['group', 'ciBuildId'] + + for (const prop of toDequote) { + if (_.has(opts, prop)) { + cleanOpts[prop] = dequote(opts[prop]) + } } - const cleanOpts = R.evolve(removeQuotes, opts) debug('parsed cli options %o', cleanOpts) diff --git a/cli/package.json b/cli/package.json index 4387fc409906..dccb14bb48fa 100644 --- a/cli/package.json +++ b/cli/package.json @@ -55,7 +55,6 @@ "ospath": "^1.2.2", "pretty-bytes": "^5.6.0", "proxy-from-env": "1.0.0", - "ramda": "~0.27.1", "request-progress": "^3.0.0", "supports-color": "^8.1.1", "tmp": "~0.2.1", diff --git a/cli/test/lib/build_spec.js b/cli/test/lib/build_spec.js index 722f2d59105b..74a27803dfa6 100644 --- a/cli/test/lib/build_spec.js +++ b/cli/test/lib/build_spec.js @@ -5,13 +5,12 @@ const makeUserPackageFile = require('../../scripts/build') const snapshot = require('../support/snapshot') const la = require('lazy-ass') const is = require('check-more-types') -const R = require('ramda') const hasVersion = (json) => { return la(is.semver(json.version), 'cannot find version', json) } -const changeVersion = R.assoc('version', 'x.y.z') +const changeVersion = (o) => ({ ...o, version: 'x.y.z' }) describe('package.json build', () => { beforeEach(function () { diff --git a/cli/test/lib/cypress_spec.js b/cli/test/lib/cypress_spec.js index 2edaa3b0e169..d0515c15e018 100644 --- a/cli/test/lib/cypress_spec.js +++ b/cli/test/lib/cypress_spec.js @@ -2,7 +2,7 @@ require('../spec_helper') const os = require('os') const path = require('path') -const R = require('ramda') +const _ = require('lodash') const snapshot = require('../support/snapshot') const Promise = require('bluebird') const tmp = Promise.promisifyAll(require('tmp')) @@ -27,11 +27,10 @@ describe('cypress', function () { sinon.stub(open, 'start').resolves() }) - const getCallArgs = R.path(['lastCall', 'args', 0]) const getStartArgs = () => { expect(open.start).to.be.called - return getCallArgs(open.start) + return _.get(open.start, ['lastCall', 'args', 0]) } it('calls open#start, passing in options', function () { @@ -100,7 +99,6 @@ describe('cypress', function () { }) }) - const getCallArgs = R.path(['lastCall', 'args', 0]) const normalizeCallArgs = (args) => { expect(args.outputPath).to.equal(outputPath) delete args.outputPath @@ -110,7 +108,7 @@ describe('cypress', function () { const getStartArgs = () => { expect(run.start).to.be.called - return normalizeCallArgs(getCallArgs(run.start)) + return normalizeCallArgs(_.get(run.start, ['lastCall', 'args', 0])) } it('calls run#start, passing in options', () => { diff --git a/package.json b/package.json index 41de4e44d1ac..0b69c0cc4ea4 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,6 @@ "@types/mocha": "8.0.3", "@types/node": "14.14.31", "@types/prismjs": "1.16.0", - "@types/ramda": "0.25.47", "@types/react": "16.9.50", "@types/react-dom": "16.9.8", "@types/request-promise": "4.1.45", @@ -173,7 +172,6 @@ "pretty-ms": "7.0.0", "print-arch": "1.0.0", "proxyquire": "2.1.3", - "ramda": "0.27.1", "semantic-release": "17.2.3", "semantic-release-monorepo": "7.0.3", "semver": "7.3.2", diff --git a/packages/launcher/lib/darwin/index.ts b/packages/launcher/lib/darwin/index.ts index b9420e972aaf..ed8639ca3301 100644 --- a/packages/launcher/lib/darwin/index.ts +++ b/packages/launcher/lib/darwin/index.ts @@ -2,7 +2,6 @@ import { findApp, FindAppParams } from './util' import type { Browser, DetectedBrowser } from '../types' import * as linuxHelper from '../linux' import { log } from '../log' -import { merge } from 'ramda' import { get } from 'lodash' type Detectors = { @@ -105,7 +104,7 @@ export function detect (browser: Browser): Promise { } return findApp(findAppParams) - .then(merge({ name: browser.name })) + .then((val) => ({ name: browser.name, ...val })) .catch(() => { log('could not detect %s using traditional Mac methods', browser.name) log('trying linux search') diff --git a/packages/launcher/lib/darwin/util.ts b/packages/launcher/lib/darwin/util.ts index f9a54233b6f6..95dbeb2a90ad 100644 --- a/packages/launcher/lib/darwin/util.ts +++ b/packages/launcher/lib/darwin/util.ts @@ -1,6 +1,5 @@ import { log } from '../log' import { notInstalledErr } from '../errors' -import { prop, tap } from 'ramda' import { utils } from '../utils' import * as fs from 'fs-extra' import * as os from 'os' @@ -27,7 +26,7 @@ export function parsePlist (p: string, property: string): Promise { return fs .readFile(pl, 'utf8') .then(plist.parse) - .then(prop(property)) + .then((val) => val[property]) .then(String) // explicitly convert value to String type .catch(failed) // to make TS compiler happy } @@ -50,8 +49,14 @@ export function mdfind (id: string): Promise { } return utils.execa(cmd) - .then(prop('stdout')) - .then(tap(logFound)) + .then((val) => { + return val.stdout + }) + .then((val) => { + logFound(val) + + return val + }) .catch(failedToFind) } diff --git a/packages/launcher/lib/detect.ts b/packages/launcher/lib/detect.ts index ad41e0bc955b..55ff07349e17 100644 --- a/packages/launcher/lib/detect.ts +++ b/packages/launcher/lib/detect.ts @@ -1,7 +1,6 @@ import Bluebird from 'bluebird' -import { compact, extend, find } from 'lodash' +import _, { compact, extend, find } from 'lodash' import os from 'os' -import { flatten, merge, pick, props, tap, uniqBy } from 'ramda' import { browsers } from './browsers' import * as darwinHelper from './darwin' import { needsDarwinWorkaround, darwinDetectionWorkaround } from './darwin/util' @@ -17,7 +16,7 @@ import type { } from './types' import * as windowsHelper from './windows' -type HasVersion = Partial & { +type HasVersion = Omit, 'version' | 'name'> & { version: string name: string } @@ -85,7 +84,7 @@ function lookup ( * one for each binary. If Windows is detected, only one `checkOneBrowser` will be called, because * we don't use the `binary` field on Windows. */ -function checkBrowser (browser: Browser): Bluebird<(boolean | FoundBrowser)[]> { +function checkBrowser (browser: Browser): Bluebird<(boolean | HasVersion)[]> { if (Array.isArray(browser.binary) && os.platform() !== 'win32') { return Bluebird.map(browser.binary, (binary: string) => { return checkOneBrowser(extend({}, browser, { binary })) @@ -95,9 +94,9 @@ function checkBrowser (browser: Browser): Bluebird<(boolean | FoundBrowser)[]> { return Bluebird.map([browser], checkOneBrowser) } -function checkOneBrowser (browser: Browser): Promise { +function checkOneBrowser (browser: Browser): Promise { const platform = os.platform() - const pickBrowserProps = pick([ + const pickBrowserProps = [ 'name', 'family', 'channel', @@ -111,7 +110,7 @@ function checkOneBrowser (browser: Browser): Promise { 'info', 'minSupportedVersion', 'unsupportedVersion', - ]) + ] as const const logBrowser = (props: any) => { log('setting major version for %j', props) @@ -130,9 +129,13 @@ function checkOneBrowser (browser: Browser): Promise { log('checking one browser %s', browser.name) return lookup(platform, browser) - .then(merge(browser)) - .then(pickBrowserProps) - .then(tap(logBrowser)) + .then((val) => ({ ...browser, ...val })) + .then((val) => _.pick(val, pickBrowserProps) as HasVersion) + .then((val) => { + logBrowser(val) + + return val + }) .then((browser) => setMajorVersion(browser)) .catch(failed) } @@ -176,9 +179,11 @@ export const detect = (goalBrowsers?: Browser[], useDarwinWorkaround = true): Bl }) } - const removeDuplicates = uniqBy((browser: FoundBrowser) => { - return props(['name', 'version'], browser) - }) + const removeDuplicates = (val) => { + return _.uniqBy(val, (browser: FoundBrowser) => { + return `${browser.name}-${browser.version}` + }) + } const compactFalse = (browsers: any[]) => { return compact(browsers) as FoundBrowser[] } @@ -186,7 +191,7 @@ export const detect = (goalBrowsers?: Browser[], useDarwinWorkaround = true): Bl log('detecting if the following browsers are present %o', goalBrowsers) return Bluebird.mapSeries(goalBrowsers, checkBrowser) - .then(flatten) + .then((val) => _.flatten(val)) .then(compactFalse) .then(removeDuplicates) } diff --git a/packages/launcher/lib/linux/index.ts b/packages/launcher/lib/linux/index.ts index 6942ceac5dbd..c09fca1dd308 100644 --- a/packages/launcher/lib/linux/index.ts +++ b/packages/launcher/lib/linux/index.ts @@ -1,5 +1,4 @@ import { log } from '../log' -import { partial, trim, tap, prop } from 'ramda' import type { FoundBrowser, Browser, PathData } from '../types' import { notInstalledErr } from '../errors' import { utils } from '../utils' @@ -68,9 +67,13 @@ export function getVersionString (path: string) { return Bluebird.resolve(utils.getOutput(path, ['--version'])) .timeout(30000, `Timed out after 30 seconds getting browser version for ${path}`) - .then(prop('stdout')) - .then(trim) - .then(tap(partial(log, ['stdout: "%s"']))) + .then((val) => val.stdout) + .then((val) => val.trim()) + .then((val) => { + log('stdout: %s', val) + + return val + }) } export function getVersionNumber (version: string, browser: Browser) { diff --git a/packages/launcher/lib/windows/index.ts b/packages/launcher/lib/windows/index.ts index 74e0514c9ab9..128b90539ff3 100644 --- a/packages/launcher/lib/windows/index.ts +++ b/packages/launcher/lib/windows/index.ts @@ -1,7 +1,6 @@ import * as fse from 'fs-extra' import os from 'os' import { join, normalize, win32 } from 'path' -import { tap, trim, prop } from 'ramda' import { get } from 'lodash' import { notInstalledErr } from '../errors' import { log } from '../log' @@ -151,7 +150,11 @@ function getWindowsBrowser (browser: Browser): Promise { } return getVersionString(path) - .then(tap(log)) + .then((val) => { + log(val) + + return val + }) .then(getVersion) .then((version: string) => { log('browser %s at \'%s\' version %s', browser.name, exePath, version) @@ -193,8 +196,8 @@ export function getVersionString (path: string) { ] return utils.execa('wmic', args) - .then(prop('stdout')) - .then(trim) + .then((val) => val.stdout) + .then((val) => val.trim()) } export function getVersionNumber (version: string) { diff --git a/packages/launcher/package.json b/packages/launcher/package.json index a148916a7f52..3816efa4dd0b 100644 --- a/packages/launcher/package.json +++ b/packages/launcher/package.json @@ -19,7 +19,6 @@ "fs-extra": "8.1.0", "lodash": "4.17.21", "plist": "3.0.1", - "ramda": "0.27.1", "semver": "7.3.5" }, "devDependencies": { diff --git a/packages/launcher/test/unit/detect_spec.ts b/packages/launcher/test/unit/detect_spec.ts index 78057aa9d963..a9f2ef0aba95 100644 --- a/packages/launcher/test/unit/detect_spec.ts +++ b/packages/launcher/test/unit/detect_spec.ts @@ -1,4 +1,5 @@ require('../spec_helper') +import _ from 'lodash' import { detect, detectByPath, setMajorVersion } from '../../lib/detect' import { goalBrowsers } from '../fixtures' import { expect } from 'chai' @@ -6,7 +7,6 @@ import { utils } from '../../lib/utils' import sinon, { SinonStub } from 'sinon' import os from 'os' import { log } from '../log' -import { project } from 'ramda' import * as darwinUtil from '../../lib/darwin/util' const isWindows = () => { @@ -20,7 +20,7 @@ describe('browser detection', () => { log('detected browsers %j', browsers) expect(browsers).to.be.an('array') - const mainProps = project(['name', 'version'], browsers) + const mainProps = browsers.map((val) => _.pick(val, ['name', 'version'])) log('%d browsers\n%j', browsers.length, mainProps) diff --git a/packages/server/lib/config.ts b/packages/server/lib/config.ts index 4edf8fedc133..4b428fb6dde3 100644 --- a/packages/server/lib/config.ts +++ b/packages/server/lib/config.ts @@ -1,5 +1,4 @@ import _ from 'lodash' -import R from 'ramda' import path from 'path' import Promise from 'bluebird' import deepDiff from 'return-deep-diff' @@ -357,7 +356,7 @@ export function updateWithPluginValues (cfg, overrides) { return errors.throw('CONFIG_VALIDATION_ERROR', errMsg) }) - let originalResolvedBrowsers = cfg && cfg.resolved && cfg.resolved.browsers && R.clone(cfg.resolved.browsers) + let originalResolvedBrowsers = cfg && cfg.resolved && cfg.resolved.browsers && _.cloneDeep(cfg.resolved.browsers) if (!originalResolvedBrowsers) { // have something to resolve with if plugins return nothing @@ -371,7 +370,7 @@ export function updateWithPluginValues (cfg, overrides) { debug('config diffs %o', diffs) - const userBrowserList = diffs && diffs.browsers && R.clone(diffs.browsers) + const userBrowserList = diffs && diffs.browsers && _.cloneDeep(diffs.browsers) if (userBrowserList) { debug('user browser list %o', userBrowserList) diff --git a/packages/server/lib/controllers/files.js b/packages/server/lib/controllers/files.js index 3be7f91f6725..91b4a14c9dc0 100644 --- a/packages/server/lib/controllers/files.js +++ b/packages/server/lib/controllers/files.js @@ -1,5 +1,4 @@ const _ = require('lodash') -const R = require('ramda') const path = require('path') const Promise = require('bluebird') const cwd = require('../cwd') @@ -75,7 +74,7 @@ module.exports = { // desktop-gui/src/specs/specs-store.js return spec.relative.toLowerCase().includes(specFilter.toLowerCase()) } - const specFilterFn = specFilter ? specFilterContains : R.T + const specFilterFn = specFilter ? specFilterContains : () => true const getSpecsHelper = () => { // grab all of the specs if this is ci @@ -85,17 +84,21 @@ module.exports = { debug('returning all specs') return specsUtil.default.findSpecs(config) - .then(R.tap((specs) => { - return debug('found __all specs %o', specs) - })) + .then((specs) => { + debug('found __all specs %o', specs) + + return specs + }) .filter(specFilterFn) .filter((foundSpec) => { return componentTestingEnabled ? foundSpec.specType === 'component' : foundSpec.specType === 'integration' - }).then(R.tap((specs) => { - return debug('filtered __all specs %o', specs) - })).map((spec) => { + }).then((specs) => { + debug('filtered __all specs %o', specs) + + return specs + }).map((spec) => { // grab the name of each return spec.absolute }).map(convertSpecPath) diff --git a/packages/server/lib/cypress.js b/packages/server/lib/cypress.js index c9c37ff0bb47..1b099dc4ccef 100644 --- a/packages/server/lib/cypress.js +++ b/packages/server/lib/cypress.js @@ -9,7 +9,6 @@ require('./environment') // essentially do it all again when we boot the correct // mode. -const R = require('ramda') const Promise = require('bluebird') const debug = require('debug')('cypress:server:cypress') const argsUtils = require('./util/args') @@ -123,7 +122,7 @@ module.exports = { // if the CLI passed "--" somewhere, we need to remove it // for https://github.com/cypress-io/cypress/issues/5466 - argv = R.without('--', argv) + argv = argv.filter((val) => val !== '--') let options diff --git a/packages/server/lib/exec.js b/packages/server/lib/exec.js index 3e49d85c6868..d8f61eecc7cd 100644 --- a/packages/server/lib/exec.js +++ b/packages/server/lib/exec.js @@ -1,18 +1,25 @@ const Promise = require('bluebird') const execa = require('execa') -const R = require('ramda') const shellEnv = require('shell-env') +const _ = require('lodash') const log = require('./log') const utils = require('./util/shell') -const pickMainProps = R.pick(['stdout', 'stderr', 'code']) +const pickMainProps = (val) => _.pick(val, ['stdout', 'stderr', 'code']) -const trimStdio = R.evolve({ - stdout: R.trim, - stderr: R.trim, -}) +const trimStdio = (val) => { + const result = { ...val } -const loadShellVars = R.memoizeWith(R.toString, shellEnv) + if (_.isString(val.stdout)) { + result.stdout = val.stdout.trim() + } + + if (_.isString(val.stderr)) { + result.stderr = val.stderr.trim() + } + + return result +} module.exports = { run (projectRoot, options) { @@ -38,9 +45,9 @@ module.exports = { } const run = () => { - return loadShellVars() + return shellEnv() .then((shellVariables) => { - const env = R.mergeAll([{}, shellVariables, process.env, options.env]) + const env = _.merge({}, shellVariables, process.env, options.env) return utils.getShell(env.SHELL) .then((shell) => { diff --git a/packages/server/lib/modes/info.js b/packages/server/lib/modes/info.js index d763109b59dd..81f7c667f17f 100644 --- a/packages/server/lib/modes/info.js +++ b/packages/server/lib/modes/info.js @@ -3,7 +3,6 @@ const debug = require('debug')('cypress:server:info') const launcher = require('@packages/launcher') const pluralize = require('pluralize') const { stripIndent } = require('common-tags') -const { sortWith, ascend, prop } = require('ramda') const browserUtils = require('../browsers/utils') const _ = require('lodash') const chalk = require('chalk') @@ -83,11 +82,7 @@ const print = (browsers = []) => { console.log('') - const sortByNameAndMajor = sortWith([ - ascend(prop('name')), - ascend(prop('majorVersion')), - ]) - const sortedByNameAndMajorVersion = sortByNameAndMajor(browsers) + const sortedByNameAndMajorVersion = _.sortBy(browsers, ['name', 'majorVersion']) sortedByNameAndMajorVersion.forEach((browser, k) => { const text = stripIndent` diff --git a/packages/server/lib/scaffold.js b/packages/server/lib/scaffold.js index a65510bd4f29..a3dd38b35aa0 100644 --- a/packages/server/lib/scaffold.js +++ b/packages/server/lib/scaffold.js @@ -8,7 +8,6 @@ const glob = require('./util/glob') const cwd = require('./cwd') const debug = require('debug')('cypress:server:scaffold') const errors = require('./errors') -const { isEmpty } = require('ramda') const { isDefault } = require('./util/config') const getExampleSpecsFullPaths = cypressEx.getPathToExamples() @@ -116,8 +115,8 @@ const isNewProject = (config) => { debug('determine if we should scaffold:') // TODO: add tests for this - debug('- empty?', isEmpty(files)) - if (isEmpty(files)) { + debug('- empty?', _.isEmpty(files)) + if (_.isEmpty(files)) { return true } diff --git a/packages/server/lib/util/newlines.js b/packages/server/lib/util/newlines.js index ef4155558e68..960d31c73f76 100644 --- a/packages/server/lib/util/newlines.js +++ b/packages/server/lib/util/newlines.js @@ -1,10 +1,16 @@ -const R = require('ramda') - const addNewlineAtEveryNChar = (str, n) => { - // Add a newline char after every 'n' char - if (str) { - return R.splitEvery(n, str).join('\n') + if (!str) { + return str } + + let result = [] + let idx = 0 + + while (idx < str.length) { + result.push(str.slice(idx, idx += n)) + } + + return result.join('\n') } module.exports = { diff --git a/packages/server/lib/util/shell.js b/packages/server/lib/util/shell.js index 7df783b4f886..ca107de71450 100644 --- a/packages/server/lib/util/shell.js +++ b/packages/server/lib/util/shell.js @@ -1,7 +1,6 @@ const _ = require('lodash') const Promise = require('bluebird') const execa = require('execa') -const R = require('ramda') const os = require('os') const commandExistsModule = require('command-exists') const log = require('../log') @@ -71,7 +70,7 @@ const sourceShellCommand = function (cmd, shell) { const findBash = () => { return execa.shell('which bash') - .then(R.prop('stdout')) + .then((val) => val.stdout) } const getShell = function (shell) { diff --git a/packages/server/lib/util/specs.ts b/packages/server/lib/util/specs.ts index 8545442c02dc..8332d072f963 100644 --- a/packages/server/lib/util/specs.ts +++ b/packages/server/lib/util/specs.ts @@ -1,5 +1,4 @@ import _ from 'lodash' -import R from 'ramda' import la from 'lazy-ass' import path from 'path' import check from 'check-more-types' @@ -171,15 +170,13 @@ function findSpecsOfType (searchFolder: string, commonSearchOptions: CommonSearc return Bluebird.mapSeries(testFilesPatterns, findOnePattern).then(_.flatten) } -const setTestType = (testType: Cypress.CypressSpecType) => R.map(R.set(R.lensProp('specType'), testType)) - const findIntegrationSpecs = (searchFolder: string | undefined, commonSearchOptions: CommonSearchOptions, specPattern: string | undefined) => { if (!searchFolder) { return [] } return findSpecsOfType(searchFolder, commonSearchOptions, specPattern) - .then(setTestType(SPEC_TYPES.INTEGRATION)) + .then((val) => val.map((s) => ({ ...s, specType: SPEC_TYPES.INTEGRATION }))) } const findComponentSpecs = (searchFolder: string | undefined | false, commonSearchOptions: CommonSearchOptions, specPattern: string | undefined) => { @@ -188,7 +185,7 @@ const findComponentSpecs = (searchFolder: string | undefined | false, commonSear } return findSpecsOfType(searchFolder, commonSearchOptions, specPattern) - .then(setTestType(SPEC_TYPES.COMPONENT)) + .then((val) => val.map((s) => ({ ...s, specType: SPEC_TYPES.COMPONENT }))) } const printFoundSpecs = (foundSpecs: Cypress.Spec[]) => { diff --git a/packages/server/package.json b/packages/server/package.json index 2e9b5cd098a8..150dd966391a 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -94,7 +94,6 @@ "ospath": "1.2.2", "p-queue": "6.1.0", "pluralize": "8.0.0", - "ramda": "0.27.1", "randomstring": "1.1.5", "recast": "0.20.4", "resolve": "1.17.0", diff --git a/packages/server/test/integration/cli_spec.js b/packages/server/test/integration/cli_spec.js index 94bc65f8acd2..0dce2f0ebafa 100644 --- a/packages/server/test/integration/cli_spec.js +++ b/packages/server/test/integration/cli_spec.js @@ -1,7 +1,6 @@ require('../spec_helper') const _ = require('lodash') -const R = require('ramda') const cp = require('child_process') const pkg = require('../../package.json') const execa = require('execa') @@ -102,7 +101,7 @@ describe('CLI Interface', () => { beforeEach(() => { return execa('npm', ['-version']) - .then(R.prop('stdout')) + .then((val) => val.stdout) .then((version) => { npmVersion = version diff --git a/packages/server/test/integration/cypress_spec.js b/packages/server/test/integration/cypress_spec.js index 7a4d14fff8e6..b07ca9fdeff8 100644 --- a/packages/server/test/integration/cypress_spec.js +++ b/packages/server/test/integration/cypress_spec.js @@ -1,7 +1,6 @@ /* eslint-disable no-restricted-properties */ require('../spec_helper') -const R = require('ramda') const _ = require('lodash') const path = require('path') const EE = require('events') @@ -1054,7 +1053,7 @@ describe('lib/cypress', () => { // when we work with the browsers we set a few extra flags const chrome = _.find(TYPICAL_BROWSERS, { name: 'chrome' }) - const launchedChrome = R.merge(chrome, { + const launchedChrome = _.defaults({}, chrome, { isHeadless: true, isHeaded: false, }) diff --git a/packages/server/test/unit/config_spec.js b/packages/server/test/unit/config_spec.js index 6805ce8badb4..150ed05e2b82 100644 --- a/packages/server/test/unit/config_spec.js +++ b/packages/server/test/unit/config_spec.js @@ -1,7 +1,6 @@ require('../spec_helper') const _ = require('lodash') -const R = require('ramda') const debug = require('debug')('test') const config = require(`${root}lib/config`) const errors = require(`${root}lib/errors`) @@ -1072,7 +1071,7 @@ describe('lib/config', () => { cfg.projectRoot = '/foo/bar/' return config.mergeDefaults(cfg, options) - .then(R.prop(prop)) + .then((val) => val[prop]) .then((result) => { expect(result).to.deep.eq(value) }) diff --git a/packages/server/test/unit/modes/run_spec.js b/packages/server/test/unit/modes/run_spec.js index 9f0e3f38600e..ba7decd82a53 100644 --- a/packages/server/test/unit/modes/run_spec.js +++ b/packages/server/test/unit/modes/run_spec.js @@ -1,10 +1,10 @@ require('../../spec_helper') +const _ = require('lodash') const Promise = require('bluebird') const electron = require('electron') const stripAnsi = require('strip-ansi') const snapshot = require('snap-shot-it') -const R = require('ramda') const pkg = require('@packages/root') const { fs } = require(`${root}../lib/util/fs`) const user = require(`${root}../lib/user`) @@ -862,7 +862,7 @@ describe('lib/modes/run', () => { // for some reason I cannot stub property value using Sinon let version // save a copy of "true" experiments right away - const names = R.clone(experimental.names) + const names = _.cloneDeep(experimental.names) before(() => { // reset experiments names before each test diff --git a/packages/server/test/unit/util/specs_spec.js b/packages/server/test/unit/util/specs_spec.js index 582d0eeb3087..dc7f7567f838 100644 --- a/packages/server/test/unit/util/specs_spec.js +++ b/packages/server/test/unit/util/specs_spec.js @@ -1,6 +1,6 @@ require('../../spec_helper') -const R = require('ramda') +const _ = require('lodash') const path = require('path') const config = require(`${root}../lib/config`) const specsUtil = require(`${root}../lib/util/specs`).default @@ -33,7 +33,7 @@ describe('lib/util/specs', () => { it('returns absolute filenames', function () { return specsUtil .findSpecs(this.config) - .then((R.forEach(checkFoundSpec))) + .then(((specs) => specs.forEach(checkFoundSpec))) }) it('handles fixturesFolder being false', function () { @@ -65,7 +65,7 @@ describe('lib/util/specs', () => { cfg.resolved.testingType = { value: 'component' } return specsUtil.findSpecs(cfg) - }).then(R.project(['relative', 'specType'])) + }).then((val) => val.map((spec) => _.pick(spec, ['relative', 'specType']))) .then((files) => { expect(files).to.deep.equal([ { diff --git a/scripts/binary/build.js b/scripts/binary/build.js index 2990404ba0f1..113a36e6cddd 100644 --- a/scripts/binary/build.js +++ b/scripts/binary/build.js @@ -10,7 +10,6 @@ const pluralize = require('pluralize') const execa = require('execa') const electron = require('@packages/electron') const debug = require('debug')('cypress:binary') -const R = require('ramda') const la = require('lazy-ass') const check = require('check-more-types') @@ -116,7 +115,11 @@ const buildCypressApp = function (platform, version, options = {}) { return packages.runAllBuild() // Promise.resolve() - .then(R.tap(logBuiltAllPackages)) + .then((val) => { + logBuiltAllPackages(val) + + return val + }) } const copyPackages = function () { @@ -343,7 +346,7 @@ require('./packages/server')\ console.log('in build folder %s', buildFolder) return execa('ls', ['-la', buildFolder]) - .then(R.prop('stdout')) + .then((val) => val.stdout) .then(console.log) } @@ -430,14 +433,16 @@ require('./packages/server')\ } const printDiskUsage = function (sizes) { - const bySize = R.sortBy(R.prop('1')) - - return console.log(bySize(R.toPairs(sizes))) + return console.log(_.sortBy(_.toPairs(sizes), 1)) } return execa('du', args) .then(parseDiskUsage) - .then(R.tap(printDiskUsage)) + .then((val) => { + printDiskUsage(val) + + return val + }) .then((sizes) => { return performanceTracking.track('test runner size', sizes) }) diff --git a/scripts/binary/bump.js b/scripts/binary/bump.js index 335dfbfd4132..42976a8b06c2 100644 --- a/scripts/binary/bump.js +++ b/scripts/binary/bump.js @@ -4,7 +4,6 @@ const bumpercar = require('@cypress/bumpercar') const path = require('path') const la = require('lazy-ass') const check = require('check-more-types') -const R = require('ramda') const { configFromEnvOrJsonFile, filenameToShellVariable } = require('@cypress/env-or-json-file') const makeEmptyGithubCommit = require('make-empty-github-commit') const parse = require('parse-github-repo-url') @@ -88,7 +87,7 @@ const getCiConfig = function () { return config } -const awaitEachProjectAndProvider = function (projects, fn, filter = R.identity) { +const awaitEachProjectAndProvider = function (projects, fn, filter = (val) => val) { const creds = getCiConfig() // configure a new Bumpercar @@ -119,7 +118,7 @@ const awaitEachProjectAndProvider = function (projects, fn, filter = R.identity) car = bumpercar.create({ providers }) - const filteredProjects = R.filter(filter, projects) + const filteredProjects = projects.filter(filter) if (check.empty(filteredProjects)) { console.log('⚠️ zero filtered projects left after filtering') @@ -136,26 +135,17 @@ const awaitEachProjectAndProvider = function (projects, fn, filter = R.identity) // do not trigger all projects if there is specific provider // for example appVeyor should be used for Windows testing const getFilterByProvider = function (providerName, platformName) { - let platformFilter; let providerFilter + return (val) => { + if (providerName && val.provider !== providerName) { + return false + } - if (providerName) { - console.log('only allow projects for provider', providerName) - providerFilter = R.propEq('provider', providerName) - } else { - providerFilter = R.identity - } + if (platformName && val.platform !== platformName) { + return false + } - if (platformName) { - console.log('only allow projects for platform', platformName) - platformFilter = R.propEq('platform', platformName) - } else { - platformFilter = R.identity + return val } - - // combined filter is when both filters pass - const projectFilter = R.allPass([providerFilter, platformFilter]) - - return projectFilter } module.exports = { @@ -199,7 +189,7 @@ module.exports = { } return awaitEachProjectAndProvider(PROJECTS, updateProject, projectFilter) - .then(R.always(result)) + .then(() => result) }, // triggers test projects on multiple CIs diff --git a/scripts/binary/index.js b/scripts/binary/index.js index 50c21ebcc1f5..79a689393d0b 100644 --- a/scripts/binary/index.js +++ b/scripts/binary/index.js @@ -12,7 +12,6 @@ const la = require('lazy-ass') const check = require('check-more-types') const debug = require('debug')('cypress:binary') const questionsRemain = require('@cypress/questions-remain') -const R = require('ramda') const rp = require('@cypress/request-promise') const zip = require('./zip') @@ -37,7 +36,7 @@ const fail = (str) => { return console.log(chalk.bgRed(` ${chalk.black(str)} `)) } -const zippedFilename = R.always(upload.zipName) +const zippedFilename = () => upload.zipName // goes through the list of properties and asks relevant question // resolves with all relevant options set diff --git a/scripts/binary/meta.js b/scripts/binary/meta.js index eb25b5e5bcda..4a89711b5617 100644 --- a/scripts/binary/meta.js +++ b/scripts/binary/meta.js @@ -1,8 +1,8 @@ const path = require('path') const la = require('lazy-ass') const check = require('check-more-types') -const R = require('ramda') const os = require('os') +const _ = require('lodash') // canonical platform names const platforms = { @@ -11,11 +11,11 @@ const platforms = { windows: 'win32', } -const isValidPlatform = check.oneOf(R.values(platforms)) +const isValidPlatform = check.oneOf(_.values(platforms)) const checkPlatform = (platform) => { return la(isValidPlatform(platform), - 'invalid build platform', platform, 'valid choices', R.values(platforms)) + 'invalid build platform', platform, 'valid choices', _.values(platforms)) } const buildRootDir = () => { diff --git a/scripts/binary/move-binaries.ts b/scripts/binary/move-binaries.ts index f2571664e171..180c27b402c2 100644 --- a/scripts/binary/move-binaries.ts +++ b/scripts/binary/move-binaries.ts @@ -1,3 +1,5 @@ +import _ from 'lodash' + import { s3helpers } from './s3-api' const debug = require('debug')('cypress:binary') import la from 'lazy-ass' @@ -5,7 +7,6 @@ import is from 'check-more-types' // using "arg" module for parsing CLI arguments // because it plays really nicely with TypeScript import arg from 'arg' -import { prop, sortBy, last, equals } from 'ramda' import pluralize from 'pluralize' // inquirer-confirm is missing type definition @@ -87,9 +88,9 @@ export const findBuildByCommit = (commit: commit, s3paths: string[]) => { // each path includes commit SHA and build number, let's pick the last build const parsedBuilds = matching.map(parseBuildPath) - const sortedBuilds = sortBy(prop('build'))(parsedBuilds) + const sortedBuilds = _.sortBy(parsedBuilds, 'build') - return prop('s3path', last(sortedBuilds)) + return _.last(sortedBuilds).s3path } /** @@ -141,14 +142,14 @@ export const moveBinaries = async (args = []) => { // found s3 paths with last build for same commit for all platforms const lastBuilds: Desktop[] = [] - let platforms: platformArch[] = uploadUtils.getValidPlatformArchs() + let platforms: platformArch[] = uploadUtils.getValidPlatformArchs() as platformArch[] if (options['--platformArch']) { const onlyPlatform = options['--platformArch'] console.log('only moving single platform %s', onlyPlatform) la(uploadUtils.isValidPlatformArch(onlyPlatform), 'invalid platform-arch', onlyPlatform) - platforms = platforms.filter(equals(onlyPlatform)) + platforms = platforms.filter((p) => p === onlyPlatform) } la(platforms.length, 'no platforms to move', platforms) @@ -193,7 +194,7 @@ export const moveBinaries = async (args = []) => { console.log('Copying %s for commit %s', pluralize('last build', lastBuilds.length, true), releaseOptions.commit) - console.log(lastBuilds.map(prop('s3zipPath')).join('\n')) + console.log(lastBuilds.map((v) => v.s3zipPath).join('\n')) try { await prompts.shouldCopy() diff --git a/scripts/binary/s3-api.ts b/scripts/binary/s3-api.ts index a862ce982a9e..52eca2f2c1af 100644 --- a/scripts/binary/s3-api.ts +++ b/scripts/binary/s3-api.ts @@ -2,10 +2,9 @@ const debug = require('debug')('cypress:binary') import la from 'lazy-ass' import is from 'check-more-types' import S3 from 'aws-sdk/clients/s3' -import { prop, values, all } from 'ramda' export const hasOnlyStringValues = (o) => { - return all(is.unemptyString, values(o)) + return Object.values(o).every((v) => is.unemptyString(v)) } /** @@ -67,7 +66,7 @@ export const s3helpers = { debug('AWS result in %s %s', bucket, prefix) debug('%o', result) - resolve(result.CommonPrefixes.map(prop('Prefix'))) + resolve(result.CommonPrefixes.map((val) => val.Prefix)) }) }) }, diff --git a/scripts/binary/upload-unique-binary.js b/scripts/binary/upload-unique-binary.js index e6b0fca2eed4..f2e381f2a368 100644 --- a/scripts/binary/upload-unique-binary.js +++ b/scripts/binary/upload-unique-binary.js @@ -8,8 +8,8 @@ const awspublish = require('gulp-awspublish') const rename = require('gulp-rename') const gulpDebug = require('gulp-debug') const gulp = require('gulp') -const R = require('ramda') const hasha = require('hasha') +const _ = require('lodash') const uploadUtils = require('./util/upload') const { @@ -147,9 +147,8 @@ const uploadUniqueBinary = function (args = []) { }) console.log('Upload unique binary options') - const pickOptions = R.pick(['file', 'version', 'hash']) - console.log(pickOptions(options)) + console.log(_.pick(options, ['file', 'version', 'hash'])) la(check.unemptyString(options.file), 'missing file to upload', options) la(isBinaryFile(options.file), diff --git a/scripts/binary/util/packages.js b/scripts/binary/util/packages.js index a628f7fb9e25..5270db008a50 100644 --- a/scripts/binary/util/packages.js +++ b/scripts/binary/util/packages.js @@ -8,7 +8,6 @@ const retry = require('bluebird-retry') const la = require('lazy-ass') const check = require('check-more-types') const execa = require('execa') -const R = require('ramda') const prettyMs = require('pretty-ms') const pluralize = require('pluralize') const debug = require('debug')('cypress:binary') @@ -39,7 +38,7 @@ const createCLIExecutable = (command) => { return execa(command, args, { stdio: 'inherit', cwd, env }) // if everything is ok, resolve with nothing - .then(R.always(undefined)) + .then(() => undefined) .catch((result) => { const msg = `${commandToExecute} failed with exit code: ${result.code}` diff --git a/scripts/binary/zip.js b/scripts/binary/zip.js index 3283e72cb355..355dfd093fc6 100644 --- a/scripts/binary/zip.js +++ b/scripts/binary/zip.js @@ -4,7 +4,6 @@ const execa = require('execa') const path = require('path') const la = require('lazy-ass') const fs = require('fs') -const R = require('ramda') const filesize = require('filesize') // prints disk usage numbers using "du" utility @@ -59,7 +58,7 @@ const macZip = (src, dest) => { return execa(zip, options) .then(onZipFinished) - .then(R.always(dest)) + .then(() => dest) .catch(onError) }) } @@ -100,8 +99,12 @@ const linuxZipAction = function (parentFolder, dest, relativeSource) { return execa(cmd, { shell: true }) .then(onZipFinished) - .then(R.always(dest)) - .then(R.tap(checkZipSize)) + .then(() => dest) + .then((val) => { + checkZipSize(val) + + return val + }) .catch(onError) } @@ -123,7 +126,7 @@ const renameFolder = function (src) { console.log(`renaming ${src} to ${renamed}`) return fs.promises.rename(src, renamed) - .then(R.always(renamed)) + .then(() => renamed) } // resolves with zipped filename @@ -136,7 +139,7 @@ const linuxZip = function (src, dest) { return renameFolder(src) .then((renamedSource) => { return printFileSizes(renamedSource) - .then(R.always(renamedSource)) + .then(() => renamedSource) }).then((renamedSource) => { console.log(`will zip folder ${renamedSource}`) const parentFolder = path.dirname(renamedSource) @@ -173,8 +176,12 @@ const windowsZipAction = function (src, dest) { return execa(cmd, { shell: true }) .then(onZipFinished) - .then(R.always(dest)) - .then(R.tap(checkZipSize)) + .then(() => dest) + .then((val) => { + checkZipSize(val) + + return val + }) .catch(onError) } diff --git a/scripts/unit/binary/bump-spec.js b/scripts/unit/binary/bump-spec.js index 7cdf183a031a..4ebc06e0bf89 100644 --- a/scripts/unit/binary/bump-spec.js +++ b/scripts/unit/binary/bump-spec.js @@ -1,6 +1,7 @@ const la = require('lazy-ass') const snapshot = require('snap-shot-it') -const R = require('ramda') +const _ = require('lodash') + const bump = require('../../binary/bump') /* eslint-env mocha */ @@ -19,10 +20,10 @@ describe('bump', () => { const projects = bump.remapProjects(bump._PROVIDERS) const filter = bump.getFilterByProvider() // should return ALL projects - const filtered = R.filter(filter, projects) + const filtered = projects.filter(filter) la( - R.equals(filtered, projects), + _.isEqual(filtered, projects), 'should have kept all projects', filtered, ) @@ -38,7 +39,7 @@ describe('bump', () => { ) const filter = bump.getFilterByProvider('circle', 'darwin') - const filtered = R.filter(filter, projects) + const filtered = projects.filter(filter) la(filtered.length, 'there should be at least a few projects', filtered) snapshot('should have just circle and darwin projects', filtered) diff --git a/system-tests/lib/performance.js b/system-tests/lib/performance.js index 23a423801673..87899bbb0f35 100644 --- a/system-tests/lib/performance.js +++ b/system-tests/lib/performance.js @@ -4,7 +4,6 @@ const pkg = require('@packages/root') const Promise = require('bluebird') const rp = require('@cypress/request-promise') const debug = require('debug')('cypress:performance') -const R = require('ramda') const API_URL = process.env.PERF_API_URL || 'http://localhost:2999/track' const API_KEY = process.env.PERF_API_KEY @@ -22,18 +21,17 @@ function track (type, data) { return commitInfo() .then((commitInformation) => { const ciInformation = ciProvider.commitParams() || {} - const merged = R.mergeWith(R.or, commitInformation, ciInformation) - const { sha, branch, author, message, timestamp } = merged + const timestamp = commitInformation.timestamp || ciInformation.timestamp const timestampISO = new Date(timestamp * 1000).toISOString() const body = { type, data: { 'package.json Version': pkg.version, - 'Commit SHA': sha, - 'Commit Branch': branch, - 'Commit Author': author, - 'Commit Message': message, + 'Commit SHA': commitInformation.sha || ciInformation.sha, + 'Commit Branch': commitInformation.branch || ciInformation.branch, + 'Commit Author': commitInformation.author || ciInformation.author, + 'Commit Message': commitInformation.message || ciInformation.message, 'Commit Timestamp': timestampISO, 'Build URL': process.env.CIRCLE_BUILD_URL, 'Build Platform': process.platform, diff --git a/system-tests/package.json b/system-tests/package.json index f88ad8abd1f6..2066201c578f 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -64,7 +64,6 @@ "multer": "1.4.2", "nock": "12.0.2", "proxyquire": "2.1.3", - "ramda": "0.27.1", "semver": "7.3.2", "sinon": "5.1.1", "snap-shot-it": "7.9.3", diff --git a/yarn.lock b/yarn.lock index 559cc1c7f703..4eac6e54def7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32160,7 +32160,7 @@ ramda@0.27.0: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.0.tgz#915dc29865c0800bf3f69b8fd6c279898b59de43" integrity sha512-pVzZdDpWwWqEVVLshWUHjNwuVP7SfcmPraYuqocJp1yo2U1R7P+5QAfDhdItkuoGqIBnBYrtPp7rEPqDn9HlZA== -ramda@0.27.1, ramda@^0.27.1, ramda@~0.27.1: +ramda@0.27.1, ramda@^0.27.1: version "0.27.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==