{"version":3,"sources":["jsdelivr-header.js","/npm/@peaknut/storeden-dev-cli@1.0.9/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;ACJA,MAAM,GAAK,QAAQ,YACb,KAAO,QAAQ,QACf,MAAQ,QAAQ,SAChB,IAAM,QAAQ,OACd,MAAQ,QAAQ,SAChB,SAAW,QAAQ,mBACnB,MAAQ,QAAQ,SAEtB,IAAI,aAAe,QAAQ,iBAE3B,MAAM,YAAc,QAAQ,kBACtB,UAAY,QAAQ,uBAEpB,aAAe,gBACrB,IAAI,WAAa,KAEjB,MAAM,KAAO,MACV,MAAM,uBACN,OAAO,QAAS,CACf,MAAO,IACP,SAAU,sCACV,KAAM,SACN,cAAc,IAEf,OAAO,WAAY,CAClB,MAAO,IACP,SAAU,yCACV,KAAM,SACN,cAAc,IAEf,OAAO,UAAW,CACjB,MAAO,IACP,SAAU,yBACV,KAAM,SACN,cAAc,IAEf,OAAO,YAAa,CACnB,MAAO,IACP,SAAU,yCACV,KAAM,SACN,cAAc,IAEf,OAAO,UAAW,CACjB,MAAO,IACP,SAAU,sDACV,KAAM,SACN,cAAc,IAEf,OAAO,aAAc,CACpB,MAAO,IACP,SAAU,0BACV,KAAM,SACN,cAAc,IAEf,OAAO,cAAc,IACpB,MAAO,EAAQ,GAAW,EAAI,MAAM,KACpC,MAAO,CAAE,OAAQ,KAAK,QAAQ,GAAS,UAAQ,IAEhD,OAAO,OAAQ,CACd,MAAO,IACP,SAAU,mBACV,KAAM,SACN,cAAc,IAEf,QAAQ,CACP,CAAC,oCAAqC,8BACtC,CAAC,4BAA6B,qBAG/B,cAAc,EAAG,GACjB,OACA,UAAU,KAEP,QAAU,MAAO,EAAM,KAC3B,MAAM,EAAU,IAAI,IAEpB,IACE,MAAM,EAAU,QAAQ,SAClB,QAAe,WAAW,KAAK,EAAU,KAAK,gBAAgB,KAE9D,EAAQ,QAAQ,OAAO,GACvB,IAA6B,IAAX,EAAM,GAAW,EAAM,IAAM,KAAK,QAAQ,GAElE,GAAI,EACF,EAAQ,QAAQ,GAAG,MAAM,KAAK,oBAAoB,gBAAyB,MAAM,KAAK,IAAM,EAAgB,WACvG,CACL,EAAQ,KAAK,UAAU,iCACvB,IAAI,EAAW,GACf,OAAG,CAED,GADA,EAAW,aAAa,SAAS,iEACH,KAA1B,EAAS,cAAsB,OAC3B,WAAW,MAAM,EAAU,KAAK,gBAAgB,KACtD,QAAQ,IAAI,oFACZ,KACF,CAAO,GAA8B,KAA1B,EAAS,cAAsB,CACxC,QAAQ,IAAI,8BACZ,KACF,CAAO,GAA8B,KAA1B,EAAS,cAAsB,OAClC,WAAW,UAAU,GAC3B,QAAQ,IAAI,qCACZ,KACF,CACE,QAAQ,IAAI,sBAGhB,CACF,CAEF,CAAE,MAAO,GACP,EAAQ,KAAK,EAAE,SACf,QAAQ,IAAI,MAAM,IAAI,+BAA+B,QACvD,GAGI,cAAgB,MAAO,EAAW,KAClC,IAA+C,GAAnC,EAAS,QAAQ,gBAC/B,QAAQ,IAAI,cAAc,MAAM,KAAK,SAAiB,MAAM,KAAK,kCAC3D,QAAQ,EAAM,GACtB,EAGF,WACE,GAAI,OAAO,KAAK,MAAM,QAAU,EAAuB,YAAlB,MAAM,WAC3C,IAAI,EAAO,KACX,GAAI,KAAK,KAEP,GADA,EAAO,KAAK,YAAY,GAAG,SAAS,KAAK,OACrC,EAAK,WAAY,CACnB,MAAO,EAAQ,GAAW,EAAK,WAAW,MAAM,KAChD,EAAK,WAAa,CAAE,OAAQ,KAAK,QAAQ,GAAS,UACpD,MACE,EAAK,WAAa,CAAE,OAAQ,KAAK,QAAQ,KAAM,QAAS,IAG5D,QAAQ,IAAI,GAEZ,WAAa,IAAI,UAAU,GAC3B,WAAW,OAEX,QACA,QAAQ,IAAI,MAAM,KAAK,6BAA6B,YAAY,eAAiB,mCAAmC,MAAM,KAAK,EAAK,WAAW,cAE/I,GAAG,MACD,EAAK,WAAW,OAChB,CAAE,WAAW,GACb,SAAS,cAAe,KAE3B,EAzBD","file":"/npm/@peaknut/storeden-dev-cli@1.0.9/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/@peaknut/storeden-dev-cli@1.0.9/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\nconst fs = require('fs-extra')\nconst path = require('path')\nconst chalk = require('chalk')\nconst Ora = require('ora')\nconst yargs = require('yargs')\nconst debounce = require('lodash.debounce')\nconst clear = require('clear')\n\nvar readlineSync = require('readline-sync');\n\nconst packageJson = require('./package.json')\nconst Developer = require('./helpers/developer')\n\nconst WORKSPACEDIR = '.sd-workspace'\nlet _developer = null\n\nconst argv = yargs\n  .usage('Usage: $0 [options]')\n  .option('email', {\n    alias: 'e',\n    describe: 'Your Storeden Store account\\'s email',\n    type: 'string',\n    demandOption: false\n  })\n  .option('password', {\n    alias: 'p',\n    describe: 'Your Storeden Store account\\'s password',\n    type: 'string',\n    demandOption: false\n  })\n  .option('storeID', {\n    alias: 's',\n    describe: 'Your Storeden Store ID',\n    type: 'number',\n    demandOption: false\n  })\n  .option('themeName', {\n    alias: 't',\n    describe: 'Your Theme name used in Storeden Store',\n    type: 'string',\n    demandOption: false\n  })\n  .option('diffCmd', {\n    alias: 'd',\n    describe: 'Your prefered diff Command (vscode, diff, opendiff)',\n    type: 'string',\n    demandOption: false\n  })\n  .option('sourcePath', {\n    alias: 'f',\n    describe: 'Path to template folder',\n    type: 'string',\n    demandOption: false\n  })\n  .coerce('sourcePath', arg => {\n    const [source, exclude] = arg.split(':')\n    return { source: path.resolve(source), exclude }\n  })\n  .option('json', {\n    alias: 'j',\n    describe: 'JSON config path',\n    type: 'string',\n    demandOption: false\n  })\n  .example([\n    ['$0 -e \"\" -p \"\" -s \"\" -t \"\" -f \".\"', 'Start in command line mode'],\n    ['$0 --json \"./config.json\"', 'Use config file']\n  ])\n  // .epilogue('for more information, find our manual at http://example.com')\n  .demandCommand(0, 0)\n  .help()\n  .version().argv\n\nconst execute = async (argv, filename) => {\n  const spinner = new Ora()\n\n  try {\n    const hrstart = process.hrtime()\n    const result = await _developer.exec(filename, `./${WORKSPACEDIR}/${filename}`)\n\n    const hrend = process.hrtime(hrstart)\n    const executionTime = ((hrend[0] * 1e9 + hrend[1]) / 1e9).toFixed(1)\n\n    if (result) {\n      spinner.succeed(`${chalk.cyan('Success!')} File ${filename} updated in ` + chalk.gray('[' + executionTime + 's]'))\n    } else {\n      spinner.fail(`❌ File ${filename} was modified on remote side`)\n      let decision = ''\n      do {\n        decision = readlineSync.question(`What do you want to do? (a)bort, (m)erge, (f)orce overwrite: `)\n        if (decision.toLowerCase() == 'm') {\n          await _developer.merge(filename, `./${WORKSPACEDIR}/${filename}`)\n          console.log(`✅ Check differences on files and merge. Merged file will be uploaded on save 🚀.`);\n          break;\n        } else if (decision.toLowerCase() == 'a') {\n          console.log(`❌ File upload was aborted.`);\n          break;\n        } else if (decision.toLowerCase() == 'f') {\n          await _developer.overwrite(filename)\n          console.log(`🚜 File was overwritten on server`);\n          break;\n        } else {\n          console.log(`😢 No valid choice!`);\n        }\n\n      } while (true)\n    }\n\n  } catch (e) {\n    spinner.fail(e.message)\n    console.log(chalk.red(`🤬 Got Error uploading file ${filename}!!!`))\n  }\n}\n\nconst handleChanges = async (eventType, filename) => {\n  if (filename && filename.indexOf(WORKSPACEDIR) == -1) {\n    console.log(`\\nDetected ${chalk.cyan(eventType)} to ${chalk.cyan(filename)}. 🚀 Uploading file...`)\n    await execute(argv, filename)\n  }\n}\n\n(async () => {\n  if (Object.keys(argv).length <= 2) { yargs.showHelp(); return }\n  let opts = argv\n  if (argv.json) {\n    opts = JSON.parse(await fs.readFile(argv.json))\n    if (opts.sourcePath) {\n      const [source, exclude] = opts.sourcePath.split(':')\n      opts.sourcePath = { source: path.resolve(source), exclude }\n    } else {\n      opts.sourcePath = { source: path.resolve('.'), exclude: '' }\n    }\n  }\n  console.log(opts);\n\n  _developer = new Developer(opts)\n  _developer.init()\n\n  clear()\n  console.log(chalk.bold(`Storeden Development CLI v${packageJson.version}\\n\\n`) + `🔦 Looking for changed files on ${chalk.cyan(opts.sourcePath.source)}...`)\n\n  fs.watch(\n    opts.sourcePath.source,\n    { recursive: true },\n    debounce(handleChanges, 100)\n  )\n})()"]}