remake
Advanced tools
Comparing version 1.6.0 to 1.7.0
137
index.js
@@ -1,114 +0,45 @@ | ||
const fs = require("fs"); | ||
const path = require('path'); | ||
const rimraf = require('rimraf'); | ||
const shell = require('shelljs'); | ||
const program = require('commander'); | ||
const ncp = require('ncp'); | ||
const boxen = require('boxen'); | ||
const chalk = require('chalk'); | ||
const { getSuccessMessage } = require('./utils/get-success-message'); | ||
const { getVariablesEnvFileText } = require('./utils/get-variables-env-file-text'); | ||
const { version } = require('./package.json'); | ||
let boxenOptions = {padding: 3, margin: 1, borderStyle: 'double', borderColor: 'green'}; | ||
const Configstore = require('configstore'); | ||
program.version("v" + version); | ||
const { clean, build, deploy, serve, updateFramework, create } = require('./utils/commands'); | ||
const { version, name } = require('./package.json'); | ||
program | ||
.option('create <project-dir>', 'Generate a new Remake project') | ||
.option('update-framework', 'Update the Remake framework in your project'); | ||
log = console.log; | ||
remakeCliConfig = new Configstore(name, { user: {} }); | ||
remakeServiceHost = 'https://remakeapps.com'; | ||
module.exports = () => { | ||
program.parse(process.argv); | ||
program | ||
.version('v' + version, '-v, --version', 'output the current version') | ||
.name('remake') | ||
.usage('command [--help]') | ||
let projectDir = program.create; | ||
if (projectDir) { | ||
let ncpOptions = {clobber: false, dereference: false, stopOnErr: true}; | ||
program | ||
.command('create <projectDir>') | ||
.description('Create a new Remake project') | ||
.option('-m, --multitenant', 'create a multi tenant Remake app') | ||
.action((projectDir, options) => create(projectDir, options)); | ||
let newProjectDirPath = path.join(process.cwd(), projectDir); | ||
program | ||
.command('update-framework') | ||
.description('Update the Remake framework in your project') | ||
.action(() => updateFramework()); | ||
if (fs.existsSync(newProjectDirPath)) { | ||
console.log(chalk.bgRed("Error: Cannot write to a directory that already exists")); | ||
return; | ||
} | ||
program | ||
.command('deploy') | ||
.description('Deploy your Remake app on the Remake server') | ||
.action(() => deploy()); | ||
// STEP 1 | ||
console.log(chalk.bgGreen("(1/4) Creating new project")); | ||
shell.exec(`git clone --depth 1 https://github.com/panphora/remake-framework.git ${projectDir}`); | ||
program | ||
.command('build') | ||
.description('Build your Remake app') | ||
.action(() => build()); | ||
// STEP 2a & 2b | ||
console.log(chalk.bgGreen("(2/4) Tidy up new project directory")); | ||
rimraf(path.join(newProjectDirPath, ".git"), function (rimrafError) { | ||
program | ||
.command('clean') | ||
.description('Wipe the local Remake environment including caches and build assets') | ||
.action(() => clean()); | ||
if (rimrafError) { | ||
console.log(chalk.bgRed("Error: Couldn't remove old .git directory from new project")); | ||
return; | ||
} | ||
// put project README in the right place | ||
shell.mv(path.join(newProjectDirPath, "README-FOR-BUNDLE.md"), path.join(newProjectDirPath, "README.md")); | ||
// STEP 3 | ||
console.log(chalk.bgGreen("(3/4) Installing npm dependencies")); | ||
shell.cd(newProjectDirPath); | ||
shell.exec("npm install"); | ||
// STEP 4 | ||
console.log(chalk.bgGreen("(4/4) Setting up variables.env")); | ||
fs.writeFile(path.join(newProjectDirPath, "variables.env"), getVariablesEnvFileText(), function (err) { | ||
if (err) { | ||
console.log(chalk.bgRed("Error: Couldn't create variables.env file")); | ||
return; | ||
} | ||
// SUCCESS!! | ||
console.log(boxen(getSuccessMessage(projectDir), boxenOptions)); | ||
}); | ||
}); | ||
} | ||
if (program.updateFramework) { | ||
let ncpOptions = {clobber: true, dereference: false, stopOnErr: true}; | ||
let cwd = process.cwd(); | ||
let remakeFrameworkPathInApplicationDirectory = path.join(process.cwd(), "_remake"); | ||
// 1. CHECK IF _remake DIRECTORY EXISTS | ||
if (!fs.existsSync(remakeFrameworkPathInApplicationDirectory)) { | ||
console.log(chalk.bgRed("Error: Cannot find a _remake directory in this project")); | ||
return; | ||
} | ||
// 2. REMOVE OLD _remake DIRECTORY | ||
console.log(chalk.bgGreen("(1/2) Removing old _remake directory...")); | ||
rimraf(remakeFrameworkPathInApplicationDirectory, function (rimrafError) { | ||
if (rimrafError) { | ||
console.log(chalk.bgRed("Error: Couldn't remove old _remake directory")); | ||
return; | ||
} | ||
// 3. GIT CLONE THE ENTIRE FULL STACK STARTER PROJECT INTO THE CURRENT DIRECTORY | ||
console.log(chalk.bgGreen("(2/2) Copying framework into _remake directory...")); | ||
shell.exec("git clone --depth 1 https://github.com/panphora/remake-framework.git"); | ||
// 4. MOVE THE _remake DIRECTORY TO WHERE THE OLD _remake DIRECTORY WAS | ||
let currentRemakeDir = path.join(cwd, "remake-framework/_remake"); | ||
shell.mv(path.join(cwd, "remake-framework/_remake"), remakeFrameworkPathInApplicationDirectory); | ||
rimraf(path.join(cwd, "remake-framework"), function (rimrafError) { | ||
if (rimrafError) { | ||
console.log(chalk.bgRed("Error cleaning up: Couldn't remove the ./remake-framework directory")); | ||
return; | ||
} | ||
console.log(chalk.bgGreen("Successfully updated Remake!")); | ||
}); | ||
}); | ||
} | ||
} | ||
module.exports = async () => { | ||
program.parse(process.argv) | ||
} |
{ | ||
"name": "remake", | ||
"version": "1.6.0", | ||
"version": "1.7.0", | ||
"description": "Generate a full-stack Remake web app", | ||
@@ -31,7 +31,14 @@ "license": "MIT", | ||
"dependencies": { | ||
"archiver": "^3.1.1", | ||
"axios": "^0.19.0", | ||
"boxen": "^4.1.0", | ||
"chalk": "^2.4.2", | ||
"commander": "^3.0.0", | ||
"configstore": "^5.0.0", | ||
"es6-promisify": "^6.0.2", | ||
"form-data": "^2.5.1", | ||
"inquirer": "^7.0.0", | ||
"nanoid": "^2.0.3", | ||
"ncp": "^2.0.0", | ||
"ora": "^4.0.2", | ||
"rimraf": "^3.0.0", | ||
@@ -38,0 +45,0 @@ "shelljs": "^0.8.3" |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
463689
43
971
14
4
+ Addedarchiver@^3.1.1
+ Addedaxios@^0.19.0
+ Addedconfigstore@^5.0.0
+ Addedes6-promisify@^6.0.2
+ Addedform-data@^2.5.1
+ Addedinquirer@^7.0.0
+ Addedora@^4.0.2
+ Addedansi-escapes@4.3.2(transitive)
+ Addedarchiver@3.1.1(transitive)
+ Addedarchiver-utils@2.1.0(transitive)
+ Addedasync@2.6.4(transitive)
+ Addedasynckit@0.4.0(transitive)
+ Addedaxios@0.19.2(transitive)
+ Addedbase64-js@1.5.1(transitive)
+ Addedbl@4.1.0(transitive)
+ Addedbuffer@5.7.1(transitive)
+ Addedbuffer-crc32@0.2.13(transitive)
+ Addedchalk@4.1.2(transitive)
+ Addedchardet@0.7.0(transitive)
+ Addedcli-cursor@3.1.0(transitive)
+ Addedcli-spinners@2.9.2(transitive)
+ Addedcli-width@3.0.0(transitive)
+ Addedclone@1.0.4(transitive)
+ Addedcombined-stream@1.0.8(transitive)
+ Addedcompress-commons@2.1.1(transitive)
+ Addedconfigstore@5.0.1(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addedcrc@3.8.0(transitive)
+ Addedcrc32-stream@3.0.1(transitive)
+ Addedcrypto-random-string@2.0.0(transitive)
+ Addeddefaults@1.0.4(transitive)
+ Addeddelayed-stream@1.0.0(transitive)
+ Addeddot-prop@5.3.0(transitive)
+ Addedend-of-stream@1.4.4(transitive)
+ Addedes6-promisify@6.1.1(transitive)
+ Addedexternal-editor@3.1.0(transitive)
+ Addedfigures@3.2.0(transitive)
+ Addedfollow-redirects@1.5.10(transitive)
+ Addedform-data@2.5.1(transitive)
+ Addedfs-constants@1.0.0(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addediconv-lite@0.4.24(transitive)
+ Addedieee754@1.2.1(transitive)
+ Addedimurmurhash@0.1.4(transitive)
+ Addedinquirer@7.3.3(transitive)
+ Addedis-interactive@1.0.0(transitive)
+ Addedis-obj@2.0.0(transitive)
+ Addedis-typedarray@1.0.0(transitive)
+ Addedisarray@1.0.0(transitive)
+ Addedlazystream@1.0.1(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedlodash.defaults@4.2.0(transitive)
+ Addedlodash.difference@4.5.0(transitive)
+ Addedlodash.flatten@4.4.0(transitive)
+ Addedlodash.isplainobject@4.0.6(transitive)
+ Addedlodash.union@4.6.0(transitive)
+ Addedlog-symbols@3.0.0(transitive)
+ Addedmake-dir@3.1.0(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addedmimic-fn@2.1.0(transitive)
+ Addedmute-stream@0.0.8(transitive)
+ Addednormalize-path@3.0.0(transitive)
+ Addedonetime@5.1.2(transitive)
+ Addedora@4.1.1(transitive)
+ Addedos-tmpdir@1.0.2(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedreadable-stream@2.3.83.6.2(transitive)
+ Addedrestore-cursor@3.1.0(transitive)
+ Addedrun-async@2.4.1(transitive)
+ Addedrxjs@6.6.7(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedsemver@6.3.1(transitive)
+ Addedsignal-exit@3.0.7(transitive)
+ Addedstring_decoder@1.1.1(transitive)
+ Addedtar-stream@2.2.0(transitive)
+ Addedthrough@2.3.8(transitive)
+ Addedtmp@0.0.33(transitive)
+ Addedtslib@1.14.1(transitive)
+ Addedtype-fest@0.21.3(transitive)
+ Addedtypedarray-to-buffer@3.1.5(transitive)
+ Addedunique-string@2.0.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedwcwidth@1.0.1(transitive)
+ Addedwrite-file-atomic@3.0.3(transitive)
+ Addedxdg-basedir@4.0.0(transitive)
+ Addedzip-stream@2.1.3(transitive)