{"version":3,"sources":["jsdelivr-header.js","/npm/populist@0.1.6/main.js"],"names":[],"mappings":"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","file":"/npm/populist@0.1.6/main.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/populist@0.1.6/main.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","var assert = require(\"assert\");\nvar path = require(\"path\");\nvar fs = require(\"graceful-fs\");\nvar Q = require(\"q\");\nvar esprima = require(\"esprima\");\nvar types = require(\"ast-types\");\nvar n = types.namedTypes;\nvar isString = types.builtInTypes.string;\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nfunction cliBuildP() {\n  readFileP(path.join(\n    __dirname, \"package.json\"\n  )).then(function(json) {\n    var options = require(\"commander\")\n      .version(JSON.parse(json).version)\n      .usage(\"[-r] <root directory> [-o <output file>] <module ID>[:<global name>]\")\n      .option(\"-r, --root-directory <dir>\",\n              \"Directory in which to find CommonJS files\")\n      .option(\"-o, --output-file <file>\",\n              \"Name of generated .js bundle file\")\n      .parse(process.argv);\n\n    buildP(options).done(function(output) {\n      if (options.outputFile) {\n        return writeFileP(options.outputFile, output);\n      } else {\n        process.stdout.write(output);\n      }\n    });\n  });\n}\n\nfunction buildP(options) {\n  var rest;\n  var rootDir;\n  if (options.rootDirectory) {\n    rest = options.args.slice(0);\n    rootDir = options.rootDirectory;\n  } else {\n    rest = options.args.slice(1);\n    rootDir = options.args[0];\n  }\n\n  var rootIDs = {};\n  var entries = {};\n  rest.forEach(function(entry) {\n    var splat = entry.split(\":\");\n    var id = splat[0];\n    rootIDs[id] = true;\n    if (splat.length === 2) {\n      entries[id] = splat[1] || null;\n    }\n  });\n\n  return Q.all([\n    readFileP(path.join(__dirname, \"loader.js\")),\n    collectDepsP(rootDir, Object.keys(rootIDs))\n  ]).spread(function(loader, sources) {\n    return loader.trim() + \"(\" +\n      JSON.stringify(entries) + \",{\\n\" +\n      Object.keys(sources).map(function(id) {\n        return JSON.stringify(id) + \":\" +\n          JSON.stringify(sources[id]);\n      }).join(\",\\n\") + \"\\n});\\n\";\n  })\n}\n\nfunction collectDepsP(rootDir, rootIDs) {\n  var promises = {};\n  var sources = {};\n\n  function traverseP(id) {\n    if (hasOwn.call(promises, id)) {\n      return promises[id];\n    }\n\n    return promises[id] = readFileP(\n      path.join(rootDir, id) + \".js\"\n    ).then(function(source) {\n      sources[id] = source;\n      var deps = getRequiredIDs(id, source);\n      return Q.all(deps.filter(function(rid) {\n        // Only depend on modules not already encountered.\n        return !promises.hasOwnProperty(rid);\n      }).map(traverseP));\n    }, function(err) {\n      // Ignore missing dependencies.\n      console.error(err);\n    });\n  }\n\n  return Q.all(rootIDs.map(traverseP)).then(function() {\n    return sources;\n  });\n}\n\nfunction writeFileP(file, content) {\n  var deferred = Q.defer();\n\n  fs.writeFile(file, content, {\n    encoding: \"utf8\"\n  }, function(err) {\n    if (err) {\n      deferred.reject(err);\n    } else {\n      deferred.resolve(content);\n    }\n  });\n\n  return deferred.promise;\n}\n\nfunction readFileP(file) {\n  var deferred = Q.defer();\n  var promise = deferred.promise;\n\n  fs.readFile(file, \"utf8\", function(err, source) {\n    if (err) {\n      deferred.reject(err);\n    } else {\n      deferred.resolve(source);\n    }\n  });\n\n  return promise;\n}\n\nfunction getRequiredIDs(id, source) {\n  var ast = esprima.parse(source);\n  var absoluteIDs = {};\n\n  types.traverse.fast(ast, function(node) {\n    if (n.CallExpression.check(node) &&\n        n.Identifier.check(node.callee) &&\n        node.callee.name === \"require\") {\n      var args = node.arguments;\n      if (args.length === 1 && n.Literal.check(args[0])) {\n        var requiredID = args[0].value;\n        if (isString.check(requiredID)) {\n          absoluteIDs[absolutize(id, requiredID)] = true;\n          return false;\n        }\n      }\n    }\n  });\n\n  return Object.keys(absoluteIDs);\n}\n\nfunction absolutize(moduleID, requiredID) {\n  if (requiredID.charAt(0) === \".\")\n    requiredID = path.join(moduleID, \"..\", requiredID);\n  return path.normalize(requiredID);\n}\n\nexports.cliBuildP = cliBuildP;\nexports.buildP = buildP;\nexports.getRequiredIDs = getRequiredIDs;\n"]}