{"version":3,"sources":["jsdelivr-header.js","/npm/joules@0.2.4/lib/build/deployment/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,GAAK,QAAQ,MAChB,KAAO,QAAQ,QACf,MAAQ,QAAQ,UAAY,gBAC5B,WAAa,QAAQ,UAAY,yBACjC,MAAQ,GAAG,aAAa,UAAY,YAAa,QA8DlD,SAAS,gBAAgB,EAAK,EAAM,GAEW,MAA3C,EAAI,MAAM,EAAI,YAAY,KAAO,GAAG,IAAyD,MAA3C,EAAI,MAAM,EAAI,YAAY,KAAO,GAAG,IAAsD,MAAxC,EAAI,MAAM,EAAI,YAAY,KAAO,GAQxI,GAAG,QAAQ,GAAK,SAAS,EAAK,GAC7B,IAAI,EAAQ,CACX,MAAO,GACP,YAAa,IAGX,EACF,EAAS,GAIP,GAAS,EAAM,OAEjB,MAAM,aAAa,GAAO,SAAS,EAAM,GAExC,GAAG,KAAK,KAAK,QAAQ,EAAK,IAAO,SAAS,EAAK,GAC9C,GAAG,EACF,EAAG,OADJ,CAIA,IAAI,EAAW,KAAK,QAAQ,EAAK,GACjC,EAAW,EAAS,MAAM,KAAK,QAAQ,GAAM,QAE1C,EAAM,eACR,EAAM,YAAY,KAAK,GACvB,gBAAgB,KAAK,QAAQ,EAAK,GAAO,GAAM,SAAS,EAAK,GACzD,EACF,EAAG,IAIJ,EAAM,MAAQ,EAAM,MAAM,OAAO,EAAU,OAC3C,EAAM,YAAc,EAAM,YAAY,OAAO,EAAU,aACvD,EAAG,KAAM,GACV,MAEA,EAAM,MAAM,KAAK,GACjB,EAAG,KAAM,GAlBV,CAoBD,GAED,IAAG,SAAS,EAAK,GACb,EACF,EAAS,GAGV,EAAS,KAAM,EAChB,IAGA,EAAS,KAAM,EAEjB,IA3DC,EAAS,KAAM,CACd,MAAO,GACP,YAAa,IA0DhB,CA1HA,QAAQ,MAAQ,SAAS,EAAQ,GAChC,WAAW,KAAK,QAAQ,IAAK,GAAS,GAAQ,SAAS,EAAK,GACxD,EACF,EAAS,GAIV,EAAS,KAAM,MAAQ,EAAO,MAAM,MAAM,GAAQ,EAAO,SAC1D,GACD,EAGA,QAAQ,KAAO,SAAS,EAAK,EAAU,GACtC,IAAI,EAAI,CAAC,EAMT,SAAS,IACR,gBAAgB,EAAK,GAAK,SAAS,EAAK,GACpC,EACF,EAAS,IAIV,GAAG,UAAU,KAAK,QAAQ,EAAK,gBAAiB,KAAK,UAAU,GAAS,OAAQ,GAChF,EAAO,YAAY,SAAQ,SAAS,GACnC,EAAY,EAAU,MAAM,GAEzB,EAAE,IAAc,EAAE,GAAW,OAC/B,EAAE,GAAW,QAGX,EAAO,KACT,EAAE,GAAa,GAAG,MAAM,KAAK,QAAQ,EAAK,GAAY,GAExD,IACD,GACD,CAEA,SAAS,EAAM,EAAK,GACH,iBAAb,GACF,GAEF,CA/BA,EAAW,GAAY,WAAW,EAClC,EAAS,GAAU,WAClB,OAAO,CACR,EA8BA,GACD","file":"/npm/joules@0.2.4/lib/build/deployment/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/joules@0.2.4/lib/build/deployment/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","var fs = require('fs'),\n\tpath = require('path'),\n\tutils = require(__dirname + '/../../utils'),\n\tloadModule = require(__dirname + '/../common/loadModule'),\n\tready = fs.readFileSync(__dirname + '/ready.js', 'utf8');\n\n// Build a production-ready javascript file\nexports.build = function(target, callback) {\n\tloadModule(path.resolve('.', target), target, function(err, module) {\n\t\tif(err) {\n\t\t\tcallback(err);\n\t\t\treturn;\n\t\t}\n\n\t\tcallback(null, ready + module.write(null, true) + module.invoke());\n\t});\n};\n\n// Build a directory hinting file about the directory structure to reduce http requests\nexports.hint = function(dir, callback, filter) {\n\tvar w = {};\n\tcallback = callback || function(){};\n\tfilter = filter || function() {\n\t\treturn true;\n\t};\n\n\tfunction buildHints() {\n\t\tgetDirStructure(dir, dir, function(err, struct) {\n\t\t\tif(err) {\n\t\t\t\tcallback(err);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfs.writeFile(path.resolve(dir, \"__hints.json\"), JSON.stringify(struct), \"utf8\", callback);\n\t\t\tstruct.directories.forEach(function(directory) {\n\t\t\t\tdirectory = directory.slice(1); //remove the leading slash\n\n\t\t\t\tif(w[directory] && w[directory].close) {\n\t\t\t\t\tw[directory].close();\n\t\t\t\t}\n\n\t\t\t\tif(filter(directory)) {\n\t\t\t\t\tw[directory] = fs.watch(path.resolve(dir, directory), watch);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction watch(evt, filename) {\n\t\tif(filename !== \"__hints.json\") {\n\t\t\tbuildHints();\n\t\t}\n\t}\n\n\tbuildHints();\n};\n\n// recursively search a directory to build it's structure\n// Structure is of the format\n// {\n//\t\t\"somefile.js\" : \"file\",\n//\t\t\"somedir\" : {\n//\t\t\t\"otherfile.js\" : \"file\"\n//\t\t}\n// }\n\nfunction getDirStructure(dir, root, callback) {\n\t// skip hidden files\n\tif(dir.slice(dir.lastIndexOf('/') + 1)[0] === '.' && dir.slice(dir.lastIndexOf('/') + 1)[1] !== '.' && dir.slice(dir.lastIndexOf('/') + 1) !== '.') {\n\t\tcallback(null, {\n\t\t\tfiles: [],\n\t\t\tdirectories: []\n\t\t});\n\t\treturn;\n\t}\n\n\tfs.readdir(dir, function(err, files) {\n\t\tvar hints = {\n\t\t\tfiles: [],\n\t\t\tdirectories: []\n\t\t};\n\n\t\tif(err) {\n\t\t\tcallback(err);\n\t\t\treturn;\n\t\t}\n\n\t\tif(files && files.length) {\n\n\t\t\tutils.forEachAsync(files, function(file, cb) {\n\n\t\t\t\tfs.stat(path.resolve(dir, file), function(err, stats) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tcb(err);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tvar resolved = path.resolve(dir, file);\n\t\t\t\t\tresolved = resolved.slice(path.resolve(root).length);\n\n\t\t\t\t\tif(stats.isDirectory()) {\n\t\t\t\t\t\thints.directories.push(resolved);\n\t\t\t\t\t\tgetDirStructure(path.resolve(dir, file), root, function(err, sub_hints) {\n\t\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\t\tcb(err);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\thints.files = hints.files.concat(sub_hints.files);\n\t\t\t\t\t\t\thints.directories = hints.directories.concat(sub_hints.directories);\n\t\t\t\t\t\t\tcb(null, sub_hints);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\thints.files.push(resolved);\n\t\t\t\t\t\tcb(null, file);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t}, function(err, arr) {\n\t\t\t\tif(err) {\n\t\t\t\t\tcallback(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcallback(null, hints);\n\t\t\t});\n\n\t\t} else {\n\t\t\tcallback(null, hints);\n\t\t}\n\t});\n}\n"]}