{"version":3,"sources":["jsdelivr-header.js","/npm/mqemitter@7.1.0/mqemitter.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,MAAM,QAAE,SAAY,QAAQ,WACtB,OAAS,QAAQ,UACjB,aAAe,QAAQ,gBAE7B,SAAS,UAAW,GAClB,KAAM,gBAAgB,WACpB,OAAO,IAAI,UAAU,GAGvB,MAAM,EAAO,KA6Bb,SAAS,IACP,EAAK,UAEL,MAAM,EAAU,EAAK,cAAc,QAC7B,EAAW,EAAK,kBAAkB,QAEpC,EACF,EAAK,IAAI,EAAS,GAElB,EAAK,QAAS,CAElB,EAtCA,EAAO,GAAQ,CAAC,GACX,sBAA6C,IAA1B,EAAK,oBAA0C,EAAK,iBAC5E,EAAK,UAAY,EAAK,WAAa,IACnC,EAAK,YAAc,EAAK,aAAe,IACvC,EAAK,aAAe,EAAK,cAAgB,IAEzC,KAAK,cAAgB,GACrB,KAAK,kBAAoB,GACzB,KAAK,UAAY,aAAa,CAC5B,SAAS,EACT,aAGF,KAAK,YAAc,EAAK,aAAe,EAEvC,KAAK,QAAU,EACf,KAAK,QAAS,EACd,KAAK,SAAW,IAAI,QAAQ,CAC1B,mBAAoB,EAAK,iBACzB,UAAW,EAAK,UAChB,aAAc,EAAK,YACnB,cAAe,EAAK,eAGtB,KAAK,QAAS,EACd,KAAK,UAAY,CAcnB,CAqFA,SAAS,OAAU,CAnFnB,OAAO,eAAe,UAAU,UAAW,SAAU,CACnD,IAAK,WACH,OAAO,KAAK,cAAc,MAC5B,EACA,YAAY,IAGd,UAAU,UAAU,GAAK,SAAa,EAAO,EAAQ,GASnD,OARA,OAAO,GACP,OAAO,GACP,KAAK,SAAS,IAAI,EAAO,GAErB,GACF,aAAa,GAGR,IACT,EAEA,UAAU,UAAU,eAAiB,SAAyB,EAAO,EAAQ,GAC3E,OAAO,GACP,OAAO,GACP,MAAM,EAAO,KAOb,OANA,cAAa,WACX,EAAK,SAAS,OAAO,EAAO,GACxB,GACF,GAEJ,IACO,IACT,EAEA,UAAU,UAAU,mBAAqB,SAAyB,EAAO,GAQvE,OAPA,OAAO,GACP,KAAK,SAAS,OAAO,GAEjB,GACF,aAAa,GAGR,IACT,EAEA,UAAU,UAAU,KAAO,SAAe,EAAS,GAKjD,OAJA,OAAO,GAEP,EAAK,GAAM,KAEP,KAAK,OACA,EAAG,IAAI,MAAM,yBAGlB,KAAK,YAAc,GAAK,KAAK,SAAW,KAAK,aAC/C,KAAK,cAAc,KAAK,GACxB,KAAK,kBAAkB,KAAK,GACvB,KAAK,SACR,QAAQ,YAAY,0BAA2B,CAAE,OAAQ,uEACzD,KAAK,cAGP,KAAK,IAAI,EAAS,GAGb,KACT,EAEA,UAAU,UAAU,MAAQ,SAAgB,GAI1C,OAHA,KAAK,QAAS,EACd,aAAa,GAEN,IACT,EAEA,UAAU,UAAU,IAAM,SAAU,EAAS,GAC3C,KAAK,QAAS,EACd,MAAM,EAAU,KAAK,SAAS,MAAM,EAAQ,OAK5C,OAHA,KAAK,UACL,KAAK,UAAU,KAAM,EAAS,EAAS,GAEhC,IACT,EAIA,OAAO,QAAU","file":"/npm/mqemitter@7.1.0/mqemitter.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/mqemitter@7.1.0/mqemitter.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict'\n\nconst { Qlobber } = require('qlobber')\nconst assert = require('assert')\nconst fastparallel = require('fastparallel')\n\nfunction MQEmitter (opts) {\n  if (!(this instanceof MQEmitter)) {\n    return new MQEmitter(opts)\n  }\n\n  const that = this\n\n  opts = opts || {}\n  opts.matchEmptyLevels = opts.matchEmptyLevels === undefined ? true : !!opts.matchEmptyLevels\n  opts.separator = opts.separator || '/'\n  opts.wildcardOne = opts.wildcardOne || '+'\n  opts.wildcardSome = opts.wildcardSome || '#'\n\n  this._messageQueue = []\n  this._messageCallbacks = []\n  this._parallel = fastparallel({\n    results: false,\n    released\n  })\n\n  this.concurrency = opts.concurrency || 0\n\n  this.current = 0\n  this._doing = false\n  this._matcher = new Qlobber({\n    match_empty_levels: opts.matchEmptyLevels,\n    separator: opts.separator,\n    wildcard_one: opts.wildcardOne,\n    wildcard_some: opts.wildcardSome\n  })\n\n  this.closed = false\n  this._released = released\n\n  function released () {\n    that.current--\n\n    const message = that._messageQueue.shift()\n    const callback = that._messageCallbacks.shift()\n\n    if (message) {\n      that._do(message, callback)\n    } else {\n      that._doing = false\n    }\n  }\n}\n\nObject.defineProperty(MQEmitter.prototype, 'length', {\n  get: function () {\n    return this._messageQueue.length\n  },\n  enumerable: true\n})\n\nMQEmitter.prototype.on = function on (topic, notify, done) {\n  assert(topic)\n  assert(notify)\n  this._matcher.add(topic, notify)\n\n  if (done) {\n    setImmediate(done)\n  }\n\n  return this\n}\n\nMQEmitter.prototype.removeListener = function removeListener (topic, notify, done) {\n  assert(topic)\n  assert(notify)\n  const that = this\n  setImmediate(function () {\n    that._matcher.remove(topic, notify)\n    if (done) {\n      done()\n    }\n  })\n  return this\n}\n\nMQEmitter.prototype.removeAllListeners = function removeListener (topic, done) {\n  assert(topic)\n  this._matcher.remove(topic)\n\n  if (done) {\n    setImmediate(done)\n  }\n\n  return this\n}\n\nMQEmitter.prototype.emit = function emit (message, cb) {\n  assert(message)\n\n  cb = cb || noop\n\n  if (this.closed) {\n    return cb(new Error('mqemitter is closed'))\n  }\n\n  if (this.concurrency > 0 && this.current >= this.concurrency) {\n    this._messageQueue.push(message)\n    this._messageCallbacks.push(cb)\n    if (!this._doing) {\n      process.emitWarning('MqEmitter leak detected', { detail: 'For more info check: https://github.com/mcollina/mqemitter/pull/94' })\n      this._released()\n    }\n  } else {\n    this._do(message, cb)\n  }\n\n  return this\n}\n\nMQEmitter.prototype.close = function close (cb) {\n  this.closed = true\n  setImmediate(cb)\n\n  return this\n}\n\nMQEmitter.prototype._do = function (message, callback) {\n  this._doing = true\n  const matches = this._matcher.match(message.topic)\n\n  this.current++\n  this._parallel(this, matches, message, callback)\n\n  return this\n}\n\nfunction noop () { }\n\nmodule.exports = MQEmitter\n"]}