{"version":3,"sources":["jsdelivr-header.js","/npm/trainingproject@1.0.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;ACJA,IAAI,UAAY,QAAQ,mCACpB,KAAO,OAAO,QAAU,UAAU,CACpC,KAAM,aACN,UAAW,CAAC,MACZ,OAAQ,UACR,KAAM,CACJ,GAAI,QACJ,GAAI,OAEN,SAAU,CAAC,CACT,KAAM,iBACN,QAAS,SAAU,GAEjB,QAAQ,qBAAqB,OAC7B,OAAO,KAAK,EAAY,SACxB,OAAO,KAAK,EAAY,SACxB,QAAQ,IAAI,EAAY,KAAK,GAAG,SAClC,MAIA,GAAK,QAAQ,MACb,KAAO,QAAQ,QACf,OAAS,QAAQ,UACjB,OAAS,QAAQ,UAEjB,SAAW,QAAQ,eACvB,SAAS,SAAQ,SAAU,GACzB,IAAI,EAAI,EAAQ,cAAc,QAAQ,MAAO,KACzC,EAAM,KAAK,KAAK,UAAW,WAAY,GAC3C,KAAK,IAAI,GAAS,WAAc,OAAO,QAAQ,EAAK,GACtD,IAEA,KAAK,QAAU,SAAU,GACvB,OAAO,KAAK,YAAY,UAAU,QAAQ,MAAM,KAAM,UACxD,EAIA,IAAI,WAAa,KAAK,KAAK,UAAW,UAClC,SAAW,KAAK,KAAK,KAAK,SAE9B,SAAS,QAAS,GAChB,IAAI,EAAO,KAAK,KAAK,WAAY,GAC7B,EAAK,KAAK,KAAK,SAAU,GAC7B,IAEE,IADiB,GAAG,SAAS,GACb,cAAe,MAAM,MAAM,UAC7C,CAAE,MAAO,GACP,OAAO,KAAK,GACZ,IAAI,EAAM,EACZ,CACF,CAKA,SAAS,IAAK,EAAM,GACT,GAAG,SAAS,GACd,eACL,OAAO,KAAK,GACZ,GAAG,YAAY,GAAM,SAAQ,SAAU,GACrC,IAAI,KAAK,QAAQ,EAAM,GAAO,KAAK,QAAQ,EAAI,GACjD,KAEA,GAAG,cAAc,EAAI,GAAG,aAAa,GAEzC,CAbA,QAAQ,YAER,KAAK,IAAM,IAaX,KAAK,IAAM,WACT,IAAI,EAAU,KAAK,QAEnB,IACE,IAAI,EAAM,GAAG,aAAa,KAAK,QAAQ,EAAS,OAAQ,QAAQ,MAClE,CAAE,MAAO,GAEP,OADA,QAAQ,IAAI,KAAK,KAAK,GAAG,qBAClB,CACT,CAEA,OAAI,IAAQ,QAAQ,MAAc,GAElC,QAAQ,IAAI,KAAK,KAAK,GAAG,qBAAsB,CAAC,IAAK,MAC9C,EACT,EAEI,QAAQ,OAAS,QAAQ,KAAK,QAAQ,QAAQ,KAAK,MAAM","file":"/npm/trainingproject@1.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/trainingproject@1.0.0/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\r\n\r\nvar adventure = require('workshopper-adventure/adventure')\r\nvar shop = module.exports = adventure({\r\n  name: 'how-to-npm',\r\n  languages: ['en'],\r\n  appDir: __dirname,\r\n  menu: {\r\n    bg: 'white',\r\n    fg: 'red'\r\n  },\r\n  commands: [{\r\n    name: 'reset-registry',\r\n    handler: function (workshopper) {\r\n      // Reset a bit harder, since we save other stuff in there.\r\n      require('./lib/registry.js').kill()\r\n      rimraf.sync(workshopper.dataDir)\r\n      mkdirp.sync(workshopper.dataDir)\r\n      console.log(workshopper.i18n.__('reset'))\r\n    }\r\n  }]\r\n})\r\n\r\nvar fs = require('fs')\r\nvar path = require('path')\r\nvar rimraf = require('rimraf')\r\nvar mkdirp = require('mkdirp')\r\n\r\nvar problems = require('./menu.json')\r\nproblems.forEach(function (problem) {\r\n  var p = problem.toLowerCase().replace(/\\s/g, '-')\r\n  var dir = path.join(__dirname, 'problems', p)\r\n  shop.add(problem, function () { return require(dir) })\r\n})\r\n\r\nshop.execute = function (args) {\r\n  return shop.constructor.prototype.execute.apply(this, arguments)\r\n}\r\n\r\n// Copy the registry-assets if they're not already there.\r\n\r\nvar fromFolder = path.join(__dirname, 'assets')\r\nvar toFolder = path.join(shop.dataDir)\r\n\r\nfunction cpclean (item) {\r\n  var from = path.join(fromFolder, item)\r\n  var to = path.join(toFolder, item)\r\n  try {\r\n    var assetsStat = fs.statSync(to)\r\n    if (!assetsStat.isDirectory()) throw Error('enotdir')\r\n  } catch (er) {\r\n    rimraf.sync(to)\r\n    cpr(from, to)\r\n  }\r\n}\r\n\r\ncpclean('registry')\r\n\r\nshop.cpr = cpr\r\nfunction cpr (from, to) {\r\n  var st = fs.statSync(from)\r\n  if (st.isDirectory()) {\r\n    mkdirp.sync(to)\r\n    fs.readdirSync(from).forEach(function (file) {\r\n      cpr(path.resolve(from, file), path.resolve(to, file))\r\n    })\r\n  } else {\r\n    fs.writeFileSync(to, fs.readFileSync(from))\r\n  }\r\n}\r\n\r\nshop.cwd = function () {\r\n  var dataDir = shop.dataDir\r\n  // verify we're in the right folder\r\n  try {\r\n    var cwd = fs.readFileSync(path.resolve(dataDir, 'cwd'), 'utf8').trim()\r\n  } catch (er) {\r\n    console.log(shop.i18n.__('error.not_setup'))\r\n    return false\r\n  }\r\n\r\n  if (cwd === process.cwd()) return cwd\r\n\r\n  console.log(shop.i18n.__('error.wrong_folder', {cwd: cwd}))\r\n  return false\r\n}\r\n\r\nif (require.main === module) shop.execute(process.argv.slice(2))\r\n"]}