{"version":3,"sources":["jsdelivr-header.js","/npm/infer-owner@1.0.4/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,MAAQ,IAAI,IACZ,GAAK,QAAQ,OACb,QAAE,QAAO,QAAE,SAAY,QAAQ,QAG/B,MAAQ,GAAQ,IAAI,SAAQ,CAAC,EAAK,IACtC,GAAG,MAAM,GAAM,CAAC,EAAI,IAAO,EAAK,EAAI,GAAM,EAAI,OAE1C,WAAa,IAEjB,GADA,EAAO,QAAQ,GACX,MAAM,IAAI,GACZ,OAAO,QAAQ,QAAQ,MAAM,IAAI,IAEnC,MAKM,EAAS,QAAQ,GACjB,EAAa,IAAW,EAAO,KAAO,GACnC,WAAW,GAAQ,MAAM,IAC9B,MAAM,IAAI,EAAM,GACT,KAGX,OAAO,MAAM,GAAM,MAZF,IACf,MAAM,IAAE,EAAG,IAAE,GAAQ,EAErB,OADA,MAAM,IAAI,EAAM,CAAE,MAAK,QAChB,CAAE,MAAK,MAAI,GASc,EAAU,EAGxC,eAAiB,IAErB,GADA,EAAO,QAAQ,GACX,MAAM,IAAI,GACZ,OAAO,MAAM,IAAI,GAEnB,MAAM,EAAS,QAAQ,GAKvB,IAAI,GAAQ,EACZ,IACE,MAAM,EAAK,GAAG,UAAU,GACxB,GAAQ,EACR,MAAM,IAAE,EAAG,IAAE,GAAQ,EAErB,OADA,MAAM,IAAI,EAAM,CAAE,MAAK,QAChB,CAAE,MAAK,MAChB,CAAE,QACA,GAAI,GAAS,IAAW,EAAM,CAC5B,MAAM,EAAQ,eAAe,GAE7B,OADA,MAAM,IAAI,EAAM,GACT,CACT,CACF,GAGI,SAAW,IAAI,IACrB,OAAO,QAAU,IAEf,GADA,EAAO,QAAQ,GACX,SAAS,IAAI,GACf,OAAO,QAAQ,QAAQ,SAAS,IAAI,IACtC,MAAM,EAAI,WAAW,GAAM,MAAK,IAC9B,SAAS,OAAO,GACT,KAGT,OADA,SAAS,IAAI,EAAM,GACZ,GAET,OAAO,QAAQ,KAAO,eACtB,OAAO,QAAQ,WAAa,KAC1B,MAAM,QACN,SAAS,OAAM","file":"/npm/infer-owner@1.0.4/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/infer-owner@1.0.4/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","const cache = new Map()\nconst fs = require('fs')\nconst { dirname, resolve } = require('path')\n\n\nconst lstat = path => new Promise((res, rej) =>\n  fs.lstat(path, (er, st) => er ? rej(er) : res(st)))\n\nconst inferOwner = path => {\n  path = resolve(path)\n  if (cache.has(path))\n    return Promise.resolve(cache.get(path))\n\n  const statThen = st => {\n    const { uid, gid } = st\n    cache.set(path, { uid, gid })\n    return { uid, gid }\n  }\n  const parent = dirname(path)\n  const parentTrap = parent === path ? null : er => {\n    return inferOwner(parent).then((owner) => {\n      cache.set(path, owner)\n      return owner\n    })\n  }\n  return lstat(path).then(statThen, parentTrap)\n}\n\nconst inferOwnerSync = path => {\n  path = resolve(path)\n  if (cache.has(path))\n    return cache.get(path)\n\n  const parent = dirname(path)\n\n  // avoid obscuring call site by re-throwing\n  // \"catch\" the error by returning from a finally,\n  // only if we're not at the root, and the parent call works.\n  let threw = true\n  try {\n    const st = fs.lstatSync(path)\n    threw = false\n    const { uid, gid } = st\n    cache.set(path, { uid, gid })\n    return { uid, gid }\n  } finally {\n    if (threw && parent !== path) {\n      const owner = inferOwnerSync(parent)\n      cache.set(path, owner)\n      return owner // eslint-disable-line no-unsafe-finally\n    }\n  }\n}\n\nconst inflight = new Map()\nmodule.exports = path => {\n  path = resolve(path)\n  if (inflight.has(path))\n    return Promise.resolve(inflight.get(path))\n  const p = inferOwner(path).then(owner => {\n    inflight.delete(path)\n    return owner\n  })\n  inflight.set(path, p)\n  return p\n}\nmodule.exports.sync = inferOwnerSync\nmodule.exports.clearCache = () => {\n  cache.clear()\n  inflight.clear()\n}\n"]}