{"version":3,"sources":["jsdelivr-header.js","/npm/get-all-dependencies@1.0.2/lib/get-all-dependencies.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,KAAO,CAAC,EACR,sBAAwB,CAAC,EAAK,EAAM,KACnC,KAAK,GASR,KAAK,IAAQ,GARb,KAAK,GAAO,EACR,EAAK,IACP,EAAK,GAAK,SAAQ,IAChB,EAAI,KAAK,GACT,sBAAsB,EAAG,EAAM,EAAI,IAKzC,EAWI,mBAAqB,CAAC,EAAS,KACtB,EAAc,IAAY,IACnB,QAAO,CAAC,EAAK,KAC1B,EAAI,SAAS,IAChB,EAAI,KAAK,GAGX,sBAAsB,EAAK,EAAe,GACnC,IACN,IAaL,SAAS,mBAAmB,EAAU,GAAe,OAAE,EAAS,QAAO,QAAE,IACvE,MAAM,EAAQ,EAAc,KAAI,EAAG,UAAW,IACxC,EAAO,CAAC,EACR,EAAU,CAAC,EACX,EAAe,CAAC,EAiCtB,OA/BA,EAAc,SAAQ,EAAG,OAAM,eAAc,kBAAiB,uBAC5D,EAAQ,GAAQ,GACb,OAAO,OAAO,KAAK,GAAgB,CAAC,IACpC,OAAO,OAAO,KAAK,GAAmB,CAAC,IACvC,OAAO,OAAO,KAAK,GAAoB,CAAC,IACxC,QAAO,GAAK,EAAM,SAAS,IAAG,IAGnC,EAAM,SAAQ,IAEZ,EAAQ,GAAS,SAAQ,IACvB,EAAa,GAAO,EAAa,IAAQ,GACzC,EAAa,GAAK,KAAK,EAAQ,IAG7B,EAAS,SAAS,KAChB,GACF,EAAO,KAAK,gCAAgC,KAG9C,EAAK,GAAW,CACd,SAAU,mBAAmB,EAAS,GACtC,WAAY,mBAAmB,EAAS,IAE5C,IAGE,GAAW,GACb,EAAO,KAAK,yBAAyB,KAAK,UAAU,EAAM,KAAM,MAG3D,CACT,CAEA,OAAO,QAAU,CAAE,sCAAoB,4CAAuB","file":"/npm/get-all-dependencies@1.0.2/lib/get-all-dependencies.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/get-all-dependencies@1.0.2/lib/get-all-dependencies.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const memo = {};\nconst getNestedDependencies = (dep, hash, arr) => {\n  if (!memo[dep]) {\n    memo[dep] = 1;\n    if (hash[dep]) {\n      hash[dep].forEach(d => {\n        arr.push(d);\n        getNestedDependencies(d, hash, arr);\n      });\n    }\n  } else {\n    memo[dep] += 1;\n  }\n};\n\n/**\n * reduceDependencies takes a package name and a dependency hash map to give you\n * an in depth dependency chain (upstream or downstream dependent on the hash)\n * @param  {String} pkgName         A package name in th dependency map\n * @param  {Object} dependencyMap   A dependency map with keys of pkgNames with\n *                                  value as arrays of pkgNames\n * @return {Array}                  A reduced array of pkgNames\n */\nconst reduceDependencies = (pkgName, dependencyMap) => {\n  const pkgs = dependencyMap[pkgName] || [];\n  const result = pkgs.reduce((acc, dep) => {\n    if (!acc.includes(dep)) {\n      acc.push(dep);\n    }\n\n    getNestedDependencies(dep, dependencyMap, acc);\n    return acc;\n  }, []);\n  return result;\n};\n\n/**\n * getDependencies takes a list of packages, a list of localPackages and a logger\n * to give you a hashMap of packages with upstream and downstream dependencies\n * @param  {Array} pkgNames         An array of package names from a monorepo\n * @param  {Array} localPackages    A list of all the package.jsons in the same monorepo\n * @param  {Object} logger          An option logger with the same methods as console\n * @return {Object}                 A hashMap of key value pairs with downstream and upstream arrays\n *                                  {[pkgName: String]:{ upstream: Array, downstream: Array }}\n */\nfunction getAllDependencies(pkgNames, localPackages, { logger = console, verbose }) {\n  const names = localPackages.map(({ name }) => name);\n  const data = {};\n  const builtBy = {};\n  const dependedOnBy = {};\n\n  localPackages.forEach(({ name, dependencies, devDependencies, peerDependencies }) => {\n    builtBy[name] = []\n      .concat(Object.keys(dependencies || {}))\n      .concat(Object.keys(devDependencies || {}))\n      .concat(Object.keys(peerDependencies || {}))\n      .filter(k => names.includes(k));\n  });\n\n  names.forEach(pkgName => {\n    // Do a first order pass on who depends on me\n    builtBy[pkgName].forEach(dep => {\n      dependedOnBy[dep] = dependedOnBy[dep] || [];\n      dependedOnBy[dep].push(pkgName);\n    });\n\n    if (pkgNames.includes(pkgName)) {\n      if (verbose) {\n        logger.info(`Mapping all dependencies for ${pkgName}`);\n      }\n\n      data[pkgName] = {\n        upstream: reduceDependencies(pkgName, builtBy),\n        downstream: reduceDependencies(pkgName, dependedOnBy),\n      };\n    }\n  });\n\n  if (verbose && logger) {\n    logger.info(`Mapped dependencies:\\n${JSON.stringify(data, null, 2)}`);\n  }\n\n  return data;\n}\n\nmodule.exports = { reduceDependencies, getNestedDependencies, getAllDependencies };\n"]}