{"version":3,"sources":["jsdelivr-header.js","/npm/react-plus-plus@1.2.11/index.js"],"names":[],"mappings":"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","file":"/npm/react-plus-plus@1.2.11/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/react-plus-plus@1.2.11/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\n\n/* eslint no-console: 0 */\nconst readline = require('readline');\nconst fs = require('fs');\nconst childProcess = require('child_process');\n\nconst choices = [];\nconst files = [];\nconst dependencies = [\n  'node-sass', 'prop-types', 'redux', 'react-redux', 'redux-thunk',\n  'connected-react-router', 'history', 'react-router', 'react-router-dom',\n  'react-transition-group', 'is-url-external'\n];\n\n// Eslint Dependencies pulled separately\nconst devDependencies = ['husky', 'npm-run-all'];\n\nconst toDelete = ['src/App.js', 'src/App.css', 'src/App.test.js', 'src/index.css'];\nlet confirmed = false;\n\nconst appDir = process.cwd();\n\nconst joinPath = (path, base) => {\n  if (path.slice(0, 2) === './') {\n    return [base, path.slice(2)].join('/');\n  } else {\n    return [base, path].join('/');\n  }\n};\n\nconst modulePath = path => joinPath(path, __dirname);\nconst appPath = path => joinPath(path, appDir);\n\nconst localJson = JSON.parse(fs.readFileSync(modulePath('package.json')));\n\nconst title = `** REACT PLUS PLUS - VERSION ${localJson.version} **`;\nconst banner = title.replace(/./g, '*');\nconst keyline = `\\n${title.replace(/./g, '-')}\\n`;\n\nconsole.log('\\n');\nconsole.log(banner);\nconsole.log(title);\nconsole.log(banner);\n\nconst toExecute = [];\n\nconst rl = readline.createInterface({\n  input: process.stdin,\n  output: process.stdout\n});\n\nlet packageJson = {};\n\nconst ask = target => () => new Promise((resolve) => {\n  rl.question(`Integrate ${target}?\\n`, (answer) => {\n    if (answer[0].toLowerCase() === 'y') {\n      choices.push(target);\n    }\n    console.log('\\n');\n    resolve();\n  });\n});\n\nconst say = text => new Promise((resolve) => {\n  console.log(text);\n  resolve();\n});\n\nconst copy = (fromArr, toArr) => {\n  (fromArr || []).forEach(el => toArr.push(el));\n};\n\nconst makeChoice = choiceName => (yesObject, noObject = {}) => {\n  const object = choices.includes(choiceName) ? yesObject : noObject;\n  copy(object.files, files);\n  copy(object.dependencies, dependencies);\n  copy(object.devDependencies, devDependencies);\n  (object.exec || []).forEach(l => toExecute.push(l));\n  packageJson.scripts = { ...packageJson.scripts, ...(object.scripts || {}) };\n};\n\nsay('\\nReact++ boilerplate generator.')\n  .then(say('Includes: Redux, Thunk, Connected-React Router, SCSS, ESLint, and more!'))\n  .then(say('NOTE: You may want to commit your code before continuing.'))\n  .then(say('Please answer \\'Y\\' or \\'N\\' to the below configuration questions:'))\n  .then(say(keyline))\n  .then(ask('Netlify Functions'))\n  .then(ask('SCSS Linting'))\n  .then(ask('Immutable'))\n  .then(ask('Flow'))\n  // .then(ask('Styleguidist Component Docs')) // See below\n  .then(() => say(choices.length\n    ? `You chose to add: \\n${choices.map(choice => `- ${choice}`).join('\\n')}`\n    : 'You chose to stick with the base option set.'))\n  .then(() => new Promise((resolve) => {\n    rl.question('\\nIs that configuration correct?\\n', (answer) => {\n      confirmed = answer[0].toLowerCase() === 'y';\n      resolve();\n    });\n  }))\n  .then(() => {\n    if (!confirmed) {\n      console.log('OK. Canceling boilerplate generation!');\n      rl.close();\n      return;\n    }\n\n    try {\n      packageJson = JSON.parse(fs.readFileSync(appPath('package.json')));\n      const scripts = {\n        g: 'node generate.js',\n        s: 'yarn start',\n        t: 'yarn test',\n        lint: 'eslint .',\n        'lint:fix': 'eslint . --fix',\n        l: 'yarn lint:fix',\n        start: 'NODE_PATH=src/ react-scripts start',\n        build: 'NODE_PATH=src/ react-scripts build',\n        test: 'NODE_PATH=src react-scripts test',\n        eject: 'NODE_PATH=src react-scripts eject'\n      };\n      const husky = {\n        hooks: {\n          'pre-commit': 'yarn l'\n        }\n      };\n      packageJson.scripts = scripts;\n      packageJson.husky = husky;\n\n      copy([\n        { from: 'setup/src/redux/createStore.js' },\n        { from: 'setup/src/redux/reducers/index.js' },\n        { from: 'setup/src/redux/reducers/breakpoint.js' },\n        { from: 'setup/src/redux/actions.js' },\n        { from: 'setup/src/components/Link/index.js' },\n        { from: 'setup/src/containers/AppContainer/index.js' },\n        { from: 'setup/src/containers/AppContainer/AppContainer.scss' },\n        { from: 'setup/src/routes/index.js' },\n        { from: 'setup/src/routes/Home/index.js' },\n        { from: 'setup/src/routes/FourOhFour/index.js' },\n        { from: 'setup/src/utils/responsiveHelpers.js' },\n        { from: 'setup/generate.js' },\n        { from: 'setup/src/utils/propTypes.js' },\n\n        // Hidden files aren't copied, so they're not hidden here\n        { from: 'setup/gitignore', to: '.gitignore' },\n        { from: 'setup/eslintrc.js', to: '.eslintrc.js' },\n        { from: 'setup/eslintignore', to: '.eslintignore' },\n        { from: 'setup/circleci/config.yml', to: '.circleci/config.yml' },\n        { from: 'setup/docs/testing.md' },\n        { from: 'setup/docs/decisions.md' },\n        { from: 'setup/docs/app-structure.md' },\n        { from: 'setup/src/index.js' }\n      ], files);\n\n      makeChoice('Netlify Functions')({\n        files: [\n          { from: 'setup/netlify.lambda.toml', to: 'netlify.toml' },\n          { from: 'setup/src/setupProxy.js' },\n          { from: 'setup/docs/netlify-functions.md' },\n          { from: 'setup/src/lambda/hello.js' }\n        ],\n        dependencies: ['netlify-lambda', 'http-proxy-middleware'],\n        scripts: {\n          'start:app': scripts.start,\n          'start:lambda': 'NODE_PATH=src/ netlify-lambda serve src/lambda',\n          start: 'run-p start:**',\n          'build:app': scripts.build,\n          build: 'NODE_PATH=src/ run-p build:**',\n          'build:lambda': 'NODE_PATH=src/netlify-lambda build src/lambda',\n        }\n      }, {\n        files: [{ from: 'setup/netlify.toml' }]\n      });\n\n      makeChoice('SCSS Linting')({\n        files: [{ from: 'setup/sass-lint.yml', to: '.sass-lint.yml' }],\n        devDependencies: ['sass-lint'],\n        scripts: {\n          'lint:sass': 'sass-lint -v -q',\n          'lint:all': 'run-s lint:fix lint:sass'\n        }\n      });\n\n      makeChoice('Immutable')({\n        dependencies: ['immutable', 'react-immutable-proptypes'],\n        // Overwrite propType util with Immutable version\n        files: [{ from: 'setup/src/utils/immutablePropTypes.js', to: 'src/utils/propTypes.js' }]\n      });\n\n      makeChoice('Flow')({\n        dependencies: ['flow-bin', 'eslint-plugin-flowtype'],\n        scripts: {\n          flow: 'flow'\n        },\n        files: [{ from: 'setup/docs/flow.md' }],\n        exec: [\n          () => childProcess.execSync('yarn flow init'),\n          () => {\n            const originalRc = fs.readFileSync(appPath('.eslintrc.js')).toString();\n            const newRc = originalRc.replace(\n              'extends: \\'airbnb\\',',\n              'extends: [\\'airbnb\\', \\'plugin:flowtype/recommended\\'],\\n\\tplugins: [\\'flowtype\\'],'\n            );\n            fs.writeFileSync(appPath('.eslintrc.js'), newRc);\n          }\n        ]\n      });\n\n      // Blocked by need to eject to handle webpack config for SCSS imports\n      // makeChoice('Styleguidist Component Docs')({\n      //   devDependencies: ['react-styleguidist'],\n      //   scripts: {\n      //     'docs:serve': 'npx styleguidist server',\n      //     'docs:build': 'npx styleguidist build'\n      //   },\n      //   files: [{ from: 'setup/styleguide.config.js' }]\n      // });\n\n      console.log(keyline);\n      console.log('COPYING:');\n      files.forEach((pathObj) => {\n        const to = appPath(pathObj.to || pathObj.from.replace('setup/', ''));\n        const from = modulePath(pathObj.from);\n        const dirPath = to.split('/').slice(0, -1).join('/');\n        fs.mkdirSync(dirPath, { recursive: true });\n        console.log(`- FROM ${pathObj.from} TO ${to}`);\n        fs.copyFileSync(from, to);\n      });\n\n      console.log(`- FROM ${appPath('README.md')} TO ${appPath('docs/create-react-app.md')}`);\n      fs.copyFileSync(appPath('README.md'), appPath('docs/create-react-app.md'));\n      console.log(`- FROM ${modulePath('setup/README.md')} TO ${appPath('README.md')}`);\n      fs.copyFileSync(modulePath('setup/README.md'), appPath('README.md'));\n      console.log(keyline);\n\n      console.log('DELETING');\n      toDelete.forEach((file) => {\n        console.log(`- ${file}`);\n        fs.unlinkSync(appPath(file));\n      });\n      console.log(keyline);\n\n      console.log('UPDATING package.json');\n      fs.writeFileSync(appPath('package.json'), JSON.stringify(packageJson, null, 2));\n      console.log(keyline);\n\n      console.log('ADDING DEPENDENCIES...\\n');\n      childProcess.execSync(`yarn add ${dependencies.join(' ')}`);\n      console.log(keyline);\n\n      console.log('ADDING DEV DEPENDENCIES...\\n');\n      childProcess.execSync(`yarn add -D ${devDependencies.join(' ')}`);\n      console.log(keyline);\n\n      console.log('ADDING LINTING DEPENDENCIES...\\n');\n      const existingEslintVersion = childProcess.execSync('yarn run eslint -v');\n      childProcess.execSync('npx install-peerdeps --dev eslint-config-airbnb -Y');\n      console.log(keyline);\n\n      try {\n        console.log('REVERTING TO CORRECT ESLINT VERSION...\\n');\n        const outputLines = existingEslintVersion.toString();\n        const versionRegex = /v[0-9]+\\.[0-9]+\\.[0-9]+/g;\n        const version = outputLines.match(versionRegex)[1].slice(1);\n        childProcess.execSync(`yarn remove eslint && yarn add -D eslint@${version}`);\n      } catch (err) {\n        console.log('Failed to revert to correct eslint.');\n        console.log('Error hit:', err);\n        console.log('Run `yarn start` to see correct version to install.');\n      }\n\n      console.log(keyline);\n\n      console.log('FETCHING LATEST BASE STYLES');\n      childProcess.execSync('git clone git@github.com:weareredshift/base-sass.git styles');\n      childProcess.execSync(`rm -rf ${appPath('styles/.git')}`);\n      fs.unlinkSync(appPath('styles/.gitignore'));\n      fs.unlinkSync(appPath('styles/core.css'));\n      fs.unlinkSync(appPath('styles/README.md'));\n      fs.renameSync(appPath('styles'), appPath('src/styles'));\n      console.log(keyline);\n\n      if (toExecute.length > 0) {\n        console.log('EXECUTING ANY QUEUED COMMANDS');\n        toExecute.forEach((c) => {\n          try {\n            c();\n          } catch (e) {\n            console.log('Failed on queued command: ', c.toString());\n            console.log('Error:', e);\n          }\n        });\n        console.log(keyline);\n      }\n\n      childProcess.execSync(`rm -rf ${appPath('styles/.git')}`);\n      console.log('APP CONFIGURED!');\n      console.log('\\n');\n      console.log('You might want to commit these changes.');\n      console.log('View README.md for further instructions.');\n      console.log(keyline);\n    } catch (err) {\n      console.log(err);\n    }\n    rl.close();\n  });\n"]}