redibox-hook-job
Advanced tools
Comparing version 1.2.1 to 1.2.2
@@ -41,3 +41,3 @@ 'use strict'; | ||
this.queues = {}; | ||
this.autoCreateQueue = {}; | ||
this.autoCreateQueue = null; | ||
this.autoSaveImmediate = null; | ||
@@ -86,10 +86,15 @@ } | ||
*/ | ||
create(queue, data, options) { | ||
create(...args) { | ||
const ref = (0, _cuid2.default)(); | ||
const job = new _job2.default(this.core, null, data, options, queue, true); | ||
job._autoSaveRef = ref; | ||
this.log.verbose(`Creating job for queue ${ queue } with ref ${ ref }`); | ||
this.autoCreateQueue[job._autoSaveRef] = job; | ||
if (!this.autoSaveImmediate) this.autoSaveImmediate = setImmediate(this.autoSave.bind(this)); | ||
return job; | ||
if (!this.autoCreateQueue) this.autoCreateQueue = {}; | ||
this.autoCreateQueue[ref] = new _job2.default(this.core, null, args[1], args[2], args[0], true); | ||
this.log.verbose(`Creating job for queue ${ args[0] } with ref ${ ref }`); | ||
if (!this.autoSaveImmediate) { | ||
this.autoSaveImmediate = setImmediate(this.autoSave.bind(this)); | ||
} else if (!Object.keys(this.autoCreateQueue).length > 200) { | ||
this.autoSave(); | ||
} | ||
return this.autoCreateQueue[ref]; | ||
} | ||
@@ -101,12 +106,15 @@ | ||
autoSave() { | ||
clearImmediate(this.autoSaveImmediate); | ||
this.autoSaveImmediate = null; | ||
const jobsToSave = []; | ||
const refs = Object.keys(this.autoCreateQueue); | ||
this.autoSaveImmediate = null; | ||
for (let i = 0, iLen = refs.length; i < iLen; i++) { | ||
const ref = refs[i]; | ||
const job = this.autoCreateQueue[ref]; | ||
if (!job._saved) { | ||
jobsToSave.push(job.withoutProxy()); | ||
job._saved = true; | ||
if (!this.autoCreateQueue[ref]._saved) { | ||
jobsToSave.push(ref); | ||
this.autoCreateQueue[ref]._saved = true; | ||
} else { | ||
this.autoCreateQueue[ref] = null; | ||
delete this.autoCreateQueue[ref]; | ||
@@ -116,3 +124,3 @@ } | ||
if (!jobsToSave.length) return 0; | ||
if (!jobsToSave.length) return void 0; | ||
@@ -122,6 +130,7 @@ this.log.verbose(`Auto-saving ${ jobsToSave.length } jobs.`); | ||
if (jobsToSave.length === 1) { | ||
return jobsToSave[0].save(true).then(() => this.cleanupAutoSave.call(this, jobsToSave)).catch(err => this.cleanupAutoSave.call(this, jobsToSave, err)); | ||
return this.autoCreateQueue[jobsToSave[0]].withoutProxy().save(true).then(() => this.cleanupAutoSave.call(this, jobsToSave)).catch(err => this.cleanupAutoSave.call(this, jobsToSave, err)); | ||
} | ||
return _bluebird2.default.map(jobsToSave, job => job.save(true), { concurrency: 25 }).then(() => this.cleanupAutoSave.call(this, jobsToSave)).catch(err => this.cleanupAutoSave.call(this, jobsToSave, err)); | ||
/* eslint no-confusing-arrow: 0 */ | ||
return _bluebird2.default.map(jobsToSave, ref => this.autoCreateQueue[ref] ? this.autoCreateQueue[ref].withoutProxy().save(true) : _bluebird2.default.resolve(), { concurrency: 25 }).then(() => this.cleanupAutoSave.call(this, jobsToSave)).catch(err => this.cleanupAutoSave.call(this, jobsToSave, err)); | ||
} | ||
@@ -138,4 +147,14 @@ | ||
for (let i = 0, iLen = jobsToRemove.length; i < iLen; i++) { | ||
delete this.autoCreateQueue[jobsToRemove[i]._autoSaveRef]; | ||
// trying to force garbage collection here | ||
this.autoCreateQueue[jobsToRemove[i]] = null; | ||
delete this.autoCreateQueue[jobsToRemove[i]]; | ||
} | ||
if (!Object.keys(this.autoCreateQueue).length) { | ||
// trying to force garbage collection here | ||
this.autoCreateQueue = null; | ||
delete this.autoCreateQueue; | ||
} | ||
return void 0; | ||
} | ||
@@ -171,2 +190,2 @@ | ||
exports.default = JobHook; | ||
//# sourceMappingURL=data:application/json;base64,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b29rLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGN1aWQgZnJvbSAnY3VpZCc7XG5pbXBvcnQgSm9iIGZyb20gJy4vam9iJztcbmltcG9ydCBRdWV1ZSBmcm9tICcuL3F1ZXVlJztcbmltcG9ydCBQcm9taXNlIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuL2RlZmF1bHRzJztcbmltcG9ydCBzY3JpcHRzIGZyb20gJy4vc2NyaXB0cyc7XG5pbXBvcnQgeyBCYXNlSG9vayB9IGZyb20gJ3JlZGlib3gnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBKb2JIb29rIGV4dGVuZHMgQmFzZUhvb2sge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignam9iJyk7XG4gICAgdGhpcy5xdWV1ZXMgPSB7fTtcbiAgICB0aGlzLmF1dG9DcmVhdGVRdWV1ZSA9IHt9O1xuICAgIHRoaXMuYXV0b1NhdmVJbW1lZGlhdGUgPSBudWxsO1xuICB9XG5cbiAgLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkR2xvYmFsU3ltYm9scyxKU01ldGhvZENhbkJlU3RhdGljXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNvbmZpZyBmb3Igc2NoZWR1bGVyXG4gICAqIEByZXR1cm5zIHt7c29tZURlZmF1bHRUaGluZzogc3RyaW5nfX1cbiAgICovXG4gIGRlZmF1bHRzKCkge1xuICAgIHJldHVybiBkZWZhdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcmV0dXJucyB7e2FkZEpvYiwgY2hlY2tTdGFsbGVkSm9icywgcmVtb3ZlSm9ifX1cbiAgICovXG4gIHNjcmlwdHMoKSB7XG4gICAgcmV0dXJuIHNjcmlwdHM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIGluaXRpYWxpemUoKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuZW5hYmxlZCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLm9wdGlvbnMucXVldWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBxdWV1ZSA9IHRoaXMub3B0aW9ucy5xdWV1ZXNbaV07XG4gICAgICB0aGlzLnF1ZXVlQ3JlYXRlKHF1ZXVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBqb2IgZm9yIHRoZSBzcGVjaWZpZWQgcXVldWVcbiAgICogQHBhcmFtIHF1ZXVlXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHsqfEpvYn1cbiAgICovXG4gIGNyZWF0ZShxdWV1ZSwgZGF0YSwgb3B0aW9ucykge1xuICAgIGNvbnN0IHJlZiA9IGN1aWQoKTtcbiAgICBjb25zdCBqb2IgPSBuZXcgSm9iKHRoaXMuY29yZSwgbnVsbCwgZGF0YSwgb3B0aW9ucywgcXVldWUsIHRydWUpO1xuICAgIGpvYi5fYXV0b1NhdmVSZWYgPSByZWY7XG4gICAgdGhpcy5sb2cudmVyYm9zZShgQ3JlYXRpbmcgam9iIGZvciBxdWV1ZSAke3F1ZXVlfSB3aXRoIHJlZiAke3JlZn1gKTtcbiAgICB0aGlzLmF1dG9DcmVhdGVRdWV1ZVtqb2IuX2F1dG9TYXZlUmVmXSA9IGpvYjtcbiAgICBpZiAoIXRoaXMuYXV0b1NhdmVJbW1lZGlhdGUpIHRoaXMuYXV0b1NhdmVJbW1lZGlhdGUgPSBzZXRJbW1lZGlhdGUoOjp0aGlzLmF1dG9TYXZlKTtcbiAgICByZXR1cm4gam9iO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dG8gc2F2ZSBhbnkgam9icyBpbiB0aGUgcXVldWVcbiAgICovXG4gIGF1dG9TYXZlKCkge1xuICAgIGNvbnN0IGpvYnNUb1NhdmUgPSBbXTtcbiAgICBjb25zdCByZWZzID0gT2JqZWN0LmtleXModGhpcy5hdXRvQ3JlYXRlUXVldWUpO1xuICAgIHRoaXMuYXV0b1NhdmVJbW1lZGlhdGUgPSBudWxsO1xuICAgIGZvciAobGV0IGkgPSAwLCBpTGVuID0gcmVmcy5sZW5ndGg7IGkgPCBpTGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IHJlZiA9IHJlZnNbaV07XG4gICAgICBjb25zdCBqb2IgPSB0aGlzLmF1dG9DcmVhdGVRdWV1ZVtyZWZdO1xuICAgICAgaWYgKCFqb2IuX3NhdmVkKSB7XG4gICAgICAgIGpvYnNUb1NhdmUucHVzaChqb2Iud2l0aG91dFByb3h5KCkpO1xuICAgICAgICBqb2IuX3NhdmVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF1dG9DcmVhdGVRdWV1ZVtyZWZdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICgham9ic1RvU2F2ZS5sZW5ndGgpIHJldHVybiAwO1xuXG4gICAgdGhpcy5sb2cudmVyYm9zZShgQXV0by1zYXZpbmcgJHtqb2JzVG9TYXZlLmxlbmd0aH0gam9icy5gKTtcblxuICAgIGlmIChqb2JzVG9TYXZlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIGpvYnNUb1NhdmVbMF1cbiAgICAgICAgLnNhdmUodHJ1ZSlcbiAgICAgICAgLnRoZW4oKCkgPT4gOjp0aGlzLmNsZWFudXBBdXRvU2F2ZShqb2JzVG9TYXZlKSlcbiAgICAgICAgLmNhdGNoKGVyciA9PiA6OnRoaXMuY2xlYW51cEF1dG9TYXZlKGpvYnNUb1NhdmUsIGVycikpO1xuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlXG4gICAgICAubWFwKGpvYnNUb1NhdmUsIGpvYiA9PiBqb2Iuc2F2ZSh0cnVlKSwgeyBjb25jdXJyZW5jeTogMjUgfSlcbiAgICAgIC50aGVuKCgpID0+IDo6dGhpcy5jbGVhbnVwQXV0b1NhdmUoam9ic1RvU2F2ZSkpXG4gICAgICAuY2F0Y2goZXJyID0+IDo6dGhpcy5jbGVhbnVwQXV0b1NhdmUoam9ic1RvU2F2ZSwgZXJyKSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGpvYnNUb1JlbW92ZVxuICAgKiBAcGFyYW0gcG9zc2libGVFcnJvclxuICAgKi9cbiAgY2xlYW51cEF1dG9TYXZlKGpvYnNUb1JlbW92ZSwgcG9zc2libGVFcnJvcikge1xuICAgIGlmIChwb3NzaWJsZUVycm9yKSB0aGlzLmxvZy5lcnJvcihwb3NzaWJsZUVycm9yKTtcbiAgICB0aGlzLmxvZy52ZXJib3NlKGBSZW1vdmluZyAke2pvYnNUb1JlbW92ZS5sZW5ndGh9IHNhdmVkIGpvYnMgZnJvbSB0aGUgYXV0by1zYXZlIHF1ZXVlLmApO1xuICAgIGZvciAobGV0IGkgPSAwLCBpTGVuID0gam9ic1RvUmVtb3ZlLmxlbmd0aDsgaSA8IGlMZW47IGkrKykge1xuICAgICAgZGVsZXRlIHRoaXMuYXV0b0NyZWF0ZVF1ZXVlW2pvYnNUb1JlbW92ZVtpXS5fYXV0b1NhdmVSZWZdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcXVldWVcbiAgICovXG4gIHF1ZXVlQ3JlYXRlKHF1ZXVlKSB7XG4gICAgdGhpcy5sb2cudmVyYm9zZShgUXVldWUgJyR7cXVldWUubmFtZX0nIGNyZWF0ZWQhYCk7XG4gICAgdGhpcy5xdWV1ZXNbcXVldWUubmFtZV0gPSBuZXcgUXVldWUoeyAuLi50aGlzLm9wdGlvbnMsIC4uLnF1ZXVlIH0sIHRoaXMuY29yZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHVzZXJzIGtleSB0byB0aGUgZnVsbCByZWRpcyBrZXkgd2l0aCBtb2R1bGUgcHJlZml4LlxuICAgKiBAcGFyYW0ga2V5XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICB0b0tleShrZXkgPSAnJykge1xuICAgIHJldHVybiBgJHt0aGlzLm9wdGlvbnMua2V5UHJlZml4fToke2tleX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvIGVuYWJsZSBieXBhc3Npbmcgb2YgY2FjaGUgZm9yIHdyYXAgZnVuY3Rpb25zXG4gICAqIFRvZ2dsZXMgYnkgZGVmYXVsdCBvciBwYXNzIGluIHRydWUvZmFsc2VcbiAgICogQHBhcmFtIGJvb2xcbiAgICovXG4gIGVuYWJsZWQoYm9vbCkge1xuICAgIHRoaXMub3B0aW9ucy5lbmFibGVkID0gYm9vbCB8fCAhdGhpcy5vcHRpb25zLmVuYWJsZWQ7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,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QixJQUF3QyxJQUF4QztBQUNBLGFBQU8sS0FBSyxlQUFMLENBQXFCLGFBQWEsQ0FBYixDQUFyQixDQUFQO0FBQ0Q7O0FBRUQsUUFBSSxDQUFDLE9BQU8sSUFBUCxDQUFZLEtBQUssZUFBakIsRUFBa0MsTUFBdkMsRUFBK0M7QUFDN0M7QUFDQSxXQUFLLGVBQUwsR0FBdUIsSUFBdkI7QUFDQSxhQUFPLEtBQUssZUFBWjtBQUNEOztBQUVELFdBQU8sS0FBSyxDQUFaO0FBQ0Q7O0FBRUQ7Ozs7QUFJQSxjQUFZLEtBQVosRUFBbUI7QUFDakIsU0FBSyxHQUFMLENBQVMsT0FBVCxDQUFrQixXQUFTLE1BQU0sSUFBSyxhQUF0QztBQUNBLFNBQUssTUFBTCxDQUFZLE1BQU0sSUFBbEIsSUFBMEIsaUNBQWUsS0FBSyxPQUFwQixFQUFnQyxLQUFoQyxHQUF5QyxLQUFLLElBQTlDLENBQTFCO0FBQ0Q7O0FBRUQ7Ozs7O0FBS0EsUUFBTSxNQUFNLEVBQVosRUFBZ0I7QUFDZCxXQUFRLElBQUUsS0FBSyxPQUFMLENBQWEsU0FBVSxNQUFHLEdBQUksR0FBeEM7QUFDRDs7QUFFRDs7Ozs7QUFLQSxVQUFRLElBQVIsRUFBYztBQUNaLFNBQUssT0FBTCxDQUFhLE9BQWIsR0FBdUIsUUFBUSxDQUFDLEtBQUssT0FBTCxDQUFhLE9BQTdDO0FBQ0Q7QUE3SjJDO2tCQUF6QixPIiwiZmlsZSI6Imhvb2suanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3VpZCBmcm9tICdjdWlkJztcbmltcG9ydCBKb2IgZnJvbSAnLi9qb2InO1xuaW1wb3J0IFF1ZXVlIGZyb20gJy4vcXVldWUnO1xuaW1wb3J0IFByb21pc2UgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4vZGVmYXVsdHMnO1xuaW1wb3J0IHNjcmlwdHMgZnJvbSAnLi9zY3JpcHRzJztcbmltcG9ydCB7IEJhc2VIb29rIH0gZnJvbSAncmVkaWJveCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEpvYkhvb2sgZXh0ZW5kcyBCYXNlSG9vayB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdqb2InKTtcbiAgICB0aGlzLnF1ZXVlcyA9IHt9O1xuICAgIHRoaXMuYXV0b0NyZWF0ZVF1ZXVlID0gbnVsbDtcbiAgICB0aGlzLmF1dG9TYXZlSW1tZWRpYXRlID0gbnVsbDtcbiAgfVxuXG4gIC8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHMsSlNNZXRob2RDYW5CZVN0YXRpY1xuICAvKipcbiAgICogRGVmYXVsdCBjb25maWcgZm9yIHNjaGVkdWxlclxuICAgKiBAcmV0dXJucyB7e3NvbWVEZWZhdWx0VGhpbmc6IHN0cmluZ319XG4gICAqL1xuICBkZWZhdWx0cygpIHtcbiAgICByZXR1cm4gZGVmYXVsdHM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMge3thZGRKb2IsIGNoZWNrU3RhbGxlZEpvYnMsIHJlbW92ZUpvYn19XG4gICAqL1xuICBzY3JpcHRzKCkge1xuICAgIHJldHVybiBzY3JpcHRzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBpbml0aWFsaXplKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zLmVuYWJsZWQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5vcHRpb25zLnF1ZXVlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3QgcXVldWUgPSB0aGlzLm9wdGlvbnMucXVldWVzW2ldO1xuICAgICAgdGhpcy5xdWV1ZUNyZWF0ZShxdWV1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgam9iIGZvciB0aGUgc3BlY2lmaWVkIHF1ZXVlXG4gICAqIEBwYXJhbSBxdWV1ZVxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7KnxKb2J9XG4gICAqL1xuICBjcmVhdGUoLi4uYXJncykge1xuICAgIGNvbnN0IHJlZiA9IGN1aWQoKTtcbiAgICBpZiAoIXRoaXMuYXV0b0NyZWF0ZVF1ZXVlKSB0aGlzLmF1dG9DcmVhdGVRdWV1ZSA9IHt9O1xuICAgIHRoaXMuYXV0b0NyZWF0ZVF1ZXVlW3JlZl0gPSBuZXcgSm9iKHRoaXMuY29yZSwgbnVsbCwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1swXSwgdHJ1ZSk7XG4gICAgdGhpcy5sb2cudmVyYm9zZShgQ3JlYXRpbmcgam9iIGZvciBxdWV1ZSAke2FyZ3NbMF19IHdpdGggcmVmICR7cmVmfWApO1xuXG4gICAgaWYgKCF0aGlzLmF1dG9TYXZlSW1tZWRpYXRlKSB7XG4gICAgICB0aGlzLmF1dG9TYXZlSW1tZWRpYXRlID0gc2V0SW1tZWRpYXRlKHRoaXMuYXV0b1NhdmUuYmluZCh0aGlzKSk7XG4gICAgfSBlbHNlIGlmICghT2JqZWN0LmtleXModGhpcy5hdXRvQ3JlYXRlUXVldWUpLmxlbmd0aCA+IDIwMCkge1xuICAgICAgdGhpcy5hdXRvU2F2ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmF1dG9DcmVhdGVRdWV1ZVtyZWZdO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dG8gc2F2ZSBhbnkgam9icyBpbiB0aGUgcXVldWVcbiAgICovXG4gIGF1dG9TYXZlKCkge1xuICAgIGNsZWFySW1tZWRpYXRlKHRoaXMuYXV0b1NhdmVJbW1lZGlhdGUpO1xuICAgIHRoaXMuYXV0b1NhdmVJbW1lZGlhdGUgPSBudWxsO1xuXG4gICAgY29uc3Qgam9ic1RvU2F2ZSA9IFtdO1xuICAgIGNvbnN0IHJlZnMgPSBPYmplY3Qua2V5cyh0aGlzLmF1dG9DcmVhdGVRdWV1ZSk7XG5cbiAgICBmb3IgKGxldCBpID0gMCwgaUxlbiA9IHJlZnMubGVuZ3RoOyBpIDwgaUxlbjsgaSsrKSB7XG4gICAgICBjb25zdCByZWYgPSByZWZzW2ldO1xuICAgICAgaWYgKCF0aGlzLmF1dG9DcmVhdGVRdWV1ZVtyZWZdLl9zYXZlZCkge1xuICAgICAgICBqb2JzVG9TYXZlLnB1c2gocmVmKTtcbiAgICAgICAgdGhpcy5hdXRvQ3JlYXRlUXVldWVbcmVmXS5fc2F2ZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hdXRvQ3JlYXRlUXVldWVbcmVmXSA9IG51bGw7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmF1dG9DcmVhdGVRdWV1ZVtyZWZdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICgham9ic1RvU2F2ZS5sZW5ndGgpIHJldHVybiB2b2lkIDA7XG5cbiAgICB0aGlzLmxvZy52ZXJib3NlKGBBdXRvLXNhdmluZyAke2pvYnNUb1NhdmUubGVuZ3RofSBqb2JzLmApO1xuXG4gICAgaWYgKGpvYnNUb1NhdmUubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5hdXRvQ3JlYXRlUXVldWVbam9ic1RvU2F2ZVswXV1cbiAgICAgICAgLndpdGhvdXRQcm94eSgpXG4gICAgICAgIC5zYXZlKHRydWUpXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuY2xlYW51cEF1dG9TYXZlLmNhbGwodGhpcywgam9ic1RvU2F2ZSkpXG4gICAgICAgIC5jYXRjaChlcnIgPT4gdGhpcy5jbGVhbnVwQXV0b1NhdmUuY2FsbCh0aGlzLCBqb2JzVG9TYXZlLCBlcnIpKTtcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQgbm8tY29uZnVzaW5nLWFycm93OiAwICovXG4gICAgcmV0dXJuIFByb21pc2VcbiAgICAgIC5tYXAoXG4gICAgICAgIGpvYnNUb1NhdmUsXG4gICAgICAgIHJlZiA9PiB0aGlzLmF1dG9DcmVhdGVRdWV1ZVtyZWZdID9cbiAgICAgICAgICB0aGlzLmF1dG9DcmVhdGVRdWV1ZVtyZWZdLndpdGhvdXRQcm94eSgpLnNhdmUodHJ1ZSkgOlxuICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLFxuICAgICAgICB7IGNvbmN1cnJlbmN5OiAyNSB9XG4gICAgICApXG4gICAgICAudGhlbigoKSA9PiB0aGlzLmNsZWFudXBBdXRvU2F2ZS5jYWxsKHRoaXMsIGpvYnNUb1NhdmUpKVxuICAgICAgLmNhdGNoKGVyciA9PiB0aGlzLmNsZWFudXBBdXRvU2F2ZS5jYWxsKHRoaXMsIGpvYnNUb1NhdmUsIGVycikpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBqb2JzVG9SZW1vdmVcbiAgICogQHBhcmFtIHBvc3NpYmxlRXJyb3JcbiAgICovXG4gIGNsZWFudXBBdXRvU2F2ZShqb2JzVG9SZW1vdmUsIHBvc3NpYmxlRXJyb3IpIHtcbiAgICBpZiAocG9zc2libGVFcnJvcikgdGhpcy5sb2cuZXJyb3IocG9zc2libGVFcnJvcik7XG4gICAgdGhpcy5sb2cudmVyYm9zZShgUmVtb3ZpbmcgJHtqb2JzVG9SZW1vdmUubGVuZ3RofSBzYXZlZCBqb2JzIGZyb20gdGhlIGF1dG8tc2F2ZSBxdWV1ZS5gKTtcbiAgICBmb3IgKGxldCBpID0gMCwgaUxlbiA9IGpvYnNUb1JlbW92ZS5sZW5ndGg7IGkgPCBpTGVuOyBpKyspIHtcbiAgICAgIC8vIHRyeWluZyB0byBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gaGVyZVxuICAgICAgdGhpcy5hdXRvQ3JlYXRlUXVldWVbam9ic1RvUmVtb3ZlW2ldXSA9IG51bGw7XG4gICAgICBkZWxldGUgdGhpcy5hdXRvQ3JlYXRlUXVldWVbam9ic1RvUmVtb3ZlW2ldXTtcbiAgICB9XG5cbiAgICBpZiAoIU9iamVjdC5rZXlzKHRoaXMuYXV0b0NyZWF0ZVF1ZXVlKS5sZW5ndGgpIHtcbiAgICAgIC8vIHRyeWluZyB0byBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gaGVyZVxuICAgICAgdGhpcy5hdXRvQ3JlYXRlUXVldWUgPSBudWxsO1xuICAgICAgZGVsZXRlIHRoaXMuYXV0b0NyZWF0ZVF1ZXVlO1xuICAgIH1cblxuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHF1ZXVlXG4gICAqL1xuICBxdWV1ZUNyZWF0ZShxdWV1ZSkge1xuICAgIHRoaXMubG9nLnZlcmJvc2UoYFF1ZXVlICcke3F1ZXVlLm5hbWV9JyBjcmVhdGVkIWApO1xuICAgIHRoaXMucXVldWVzW3F1ZXVlLm5hbWVdID0gbmV3IFF1ZXVlKHsgLi4udGhpcy5vcHRpb25zLCAuLi5xdWV1ZSB9LCB0aGlzLmNvcmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSB1c2VycyBrZXkgdG8gdGhlIGZ1bGwgcmVkaXMga2V5IHdpdGggbW9kdWxlIHByZWZpeC5cbiAgICogQHBhcmFtIGtleVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgdG9LZXkoa2V5ID0gJycpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5vcHRpb25zLmtleVByZWZpeH06JHtrZXl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUbyBlbmFibGUgYnlwYXNzaW5nIG9mIGNhY2hlIGZvciB3cmFwIGZ1bmN0aW9uc1xuICAgKiBUb2dnbGVzIGJ5IGRlZmF1bHQgb3IgcGFzcyBpbiB0cnVlL2ZhbHNlXG4gICAqIEBwYXJhbSBib29sXG4gICAqL1xuICBlbmFibGVkKGJvb2wpIHtcbiAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9IGJvb2wgfHwgIXRoaXMub3B0aW9ucy5lbmFibGVkO1xuICB9XG59XG4iXX0= |
@@ -43,3 +43,2 @@ 'use strict'; | ||
this.options = options; | ||
this._autoSaveRef = ''; | ||
this.status = 'created'; | ||
@@ -80,5 +79,5 @@ this.subscriptions = []; | ||
/** | ||
* Returns job instance with no proxy | ||
* @returns {Job} | ||
*/ | ||
* Returns job instance with no proxy | ||
* @returns {Job} | ||
*/ | ||
withoutProxy() { | ||
@@ -107,6 +106,6 @@ this.ignoreProxy = true; | ||
*/ | ||
static fromData(queue, id, data) { | ||
const obj = (0, _redibox.tryJSONParse)(data); | ||
static fromData(...args) { | ||
const obj = (0, _redibox.tryJSONParse)(args[2]); | ||
if (!obj) return null; | ||
const job = new Job(queue.core, id, obj.data, obj.options, queue.name); | ||
const job = new Job(args[0].core, args[1], obj.data, obj.options, args[0].name); | ||
job.status = obj.data.status; | ||
@@ -199,3 +198,3 @@ return job; | ||
return this.onFailureCallback(message.data); | ||
}, this.options.timeout + 1500).then(() => // subscribed callback | ||
}, this.options.timeout + 1000).then(() => // subscribed callback | ||
this._save()).catch(error => this.onFailureCallback({ | ||
@@ -378,2 +377,2 @@ type: 'job', | ||
// } | ||
//# sourceMappingURL=data:application/json;base64,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anMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUgU2FsYWthclxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKlxuICovXG5cbmltcG9ydCBjdWlkIGZyb20gJ2N1aWQnO1xuaW1wb3J0IFByb21pc2UgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgbm9vcCwgc2hhMXN1bSwgdHJ5SlNPTlN0cmluZ2lmeSwgdHJ5SlNPTlBhcnNlIH0gZnJvbSAncmVkaWJveCc7XG5cbi8qKlxuICogQGNsYXNzIEpvYlxuICovXG5jbGFzcyBKb2Ige1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gY29yZVxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIGRhdGFcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHBhcmFtIHF1ZXVlTmFtZVxuICAgKiBAcGFyYW0gaXNOZXdcbiAgICogQHJldHVybnMgeyp9XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb3JlLCBpZCwgZGF0YSA9IHt9LCBvcHRpb25zID0ge1xuICAgIHVuaXF1ZTogZmFsc2UsXG4gICAgdGltZW91dDogNjAwMDAsIC8vIDEgbWludXRlIGRlZmF1bHQgdGltZW91dFxuICB9LCBxdWV1ZU5hbWUsIGlzTmV3KSB7XG4gICAgdGhpcy5pZCA9IGlkO1xuICAgIHRoaXMuY29yZSA9IGNvcmU7XG4gICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICB0aGlzLl9zYXZlZCA9IGZhbHNlO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5fYXV0b1NhdmVSZWYgPSAnJztcbiAgICB0aGlzLnN0YXR1cyA9ICdjcmVhdGVkJztcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB0aGlzLmlnbm9yZVByb3h5ID0gZmFsc2U7XG4gICAgdGhpcy5xdWV1ZU5hbWUgPSBxdWV1ZU5hbWU7XG4gICAgdGhpcy50eXBlID0gZGF0YS5ydW5zICYmIEFycmF5LmlzQXJyYXkoZGF0YS5ydW5zKSA/ICdyZWxheScgOiAnc2luZ2xlJztcblxuICAgIC8vIHBhcmVudCByZWxheSBqb2IgdGltZW91dCBzaG91bGQgY292ZXIgYWxsIGNoaWxkIGpvYiB0aW1lb3V0c1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdyZWxheScpIHRoaXMub3B0aW9ucy50aW1lb3V0ID0gdGhpcy5vcHRpb25zLnRpbWVvdXQgKiBkYXRhLnJ1bnMubGVuZ3RoO1xuXG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICAvLyB0aGlzIFByb3h5IGFsbG93cyBjaGFpbmluZyBtZXRob2RzIHdoaWxlIHN0aWxsIGtlZXBpbmcgdGhlXG4gICAgICAvLyBzYXZlKCkgcHJvbWlzZSB2YWxpZFxuICAgICAgdGhpcy5wcm94eSA9IG5ldyBQcm94eSh0aGlzLCB7XG4gICAgICAgIGdldCh0YXJnZXQsIG5hbWUpIHtcbiAgICAgICAgICBpZiAobmFtZSBpbiB0YXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRbbmFtZV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaGF4eG9yc1xuICAgICAgICAgIGlmICghdGFyZ2V0Lmlnbm9yZVByb3h5ICYmIG5hbWUgPT09ICd0aGVuJykge1xuICAgICAgICAgICAgdGFyZ2V0LnByb21pc2UgPSB0YXJnZXQuc2F2ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5wcm9taXNlLnRoZW4uYmluZCh0YXJnZXQucHJvbWlzZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGhpcy5wcm94eTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG5cdC8qKlxuICAgKiBSZXR1cm5zIGpvYiBpbnN0YW5jZSB3aXRoIG5vIHByb3h5XG4gICAqIEByZXR1cm5zIHtKb2J9XG4gICAqL1xuICB3aXRob3V0UHJveHkoKSB7XG4gICAgdGhpcy5pZ25vcmVQcm94eSA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUXVlcnkgcmVkaXMgZm9yIHRoZSBzcGVjaWZpZWQgam9iIGlkIGFuZCBjb252ZXJ0cyBpdCB0byBhIG5ldyBpbnN0YW5jZSBvZiBKb2IuXG4gICAqIEBzdGF0aWNcbiAgICogQHBhcmFtIHF1ZXVlXG4gICAqIEBwYXJhbSBpZFxuICAgKi9cbiAgc3RhdGljIGZyb21JZChxdWV1ZSwgaWQpIHtcbiAgICByZXR1cm4gcXVldWUuY2xpZW50LmhnZXQocXVldWUudG9LZXkoJ2pvYnMnKSwgaWQpLnRoZW4oKGRhdGEpID0+XG4gICAgICBKb2IuZnJvbURhdGEocXVldWUsIGlkLCBkYXRhKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBKU09OIHN0cmluZyBvZiBhIGpvYidzIGRhdGEgdG8gYSBuZXcgaW5zdGFuY2Ugb2YgSm9iXG4gICAqIEBzdGF0aWNcbiAgICogQHBhcmFtIHF1ZXVlXG4gICAqIEBwYXJhbSBpZFxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcmV0dXJucyB7Sm9iIHwgbnVsbH1cbiAgICovXG4gIHN0YXRpYyBmcm9tRGF0YShxdWV1ZSwgaWQsIGRhdGEpIHtcbiAgICBjb25zdCBvYmogPSB0cnlKU09OUGFyc2UoZGF0YSk7XG4gICAgaWYgKCFvYmopIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGpvYiA9IG5ldyBKb2IocXVldWUuY29yZSwgaWQsIG9iai5kYXRhLCBvYmoub3B0aW9ucywgcXVldWUubmFtZSk7XG4gICAgam9iLnN0YXR1cyA9IG9iai5kYXRhLnN0YXR1cztcbiAgICByZXR1cm4gam9iO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdGhpcyBKb2IgaW5zdGFuY2UgdG8gYSBqc29uIHN0cmluZy5cbiAgICovXG4gIHRvRGF0YSgpIHtcbiAgICByZXR1cm4gdHJ5SlNPTlN0cmluZ2lmeSh7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgeyp9XG4gICAqL1xuICB0b09iamVjdChleGNsdWRlRGF0YSkge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGRhdGE6IGV4Y2x1ZGVEYXRhID8gJ2hpZGRlbicgOiB0aGlzLmRhdGEsXG4gICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgc2F2ZSB0aGF0IHB1c2hlcyB0byByZWRpcy5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9zYXZlKCkge1xuICAgIHRoaXMuY29yZS5sb2cudmVyYm9zZShgU2F2aW5nIG5ldyBqb2IgJHt0aGlzLmlkfSBmb3IgJHt0aGlzLnF1ZXVlTmFtZX1gKTtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmNsaWVudC5hZGRqb2IoXG4gICAgICB0aGlzLl90b1F1ZXVlS2V5KCdqb2JzJyksXG4gICAgICB0aGlzLl90b1F1ZXVlS2V5KCd3YWl0aW5nJyksXG4gICAgICB0aGlzLl90b1F1ZXVlS2V5KCdpZCcpLFxuICAgICAgdGhpcy50b0RhdGEoKSxcbiAgICAgICEhdGhpcy5vcHRpb25zLnVuaXF1ZSxcbiAgICAgIHRoaXMuaWQpLnRoZW4oKGlkKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudW5pcXVlICYmIGlkID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSAnZHVwbGljYXRlJztcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGBFUlJfRFVQTElDQVRFOiBKb2IgJHt0aGlzLmlkfSBhbHJlYWR5IGV4aXN0cywgc2F2ZSBoYXMgYmVlbiBhYm9ydGVkLmApKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvcmUubG9nLnZlcmJvc2UoYFNhdmVkIGpvYiBmb3IgJHt0aGlzLnF1ZXVlTmFtZX1gKTtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLnN0YXR1cyA9ICdzYXZlZCc7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy50b09iamVjdCh0cnVlKSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIHRoaXMgaW5zdGFuY2Ugb2YgSm9iIHRvIHJlZGlzLiBBbnkgYWN0aXZlIHF1ZXVlcyB3aWxsIHBpY2sgaXQgdXBcbiAgICogaW1tZWRpYXRlbHkgZm9yIHByb2Nlc3NpbmcuXG4gICAqIEByZXR1cm5zIHsqfVxuICAgKi9cbiAgc2F2ZShhdXRvKSB7XG4gICAgaWYgKCFhdXRvICYmIHRoaXMuX3NhdmVkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgICAvLyBsb2NrIGl0IHNvIGF1dG9TYXZlIGRvZXNuJ3QgcGljayBpdCB1cCBidXQgb25seSBkZWxldGVzIGl0IGZyb20gcXVldWVcbiAgICB0aGlzLl9zYXZlZCA9IHRydWU7XG5cbiAgICB0aGlzLmlkID0gYCR7dGhpcy5xdWV1ZU5hbWV9LSR7KHRoaXMub3B0aW9ucy51bmlxdWUgPyBzaGExc3VtKHRoaXMuZGF0YSkgOiBjdWlkKCkpfWA7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm5vdGlmeVN1Y2Nlc3MpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5ub3RpZnlTdWNjZXNzID0gYGpvYjoke3RoaXMuaWR9OnN1Y2Nlc3NgO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goYGpvYjoke3RoaXMuaWR9OnN1Y2Nlc3NgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm5vdGlmeUZhaWx1cmUpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5ub3RpZnlGYWlsdXJlID0gYGpvYjoke3RoaXMuaWR9OmZhaWx1cmVgO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goYGpvYjoke3RoaXMuaWR9OmZhaWx1cmVgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm5vdGlmeVN1Y2Nlc3MgfHwgdGhpcy5vcHRpb25zLm5vdGlmeUZhaWx1cmUpIHtcbiAgICAgIGlmICghdGhpcy5jb3JlLnB1YnN1Yi5vcHRpb25zLnN1YnNjcmliZXIpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgICAgIG5ldyBFcnJvcignQ2Fubm90IHN1YnNjcmliZSB0byBqb2IgZXZlbnRzIHdoZW4gUmVkaUJveC5wdWJzdWIgXFwnc3Vic2NyaWJlclxcJyBjb25maWcgaXMgc2V0IHRvIGRpc2FibGVkLicpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmNvcmUucHVic3ViLnN1YnNjcmliZU9uY2VPZihcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLFxuICAgICAgICAobWVzc2FnZSkgPT4geyAvLyBvbiBtZXNzYWdlIHJlY2VpdmVkXG4gICAgICAgICAgLy8gcmVtb3ZlIHRoZSBwdWJzdWIgZGF0YVxuICAgICAgICAgIGlmICghbWVzc2FnZS5kYXRhKSBtZXNzYWdlLmRhdGEgPSB7fTtcblxuICAgICAgICAgIC8vIGlmIHRoZXJlJ3MgYW4gZXJyb3IgdGhlbiBhc3N1bWUgZmFpbGVkLlxuICAgICAgICAgIGlmIChtZXNzYWdlLmRhdGEuZXJyb3IpIHJldHVybiB0aGlzLm9uRmFpbHVyZUNhbGxiYWNrKG1lc3NhZ2UuZGF0YSk7XG5cbiAgICAgICAgICAvLyBpcyBpdCBmcm9tIHRoZSBzdWNjZXNzIGNoYW5uZWwuXG4gICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uc1swXSA9PT0gbWVzc2FnZS5jaGFubmVsKSByZXR1cm4gdGhpcy5vblN1Y2Nlc3NDYWxsYmFjayhtZXNzYWdlLmRhdGEpO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMub25GYWlsdXJlQ2FsbGJhY2sobWVzc2FnZS5kYXRhKTtcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5vcHRpb25zLnRpbWVvdXQgKyAxNTAwXG4gICAgICApLnRoZW4oKCkgPT4gIC8vIHN1YnNjcmliZWQgY2FsbGJhY2tcbiAgICAgICAgdGhpcy5fc2F2ZSgpXG4gICAgICApLmNhdGNoKGVycm9yID0+XG4gICAgICAgIHRoaXMub25GYWlsdXJlQ2FsbGJhY2soe1xuICAgICAgICAgIHR5cGU6ICdqb2InLFxuICAgICAgICAgIGVycm9yOiBuZXcgRXJyb3IoJ0Vycm9yIHdoaWxlIHN1YnNjcmliaW5nIHRvIGpvYiBldmVudHMsIGhvd2V2ZXIgdGhpcyBqb2Igd2lsbCBzdGlsbCBiZSBxdWV1ZWQgLSAnICtcbiAgICAgICAgICAgICd5b3UgbWF5IGJlIHVuYWJsZSB0byByZWNlaXZlIG9uU3VjY2VzcyAvIG9uRmFpbHVyZSBldmVudHMgZm9yIHRoaXMgam9iLicpLFxuICAgICAgICAgIGVycm9yX2FjdHVhbDogZXJyb3IsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zYXZlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBudW1iZXIgb2YgdGltZXMgdGhpcyBqb2Igd2lsbCByZXRyeSBvbiBmYWlsdXJlXG4gICAqIEBwYXJhbSBuXG4gICAqIEByZXR1cm5zIHtKb2J9XG4gICAqL1xuICByZXRyaWVzKG4pIHtcbiAgICBpZiAobiA8IDApIHRocm93IEVycm9yKCdSZXRyaWVzIGNhbm5vdCBiZSBuZWdhdGl2ZScpO1xuICAgIHRoaXMub3B0aW9ucy5yZXRyaWVzID0gbiAtIDE7XG4gICAgcmV0dXJuIHRoaXMucHJveHk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBvblN1Y2Nlc3MgY2FsbGJhY2sgYW5kIG5vdGlmeSBvcHRpb25cbiAgICogQHBhcmFtIG5vdGlmeVxuICAgKiBAcmV0dXJucyB7Sm9ifVxuICAgKi9cbiAgb25TdWNjZXNzKG5vdGlmeSkge1xuICAgIHRoaXMub3B0aW9ucy5ub3RpZnlTdWNjZXNzID0gdHJ1ZTtcbiAgICB0aGlzLm9uU3VjY2Vzc0NhbGxiYWNrID0gbm90aWZ5O1xuICAgIGlmICghdGhpcy5vbkZhaWx1cmVDYWxsYmFjaykgdGhpcy5vbkZhaWx1cmVDYWxsYmFjayA9IG5vb3A7XG4gICAgcmV0dXJuIHRoaXMucHJveHk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBvbkZhaWx1cmUgY2FsbGJhY2sgYW5kIG5vdGlmeSBvcHRpb25cbiAgICogQHBhcmFtIG5vdGlmeVxuICAgKiBAcmV0dXJucyB7Sm9ifVxuICAgKi9cbiAgb25GYWlsdXJlKG5vdGlmeSkge1xuICAgIHRoaXMub3B0aW9ucy5ub3RpZnlGYWlsdXJlID0gdHJ1ZTtcbiAgICB0aGlzLm9uRmFpbHVyZUNhbGxiYWNrID0gbm90aWZ5O1xuICAgIGlmICghdGhpcy5vblN1Y2Nlc3NDYWxsYmFjaykgdGhpcy5vblN1Y2Nlc3NDYWxsYmFjayA9IG5vb3A7XG4gICAgcmV0dXJuIHRoaXMucHJveHk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGJvb2xcbiAgICogQHJldHVybnMge0pvYn1cbiAgICovXG4gIHVuaXF1ZShib29sKSB7XG4gICAgdGhpcy5vcHRpb25zLnVuaXF1ZSA9IGJvb2w7XG4gICAgcmV0dXJuIHRoaXMucHJveHk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGhvdyBsb25nIHRoaXMgam9iIGNhbiByZW1haW4gcnVubmluZyBmb3IgYmVmb3JlIGl0IHRpbWVzIG91dC5cbiAgICogQHBhcmFtIG1zXG4gICAqIEByZXR1cm5zIHtKb2J9XG4gICAqL1xuICB0aW1lb3V0KG1zKSB7XG4gICAgdGhpcy5vcHRpb25zLnRpbWVvdXQgPSBtcztcbiAgICByZXR1cm4gdGhpcy5wcm94eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBxdWV1ZSBwcmVmaXhlZCBrZXkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHN0cmluZy5cbiAgICogQHBhcmFtIHN0clxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3RvUXVldWVLZXkoc3RyKSB7XG4gICAgaWYgKHRoaXMuY29yZS5jbHVzdGVyLmlzQ2x1c3RlcigpKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jb3JlLmhvb2tzLmpvYi5vcHRpb25zLmtleVByZWZpeH06eyR7dGhpcy5xdWV1ZU5hbWV9fToke3N0cn1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGhpcy5jb3JlLmhvb2tzLmpvYi5vcHRpb25zLmtleVByZWZpeH06JHt0aGlzLnF1ZXVlTmFtZX06JHtzdHJ9YDtcbiAgfVxuXG59XG5cbmV4cG9ydCBkZWZhdWx0IEpvYjtcblxuLy8gRXhwZXJpbWVudGFsIGNvZGUgYmVsb3cgaXMgVE9ET1xuXG4vLyAvKipcbi8vICAqXG4vLyAgKiBAcmV0dXJucyB7Sm9iLmluaXRpYWxKb2J8Kn1cbi8vICAqL1xuLy8gaW5pdGlhbEpvYigpIHtcbi8vICAgcmV0dXJuIHRoaXMuX2ludGVybmFsRGF0YS5pbml0aWFsSm9iO1xuLy8gfVxuLy9cbi8vIC8qKlxuLy8gICpcbi8vICAqIEByZXR1cm5zIHtKb2IuaW5pdGlhbFF1ZXVlfCp9XG4vLyAgKi9cbi8vIGluaXRpYWxRdWV1ZSgpIHtcbi8vICAgcmV0dXJuIHRoaXMuX2ludGVybmFsRGF0YS5pbml0aWFsUXVldWU7XG4vLyB9XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBqb2JJZFxuICogQHJldHVybnMge1Byb21pc2V9XG4gKi9cbi8vIGdldEpvYihqb2JJZCkge1xuLy8gICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuLy8gICAgIGlmIChqb2JJZCBpbiB0aGlzLmpvYnMpIHtcbi8vICAgICAgIC8vIHdlIGhhdmUgdGhlIGpvYiBsb2NhbGx5XG4vLyAgICAgICByZXR1cm4gcmVzb2x2ZSh0aGlzLmpvYnNbam9iSWRdKTtcbi8vICAgICB9XG4vLyAgICAgLy8gbm90IGxvY2FsIHNvIGdhdGhlciBmcm9tIHJlZGlzXG4vLyAgICAgSm9iLmZyb21JZCh0aGlzLCBqb2JJZClcbi8vICAgICAgICAudGhlbihqb2IgPT4ge1xuLy8gICAgICAgICAgdGhpcy5qb2JzW2pvYklkXSA9IGpvYjtcbi8vICAgICAgICAgIHJldHVybiByZXNvbHZlKGpvYik7XG4vLyAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbi8vICAgfSk7XG4vLyB9XG4vL1xuLy8gLyoqXG4vLyAgKiBSZW1vdmUgdGhpcyBqb2IgZnJvbSBhbGwgc2V0cy5cbi8vICAqIEBwYXJhbSBjYlxuLy8gICovXG4vLyByZW1vdmUoY2IgPSBub29wKSB7XG4vLyAgIHRoaXMuY29yZS5jbGllbnQucmVtb3Zlam9iKFxuLy8gICAgIHRoaXMuX3RvUXVldWVLZXkoJ3N1Y2NlZWRlZCcpLCB0aGlzLl90b1F1ZXVlS2V5KCdmYWlsZWQnKSwgdGhpcy5fdG9RdWV1ZUtleSgnd2FpdGluZycpLFxuLy8gICAgIHRoaXMuX3RvUXVldWVLZXkoJ2FjdGl2ZScpLCB0aGlzLl90b1F1ZXVlS2V5KCdzdGFsbGluZycpLCB0aGlzLl90b1F1ZXVlS2V5KCdqb2JzJyksXG4vLyAgICAgdGhpcy5pZCwgY2IpO1xuLy8gfVxuLy9cbi8vIC8qKlxuLy8gICogUmUtc2F2ZSB0aGlzIGpvYiBmb3IgdGhlIHB1cnBvc2Ugb2YgcmV0cnlpbmcgaXQuXG4vLyAgKiBAcGFyYW0gY2Jcbi8vICAqL1xuLy8gcmV0cnkoY2IgPSBub29wKSB7XG4vLyAgIHRoaXMuY29yZS5jbGllbnQubXVsdGkoKVxuLy8gICAgICAgLnNyZW0odGhpcy5fdG9RdWV1ZUtleSgnZmFpbGVkJyksIHRoaXMuaWQpXG4vLyAgICAgICAubHB1c2godGhpcy5fdG9RdWV1ZUtleSgnd2FpdGluZycpLCB0aGlzLmlkKVxuLy8gICAgICAgLmV4ZWMoY2IpO1xuLy8gfVxuLy9cbi8vIC8qKlxuLy8gICogQ2FsbGJhY2tzIHRydWUgb2YgZmFsc2UgaWYgdGhpcyBqb2IgZXhpc3RzIGluIHRoZSBzcGVjaWZpZWQgc2V0LlxuLy8gICogQHBhcmFtIHNldFxuLy8gICogQHBhcmFtIGNiXG4vLyAgKi9cbi8vIGlzSW5TZXQoc2V0LCBjYiA9IG5vb3ApIHtcbi8vICAgdGhpcy5jb3JlLmNsaWVudC5zaXNtZW1iZXIodGhpcy5fdG9RdWV1ZUtleShzZXQpLCB0aGlzLmlkLCAoZXJyLCByZXN1bHQpID0+IHtcbi8vICAgICBpZiAoZXJyKSByZXR1cm4gY2IoZXJyKTtcbi8vICAgICByZXR1cm4gY2IobnVsbCwgcmVzdWx0ID09PSAxKTtcbi8vICAgfSk7XG4vLyB9XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,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c291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE1IFNhbGFrYXJcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICpcbiAqL1xuXG5pbXBvcnQgY3VpZCBmcm9tICdjdWlkJztcbmltcG9ydCBQcm9taXNlIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IG5vb3AsIHNoYTFzdW0sIHRyeUpTT05TdHJpbmdpZnksIHRyeUpTT05QYXJzZSB9IGZyb20gJ3JlZGlib3gnO1xuXG4vKipcbiAqIEBjbGFzcyBKb2JcbiAqL1xuY2xhc3MgSm9iIHtcblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGNvcmVcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEBwYXJhbSBxdWV1ZU5hbWVcbiAgICogQHBhcmFtIGlzTmV3XG4gICAqIEByZXR1cm5zIHsqfVxuICAgKi9cbiAgY29uc3RydWN0b3IoY29yZSwgaWQsIGRhdGEgPSB7fSwgb3B0aW9ucyA9IHtcbiAgICB1bmlxdWU6IGZhbHNlLFxuICAgIHRpbWVvdXQ6IDYwMDAwLCAvLyAxIG1pbnV0ZSBkZWZhdWx0IHRpbWVvdXRcbiAgfSwgcXVldWVOYW1lLCBpc05ldykge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLmNvcmUgPSBjb3JlO1xuICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgdGhpcy5fc2F2ZWQgPSBmYWxzZTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc3RhdHVzID0gJ2NyZWF0ZWQnO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIHRoaXMuaWdub3JlUHJveHkgPSBmYWxzZTtcbiAgICB0aGlzLnF1ZXVlTmFtZSA9IHF1ZXVlTmFtZTtcbiAgICB0aGlzLnR5cGUgPSBkYXRhLnJ1bnMgJiYgQXJyYXkuaXNBcnJheShkYXRhLnJ1bnMpID8gJ3JlbGF5JyA6ICdzaW5nbGUnO1xuXG4gICAgLy8gcGFyZW50IHJlbGF5IGpvYiB0aW1lb3V0IHNob3VsZCBjb3ZlciBhbGwgY2hpbGQgam9iIHRpbWVvdXRzXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3JlbGF5JykgdGhpcy5vcHRpb25zLnRpbWVvdXQgPSB0aGlzLm9wdGlvbnMudGltZW91dCAqIGRhdGEucnVucy5sZW5ndGg7XG5cbiAgICBpZiAoaXNOZXcpIHtcbiAgICAgIC8vIHRoaXMgUHJveHkgYWxsb3dzIGNoYWluaW5nIG1ldGhvZHMgd2hpbGUgc3RpbGwga2VlcGluZyB0aGVcbiAgICAgIC8vIHNhdmUoKSBwcm9taXNlIHZhbGlkXG4gICAgICB0aGlzLnByb3h5ID0gbmV3IFByb3h5KHRoaXMsIHtcbiAgICAgICAgZ2V0KHRhcmdldCwgbmFtZSkge1xuICAgICAgICAgIGlmIChuYW1lIGluIHRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtuYW1lXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBoYXh4b3JzXG4gICAgICAgICAgaWYgKCF0YXJnZXQuaWdub3JlUHJveHkgJiYgbmFtZSA9PT0gJ3RoZW4nKSB7XG4gICAgICAgICAgICB0YXJnZXQucHJvbWlzZSA9IHRhcmdldC5zYXZlKCk7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnByb21pc2UudGhlbi5iaW5kKHRhcmdldC5wcm9taXNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0aGlzLnByb3h5O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgam9iIGluc3RhbmNlIHdpdGggbm8gcHJveHlcbiAgICogQHJldHVybnMge0pvYn1cbiAgICovXG4gIHdpdGhvdXRQcm94eSgpIHtcbiAgICB0aGlzLmlnbm9yZVByb3h5ID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyeSByZWRpcyBmb3IgdGhlIHNwZWNpZmllZCBqb2IgaWQgYW5kIGNvbnZlcnRzIGl0IHRvIGEgbmV3IGluc3RhbmNlIG9mIEpvYi5cbiAgICogQHN0YXRpY1xuICAgKiBAcGFyYW0gcXVldWVcbiAgICogQHBhcmFtIGlkXG4gICAqL1xuICBzdGF0aWMgZnJvbUlkKHF1ZXVlLCBpZCkge1xuICAgIHJldHVybiBxdWV1ZS5jbGllbnQuaGdldChxdWV1ZS50b0tleSgnam9icycpLCBpZCkudGhlbigoZGF0YSkgPT5cbiAgICAgIEpvYi5mcm9tRGF0YShxdWV1ZSwgaWQsIGRhdGEpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIEpTT04gc3RyaW5nIG9mIGEgam9iJ3MgZGF0YSB0byBhIG5ldyBpbnN0YW5jZSBvZiBKb2JcbiAgICogQHN0YXRpY1xuICAgKiBAcGFyYW0gcXVldWVcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEByZXR1cm5zIHtKb2IgfCBudWxsfVxuICAgKi9cbiAgc3RhdGljIGZyb21EYXRhKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBvYmogPSB0cnlKU09OUGFyc2UoYXJnc1syXSk7XG4gICAgaWYgKCFvYmopIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGpvYiA9IG5ldyBKb2IoYXJnc1swXS5jb3JlLCBhcmdzWzFdLCBvYmouZGF0YSwgb2JqLm9wdGlvbnMsIGFyZ3NbMF0ubmFtZSk7XG4gICAgam9iLnN0YXR1cyA9IG9iai5kYXRhLnN0YXR1cztcbiAgICByZXR1cm4gam9iO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdGhpcyBKb2IgaW5zdGFuY2UgdG8gYSBqc29uIHN0cmluZy5cbiAgICovXG4gIHRvRGF0YSgpIHtcbiAgICByZXR1cm4gdHJ5SlNPTlN0cmluZ2lmeSh7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgeyp9XG4gICAqL1xuICB0b09iamVjdChleGNsdWRlRGF0YSkge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIGRhdGE6IGV4Y2x1ZGVEYXRhID8gJ2hpZGRlbicgOiB0aGlzLmRhdGEsXG4gICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgc2F2ZSB0aGF0IHB1c2hlcyB0byByZWRpcy5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9zYXZlKCkge1xuICAgIHRoaXMuY29yZS5sb2cudmVyYm9zZShgU2F2aW5nIG5ldyBqb2IgJHt0aGlzLmlkfSBmb3IgJHt0aGlzLnF1ZXVlTmFtZX1gKTtcbiAgICByZXR1cm4gdGhpcy5jb3JlLmNsaWVudC5hZGRqb2IoXG4gICAgICB0aGlzLl90b1F1ZXVlS2V5KCdqb2JzJyksXG4gICAgICB0aGlzLl90b1F1ZXVlS2V5KCd3YWl0aW5nJyksXG4gICAgICB0aGlzLl90b1F1ZXVlS2V5KCdpZCcpLFxuICAgICAgdGhpcy50b0RhdGEoKSxcbiAgICAgICEhdGhpcy5vcHRpb25zLnVuaXF1ZSxcbiAgICAgIHRoaXMuaWQpLnRoZW4oKGlkKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudW5pcXVlICYmIGlkID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSAnZHVwbGljYXRlJztcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGBFUlJfRFVQTElDQVRFOiBKb2IgJHt0aGlzLmlkfSBhbHJlYWR5IGV4aXN0cywgc2F2ZSBoYXMgYmVlbiBhYm9ydGVkLmApKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvcmUubG9nLnZlcmJvc2UoYFNhdmVkIGpvYiBmb3IgJHt0aGlzLnF1ZXVlTmFtZX1gKTtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLnN0YXR1cyA9ICdzYXZlZCc7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy50b09iamVjdCh0cnVlKSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIHRoaXMgaW5zdGFuY2Ugb2YgSm9iIHRvIHJlZGlzLiBBbnkgYWN0aXZlIHF1ZXVlcyB3aWxsIHBpY2sgaXQgdXBcbiAgICogaW1tZWRpYXRlbHkgZm9yIHByb2Nlc3NpbmcuXG4gICAqIEByZXR1cm5zIHsqfVxuICAgKi9cbiAgc2F2ZShhdXRvKSB7XG4gICAgaWYgKCFhdXRvICYmIHRoaXMuX3NhdmVkKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgICAvLyBsb2NrIGl0IHNvIGF1dG9TYXZlIGRvZXNuJ3QgcGljayBpdCB1cCBidXQgb25seSBkZWxldGVzIGl0IGZyb20gcXVldWVcbiAgICB0aGlzLl9zYXZlZCA9IHRydWU7XG5cbiAgICB0aGlzLmlkID0gYCR7dGhpcy5xdWV1ZU5hbWV9LSR7KHRoaXMub3B0aW9ucy51bmlxdWUgPyBzaGExc3VtKHRoaXMuZGF0YSkgOiBjdWlkKCkpfWA7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm5vdGlmeVN1Y2Nlc3MpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5ub3RpZnlTdWNjZXNzID0gYGpvYjoke3RoaXMuaWR9OnN1Y2Nlc3NgO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goYGpvYjoke3RoaXMuaWR9OnN1Y2Nlc3NgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm5vdGlmeUZhaWx1cmUpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5ub3RpZnlGYWlsdXJlID0gYGpvYjoke3RoaXMuaWR9OmZhaWx1cmVgO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goYGpvYjoke3RoaXMuaWR9OmZhaWx1cmVgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm5vdGlmeVN1Y2Nlc3MgfHwgdGhpcy5vcHRpb25zLm5vdGlmeUZhaWx1cmUpIHtcbiAgICAgIGlmICghdGhpcy5jb3JlLnB1YnN1Yi5vcHRpb25zLnN1YnNjcmliZXIpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFxuICAgICAgICAgIG5ldyBFcnJvcignQ2Fubm90IHN1YnNjcmliZSB0byBqb2IgZXZlbnRzIHdoZW4gUmVkaUJveC5wdWJzdWIgXFwnc3Vic2NyaWJlclxcJyBjb25maWcgaXMgc2V0IHRvIGRpc2FibGVkLicpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmNvcmUucHVic3ViLnN1YnNjcmliZU9uY2VPZihcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLFxuICAgICAgICAobWVzc2FnZSkgPT4geyAvLyBvbiBtZXNzYWdlIHJlY2VpdmVkXG4gICAgICAgICAgLy8gcmVtb3ZlIHRoZSBwdWJzdWIgZGF0YVxuICAgICAgICAgIGlmICghbWVzc2FnZS5kYXRhKSBtZXNzYWdlLmRhdGEgPSB7fTtcblxuICAgICAgICAgIC8vIGlmIHRoZXJlJ3MgYW4gZXJyb3IgdGhlbiBhc3N1bWUgZmFpbGVkLlxuICAgICAgICAgIGlmIChtZXNzYWdlLmRhdGEuZXJyb3IpIHJldHVybiB0aGlzLm9uRmFpbHVyZUNhbGxiYWNrKG1lc3NhZ2UuZGF0YSk7XG5cbiAgICAgICAgICAvLyBpcyBpdCBmcm9tIHRoZSBzdWNjZXNzIGNoYW5uZWwuXG4gICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uc1swXSA9PT0gbWVzc2FnZS5jaGFubmVsKSByZXR1cm4gdGhpcy5vblN1Y2Nlc3NDYWxsYmFjayhtZXNzYWdlLmRhdGEpO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMub25GYWlsdXJlQ2FsbGJhY2sobWVzc2FnZS5kYXRhKTtcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5vcHRpb25zLnRpbWVvdXQgKyAxMDAwXG4gICAgICApLnRoZW4oKCkgPT4gIC8vIHN1YnNjcmliZWQgY2FsbGJhY2tcbiAgICAgICAgdGhpcy5fc2F2ZSgpXG4gICAgICApLmNhdGNoKGVycm9yID0+XG4gICAgICAgIHRoaXMub25GYWlsdXJlQ2FsbGJhY2soe1xuICAgICAgICAgIHR5cGU6ICdqb2InLFxuICAgICAgICAgIGVycm9yOiBuZXcgRXJyb3IoJ0Vycm9yIHdoaWxlIHN1YnNjcmliaW5nIHRvIGpvYiBldmVudHMsIGhvd2V2ZXIgdGhpcyBqb2Igd2lsbCBzdGlsbCBiZSBxdWV1ZWQgLSAnICtcbiAgICAgICAgICAgICd5b3UgbWF5IGJlIHVuYWJsZSB0byByZWNlaXZlIG9uU3VjY2VzcyAvIG9uRmFpbHVyZSBldmVudHMgZm9yIHRoaXMgam9iLicpLFxuICAgICAgICAgIGVycm9yX2FjdHVhbDogZXJyb3IsXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zYXZlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBudW1iZXIgb2YgdGltZXMgdGhpcyBqb2Igd2lsbCByZXRyeSBvbiBmYWlsdXJlXG4gICAqIEBwYXJhbSBuXG4gICAqIEByZXR1cm5zIHtKb2J9XG4gICAqL1xuICByZXRyaWVzKG4pIHtcbiAgICBpZiAobiA8IDApIHRocm93IEVycm9yKCdSZXRyaWVzIGNhbm5vdCBiZSBuZWdhdGl2ZScpO1xuICAgIHRoaXMub3B0aW9ucy5yZXRyaWVzID0gbiAtIDE7XG4gICAgcmV0dXJuIHRoaXMucHJveHk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBvblN1Y2Nlc3MgY2FsbGJhY2sgYW5kIG5vdGlmeSBvcHRpb25cbiAgICogQHBhcmFtIG5vdGlmeVxuICAgKiBAcmV0dXJucyB7Sm9ifVxuICAgKi9cbiAgb25TdWNjZXNzKG5vdGlmeSkge1xuICAgIHRoaXMub3B0aW9ucy5ub3RpZnlTdWNjZXNzID0gdHJ1ZTtcbiAgICB0aGlzLm9uU3VjY2Vzc0NhbGxiYWNrID0gbm90aWZ5O1xuICAgIGlmICghdGhpcy5vbkZhaWx1cmVDYWxsYmFjaykgdGhpcy5vbkZhaWx1cmVDYWxsYmFjayA9IG5vb3A7XG4gICAgcmV0dXJuIHRoaXMucHJveHk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBvbkZhaWx1cmUgY2FsbGJhY2sgYW5kIG5vdGlmeSBvcHRpb25cbiAgICogQHBhcmFtIG5vdGlmeVxuICAgKiBAcmV0dXJucyB7Sm9ifVxuICAgKi9cbiAgb25GYWlsdXJlKG5vdGlmeSkge1xuICAgIHRoaXMub3B0aW9ucy5ub3RpZnlGYWlsdXJlID0gdHJ1ZTtcbiAgICB0aGlzLm9uRmFpbHVyZUNhbGxiYWNrID0gbm90aWZ5O1xuICAgIGlmICghdGhpcy5vblN1Y2Nlc3NDYWxsYmFjaykgdGhpcy5vblN1Y2Nlc3NDYWxsYmFjayA9IG5vb3A7XG4gICAgcmV0dXJuIHRoaXMucHJveHk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGJvb2xcbiAgICogQHJldHVybnMge0pvYn1cbiAgICovXG4gIHVuaXF1ZShib29sKSB7XG4gICAgdGhpcy5vcHRpb25zLnVuaXF1ZSA9IGJvb2w7XG4gICAgcmV0dXJuIHRoaXMucHJveHk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGhvdyBsb25nIHRoaXMgam9iIGNhbiByZW1haW4gcnVubmluZyBmb3IgYmVmb3JlIGl0IHRpbWVzIG91dC5cbiAgICogQHBhcmFtIG1zXG4gICAqIEByZXR1cm5zIHtKb2J9XG4gICAqL1xuICB0aW1lb3V0KG1zKSB7XG4gICAgdGhpcy5vcHRpb25zLnRpbWVvdXQgPSBtcztcbiAgICByZXR1cm4gdGhpcy5wcm94eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBxdWV1ZSBwcmVmaXhlZCBrZXkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHN0cmluZy5cbiAgICogQHBhcmFtIHN0clxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3RvUXVldWVLZXkoc3RyKSB7XG4gICAgaWYgKHRoaXMuY29yZS5jbHVzdGVyLmlzQ2x1c3RlcigpKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jb3JlLmhvb2tzLmpvYi5vcHRpb25zLmtleVByZWZpeH06eyR7dGhpcy5xdWV1ZU5hbWV9fToke3N0cn1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGhpcy5jb3JlLmhvb2tzLmpvYi5vcHRpb25zLmtleVByZWZpeH06JHt0aGlzLnF1ZXVlTmFtZX06JHtzdHJ9YDtcbiAgfVxuXG59XG5cbmV4cG9ydCBkZWZhdWx0IEpvYjtcblxuLy8gRXhwZXJpbWVudGFsIGNvZGUgYmVsb3cgaXMgVE9ET1xuXG4vLyAvKipcbi8vICAqXG4vLyAgKiBAcmV0dXJucyB7Sm9iLmluaXRpYWxKb2J8Kn1cbi8vICAqL1xuLy8gaW5pdGlhbEpvYigpIHtcbi8vICAgcmV0dXJuIHRoaXMuX2ludGVybmFsRGF0YS5pbml0aWFsSm9iO1xuLy8gfVxuLy9cbi8vIC8qKlxuLy8gICpcbi8vICAqIEByZXR1cm5zIHtKb2IuaW5pdGlhbFF1ZXVlfCp9XG4vLyAgKi9cbi8vIGluaXRpYWxRdWV1ZSgpIHtcbi8vICAgcmV0dXJuIHRoaXMuX2ludGVybmFsRGF0YS5pbml0aWFsUXVldWU7XG4vLyB9XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBqb2JJZFxuICogQHJldHVybnMge1Byb21pc2V9XG4gKi9cbi8vIGdldEpvYihqb2JJZCkge1xuLy8gICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuLy8gICAgIGlmIChqb2JJZCBpbiB0aGlzLmpvYnMpIHtcbi8vICAgICAgIC8vIHdlIGhhdmUgdGhlIGpvYiBsb2NhbGx5XG4vLyAgICAgICByZXR1cm4gcmVzb2x2ZSh0aGlzLmpvYnNbam9iSWRdKTtcbi8vICAgICB9XG4vLyAgICAgLy8gbm90IGxvY2FsIHNvIGdhdGhlciBmcm9tIHJlZGlzXG4vLyAgICAgSm9iLmZyb21JZCh0aGlzLCBqb2JJZClcbi8vICAgICAgICAudGhlbihqb2IgPT4ge1xuLy8gICAgICAgICAgdGhpcy5qb2JzW2pvYklkXSA9IGpvYjtcbi8vICAgICAgICAgIHJldHVybiByZXNvbHZlKGpvYik7XG4vLyAgICAgICAgfSkuY2F0Y2gocmVqZWN0KTtcbi8vICAgfSk7XG4vLyB9XG4vL1xuLy8gLyoqXG4vLyAgKiBSZW1vdmUgdGhpcyBqb2IgZnJvbSBhbGwgc2V0cy5cbi8vICAqIEBwYXJhbSBjYlxuLy8gICovXG4vLyByZW1vdmUoY2IgPSBub29wKSB7XG4vLyAgIHRoaXMuY29yZS5jbGllbnQucmVtb3Zlam9iKFxuLy8gICAgIHRoaXMuX3RvUXVldWVLZXkoJ3N1Y2NlZWRlZCcpLCB0aGlzLl90b1F1ZXVlS2V5KCdmYWlsZWQnKSwgdGhpcy5fdG9RdWV1ZUtleSgnd2FpdGluZycpLFxuLy8gICAgIHRoaXMuX3RvUXVldWVLZXkoJ2FjdGl2ZScpLCB0aGlzLl90b1F1ZXVlS2V5KCdzdGFsbGluZycpLCB0aGlzLl90b1F1ZXVlS2V5KCdqb2JzJyksXG4vLyAgICAgdGhpcy5pZCwgY2IpO1xuLy8gfVxuLy9cbi8vIC8qKlxuLy8gICogUmUtc2F2ZSB0aGlzIGpvYiBmb3IgdGhlIHB1cnBvc2Ugb2YgcmV0cnlpbmcgaXQuXG4vLyAgKiBAcGFyYW0gY2Jcbi8vICAqL1xuLy8gcmV0cnkoY2IgPSBub29wKSB7XG4vLyAgIHRoaXMuY29yZS5jbGllbnQubXVsdGkoKVxuLy8gICAgICAgLnNyZW0odGhpcy5fdG9RdWV1ZUtleSgnZmFpbGVkJyksIHRoaXMuaWQpXG4vLyAgICAgICAubHB1c2godGhpcy5fdG9RdWV1ZUtleSgnd2FpdGluZycpLCB0aGlzLmlkKVxuLy8gICAgICAgLmV4ZWMoY2IpO1xuLy8gfVxuLy9cbi8vIC8qKlxuLy8gICogQ2FsbGJhY2tzIHRydWUgb2YgZmFsc2UgaWYgdGhpcyBqb2IgZXhpc3RzIGluIHRoZSBzcGVjaWZpZWQgc2V0LlxuLy8gICogQHBhcmFtIHNldFxuLy8gICogQHBhcmFtIGNiXG4vLyAgKi9cbi8vIGlzSW5TZXQoc2V0LCBjYiA9IG5vb3ApIHtcbi8vICAgdGhpcy5jb3JlLmNsaWVudC5zaXNtZW1iZXIodGhpcy5fdG9RdWV1ZUtleShzZXQpLCB0aGlzLmlkLCAoZXJyLCByZXN1bHQpID0+IHtcbi8vICAgICBpZiAoZXJyKSByZXR1cm4gY2IoZXJyKTtcbi8vICAgICByZXR1cm4gY2IobnVsbCwgcmVzdWx0ID09PSAxKTtcbi8vICAgfSk7XG4vLyB9XG4iXX0= |
{ | ||
"name": "redibox-hook-job", | ||
"description": "Advanced redibox powered jobs and queues", | ||
"version": "1.2.1", | ||
"version": "1.2.2", | ||
"main": "lib/index.js", | ||
@@ -6,0 +6,0 @@ "author": "Mike Diarmid", |
150577
2050