{"version":3,"sources":["jsdelivr-header.js","/npm/tarts@2.0.1/tarts.umd.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCNC,SAAU,GAAoB,iBAAV,SAAoC,oBAAT,OAAqB,OAAO,QAAQ,GAAQ,GAAI,MAAM,MAAM,EAE5G,MAAM,EAAU,CACd,KAAM,IACN,KAAM,EACN,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,GACP,OAAQ,EACR,SAAU,EACV,SAAU,IACV,MAAO,EACP,QAAS,EACT,MAAO,GACP,MAAO,GACP,SAAU,EACV,SAAU,EACV,OAAQ,IACR,QAAS,IAGL,EAAU,CAAC,EACjB,OAAO,KAAK,GAAS,QAAO,CAAC,EAAK,KAChC,EAAQ,GAAK,EACN,EAAM,EAAQ,KACpB,GAEH,MAAM,EAAW,IAAK,CACpB,KAAM,EAAE,KACR,KAAM,MACN,IAAK,EACL,IAAK,EACL,KAAM,EAAE,QAAQ,WAChB,MAAO,KAAK,MAAM,OAAO,IAAI,MAAU,KACvC,OAAQ,WACR,SAAU,IACV,MAAO,QACP,QAAS,KACT,MAAO,GACP,MAAO,KAGH,EAAQ,CAAC,OAAQ,WAAY,QAAS,SAAU,WAAY,UAAW,QAAS,SAChF,EAAQ,IAEd,SAAS,EAAM,GACb,OAAO,EAAM,QAAO,CAAC,EAAG,KACG,iBAAd,EAAE,UACX,EAAE,QAAU,EAAc,EAAE,UAE9B,EAAI,OAAO,OAAO,EAAS,GAAI,GAE/B,MAAM,EAAI,IAAI,WAAW,KAAK,MAAM,EAAQ,EAAE,MAAQ,GAAS,GAEzD,EAAW,OAAO,KAAK,GAAS,QAAO,CAAC,EAAK,KACjD,KAAM,KAAK,GACT,OAAO,EAET,MAAM,EAAQ,EAAc,EAAM,QAAQ,IAAM,EAC5C,EAAE,GACF,EAAI,EAAE,GAAI,EAAQ,GAAK,IAG3B,OADA,EAAE,IAAI,EAAO,EAAQ,IACd,EAAM,EAAM,QAAO,CAAC,EAAG,IAAM,EAAI,GAAG,EAAC,GAC3C,GAEH,EAAE,IAAI,EAAc,EAAI,EAAU,IAAK,EAAQ,QAC/C,EAAE,IAAI,EAAE,QAAS,GAEjB,MAAM,EAAM,IAAI,WAAW,EAAE,WAAa,EAAE,YAI5C,OAHA,EAAI,IAAI,EAAG,GACX,EAAI,IAAI,EAAG,EAAE,YAEN,IACN,IAAI,WAAW,GACpB,CAEA,SAAS,EAAI,EAAG,GAEd,OAAQ,gBADR,EAAI,EAAE,SAAS,KACa,MAAM,EAAE,OAAS,GAAK,EACpD,CAEA,SAAS,EAAc,GACrB,MAAM,EAAI,IAAI,WAAW,EAAE,QAC3B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,EAAE,GAAK,EAAE,WAAW,GACtB,OAAO,CACT,CACC,CAzFA,CAyFE","file":"/npm/tarts@2.0.1/tarts.umd.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/tarts@2.0.1/tarts.umd.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n",";(function(g){typeof exports===\"object\"&&typeof module!==\"undefined\"?module.exports=tarts:((g?g:self).tarts=tarts);\n\nconst headers = {\n  name: 100,\n  mode: 8,\n  uid: 8,\n  gid: 8,\n  size: 12,\n  mtime: 12,\n  chksum: 8,\n  typeflag: 1,\n  linkname: 100,\n  magic: 5,\n  version: 2,\n  uname: 32,\n  gname: 32,\n  devmajor: 8,\n  devminor: 8,\n  prefix: 155,\n  padding: 12\n}\n\nconst offsets = {}\nObject.keys(headers).reduce((acc, k) => {\n  offsets[k] = acc\n  return acc + headers[k]\n}, 0)\n\nconst defaults = f => ({\n  name: f.name,\n  mode: '777',\n  uid: 0,\n  gid: 0,\n  size: f.content.byteLength,\n  mtime: Math.floor(Number(new Date()) / 1000),\n  chksum: '        ',\n  typeflag: '0',\n  magic: 'ustar',\n  version: '  ',\n  uname: '',\n  gname: ''\n})\n\nconst nopad = ['name', 'linkname', 'magic', 'chksum', 'typeflag', 'version', 'uname', 'gname']\n    , bsize = 512\n\nfunction tarts(files) {\n  return files.reduce((a, f) => {\n    if (typeof f.content === 'string')\n      f.content = stringToUint8(f.content)\n\n    f = Object.assign(defaults(f), f)\n\n    const b = new Uint8Array(Math.ceil((bsize + f.size) / bsize) * bsize)\n\n    const checksum = Object.keys(headers).reduce((acc, k) => {\n      if (!(k in f))\n        return acc\n\n      const value = stringToUint8(nopad.indexOf(k) > -1\n        ? f[k]\n        : pad(f[k], headers[k] - 1))\n\n      b.set(value, offsets[k])\n      return acc + value.reduce((a, b) => a + b, 0)\n    }, 0)\n\n    b.set(stringToUint8(pad(checksum, 7)), offsets.chksum)\n    b.set(f.content, bsize)\n\n    const sum = new Uint8Array(a.byteLength + b.byteLength)\n    sum.set(a, 0)\n    sum.set(b, a.byteLength)\n\n    return sum\n  }, new Uint8Array(0))\n}\n\nfunction pad(s, n) {\n  s = s.toString(8)\n  return ('000000000000' + s).slice(s.length + 12 - n)\n}\n\nfunction stringToUint8(s) {\n  const a = new Uint8Array(s.length)\n  for (let i = 0; i < s.length; i++)\n    a[i] = s.charCodeAt(i)\n  return a\n}\n})(this);"]}