{"version":3,"sources":["jsdelivr-header.js","/npm/recap@0.3.2/js/main.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,IAAI,EAAI,QAAQ,KAEZ,aAAe,QAAQ,2BACvB,eAAiB,QAAQ,6BACzB,OAAS,QAAQ,YACjB,QAAU,QAAQ,aAClB,UAAY,QAAQ,oBACpB,KAAO,QAAQ,eACf,QAAU,QAAQ,aAClB,oBAAsB,QAAQ,sCAC9B,UAAY,QAAQ,iCACpB,OAAS,QAAQ,UAEjB,KAAO,SAAc,EAAS,GAC9B,MAAM,IAAI,MAAM,kBACpB,EAEI,QAAU,SAAiB,EAAS,GACpC,MAAM,IAAI,MAAM,kBACpB,EAEA,SAAS,UAAU,GAEX,KADA,EACO,SAAc,EAAS,GAC1B,QAAQ,MAAM,GACd,QAAQ,KAAK,EACjB,EAEO,SAAc,EAAS,GAC1B,EAAI,OAAO,EACf,CAER,CAEA,SAAS,aAAa,GAEd,QADA,EACU,SAAiB,EAAS,GAChC,QAAQ,QAAQ,GAChB,QAAQ,KAAK,EACjB,EAEU,SAAiB,EAAS,GAChC,EAAI,QAAQ,EAChB,CAER,CAEA,SAAS,YAAY,GACjB,IAAI,EAAO,OAAO,KAAK,EAAO,MAC1B,EAAQ,GAIZ,OAHA,EAAK,SAAQ,SAAU,GACnB,EAAM,KAAK,IAAI,KAAK,EAAK,EAAO,OAAQ,EAAO,KAAK,IACxD,IACO,CACX,CAEA,SAAS,UAAU,EAAQ,GACvB,IAAI,EAAM,EAAE,QACZ,EAAQ,cACR,IAAI,EAAc,oBAAoB,QAAQ,EAAO,MAWrD,OAVA,EAAY,QAAQ,MAAK,WACrB,UAAU,GAAS,GAAG,GAAa,MAAK,WACpC,EAAI,SAAQ,EAChB,IAAG,WACC,EAAI,QAAO,EACf,GACJ,IAAG,WACC,QAAQ,MAAM,gEACd,EAAI,QAAO,EACf,IACO,EAAI,OACf,CAEA,SAAS,MAAM,EAAQ,GACnB,IAAI,EAAQ,IAAI,aAAa,EAAO,SAAS,cACzC,EAAU,IAAI,QAClB,EAAQ,MAAM,MAAK,WACf,QAAQ,IAAI,+BACZ,IAAI,EAAY,IAAI,UAAU,EAAO,GACzB,YAAY,GAClB,SAAQ,SAAU,GACpB,EAAU,QAAQ,EACtB,IACA,QAAQ,IAAI,kCACZ,MAAM,EAAQ,EAAW,EAAS,EACtC,GACJ,CAEA,SAAS,MAAM,EAAQ,EAAO,EAAS,GACnC,EAAM,GAAG,YAAY,WACjB,QAAQ,IAAI,4CACZ,UAAU,EAAQ,GAAS,MAAK,WAC5B,QAAQ,IAAI,8CACZ,EAAQ,SAAS,MAAK,WAClB,QAAQ,sBAAuB,EACnC,IAAG,WACC,QAAQ,MAAM,uCAClB,GACJ,IAAG,WACC,KAAK,uCAAyC,EAAO,KAAM,EAC/D,GACJ,IACA,QAAQ,KAAK,uCACb,EAAM,SACV,CAEA,SAAS,IAAI,EAAK,GACd,IAAI,EAAM,EAAE,QAiBZ,OAfA,UADA,EAAY,IAAa,GAEzB,aAAa,GAEb,eAAe,OAAO,MAAK,WACvB,IAAI,EAAS,OAAO,KAAK,GACzB,QAAQ,IAAI,iBACZ,MAAM,EAAQ,EAClB,IAAG,SAAU,GAIL,KAHC,EAGI,sCAAwC,EAAU,6BAFlD,oEAEgF,EAE7F,IAEO,EAAI,OACf,CAGA,SAAS,GAAG,EAAO,GACf,GACS,YADD,EAEA,QAAQ,GAAG,EAGvB,CARA,QAAQ,IAAM,IASd,QAAQ,GAAK","file":"/npm/recap@0.3.2/js/main.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/recap@0.3.2/js/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 Q = require(\"q\");\r\n\r\nvar BrowserSwarm = require(\"./browsers/BrowserSwarm\");\r\nvar PhantomBrowser = require(\"./browsers/PhantomBrowser\");\r\nvar Config = require(\"./Config\");\r\nvar TempDir = require(\"./TempDir\");\r\nvar TaskQueue = require(\"./task/TaskQueue\");\r\nvar Task = require(\"./task/Task\");\r\nvar console = require(\"./Console\");\r\nvar DestinationResolver = require(\"./destinations/DestinationResolver\");\r\nvar transport = require(\"./transports/transportFactory\");\r\nvar rimraf = require(\"rimraf\");\r\n\r\nvar fail = function fail(message, dfd) {\r\n    throw new Error(\"Not implemented\");\r\n};\r\n\r\nvar success = function success(message, dfd) {\r\n    throw new Error(\"Not Implemented\");\r\n};\r\n\r\nfunction setupFail(isConsole) {\r\n    if (isConsole) {\r\n        fail = function fail(message, dfd) {\r\n            console.error(message);\r\n            process.exit(1);\r\n        };\r\n    } else {\r\n        fail = function fail(message, dfd) {\r\n            dfd.reject(message);\r\n        };\r\n    }\r\n}\r\n\r\nfunction setupSuccess(isConsole) {\r\n    if (isConsole) {\r\n        success = function succeed(message, dfd) {\r\n            console.success(message);\r\n            process.exit(0);\r\n        };\r\n    } else {\r\n        success = function succeed(message, dfd) {\r\n            dfd.resolve(message);\r\n        };\r\n    }\r\n}\r\n\r\nfunction createTasks(config) {\r\n    var urls = Object.keys(config.urls);\r\n    var tasks = [];\r\n    urls.forEach(function (url) {\r\n        tasks.push(new Task(url, config.widths, config.urls[url]));\r\n    });\r\n    return tasks;\r\n}\r\n\r\nfunction copyFiles(config, tempDir) {\r\n    var dfd = Q.defer();\r\n    tempDir.saveRecords();\r\n    var destination = DestinationResolver.resolve(config.dest);\r\n    destination.setup().then(function () {\r\n        transport(tempDir).to(destination).then(function () {\r\n            dfd.resolve(true);\r\n        }, function () {\r\n            dfd.reject(false);\r\n        });\r\n    }, function () {\r\n        console.error(\"Failed to setup destination directory, is it already locked?\");\r\n        dfd.reject(false);\r\n    });\r\n    return dfd.promise;\r\n}\r\n\r\nfunction setup(config, dfd) {\r\n    var swarm = new BrowserSwarm(config.settings.maxInstances);\r\n    var tempDir = new TempDir();\r\n    tempDir.ready.then(function () {\r\n        console.log(\"created temporary directory\");\r\n        var taskQueue = new TaskQueue(swarm, tempDir);\r\n        var tasks = createTasks(config);\r\n        tasks.forEach(function (task) {\r\n            taskQueue.addTask(task);\r\n        });\r\n        console.log(\"Tasks queued, begin processing\");\r\n        begin(config, taskQueue, tempDir, dfd);\r\n    });\r\n}\r\n\r\nfunction begin(config, queue, tempDir, dfd) {\r\n    queue.on(\"complete\", function () {\r\n        console.log(\"All tasks complete - begin copying files\");\r\n        copyFiles(config, tempDir).then(function () {\r\n            console.log(\"Files copied, removing temporary directory\");\r\n            tempDir.remove().then(function () {\r\n                success(\"Operation complete!\", dfd);\r\n            }, function () {\r\n                console.error(\"Failed to remove temporary directory\");\r\n            });\r\n        }, function () {\r\n            fail(\"Failed to copy files to destination \" + config.dest, dfd);\r\n        });\r\n    });\r\n    console.info(\"Setup complete, begin processing...\");\r\n    queue.process();\r\n}\r\n\r\nfunction run(cfg, isConsole) {\r\n    var dfd = Q.defer();\r\n    isConsole = isConsole || false;\r\n    setupFail(isConsole);\r\n    setupSuccess(isConsole);\r\n\r\n    PhantomBrowser.test().then(function () {\r\n        var config = Config.load(cfg);\r\n        console.log(\"loaded config\");\r\n        setup(config, dfd);\r\n    }, function (version) {\r\n        if (!version) {\r\n            fail(\"Phantomjs not found.  Is it installed and available in your path?\", dfd);\r\n        } else {\r\n            fail(\"Your phantom version appears to be \" + version + \"1.7 or greater is required\", dfd);\r\n        }\r\n    });\r\n\r\n    return dfd.promise;\r\n}\r\nexports.run = run;\r\n\r\nfunction on(event, handler) {\r\n    switch (event) {\r\n        case \"console\":\r\n            console.on(handler);\r\n            break;\r\n    }\r\n}\r\nexports.on = on;\r\n\r\n"]}