trex-proxy-browser-extension-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/343.bundle.js +2 -0
- package/build/343.bundle.js.map +1 -0
- package/build/ReclaimExtensionSDK-mv2.bundle.js +23 -0
- package/build/ReclaimExtensionSDK-mv2.bundle.js.map +1 -0
- package/build/ReclaimExtensionSDK.bundle.js +23 -0
- package/build/ReclaimExtensionSDK.bundle.js.map +1 -0
- package/build/background/background-mv2.bundle.js +11 -0
- package/build/background/background-mv2.bundle.js.map +1 -0
- package/build/background/background.bundle.js +11 -0
- package/build/background/background.bundle.js.map +1 -0
- package/build/content/components/reclaim-provider-verification-popup.css +676 -0
- package/build/content/components/reclaim-provider-verification-popup.html +139 -0
- package/build/content/content.bundle.js +11 -0
- package/build/content/content.bundle.js.map +1 -0
- package/build/interceptor/injection-scripts.bundle.js +2 -0
- package/build/interceptor/injection-scripts.bundle.js.map +1 -0
- package/build/interceptor/network-interceptor.bundle.js +2 -0
- package/build/interceptor/network-interceptor.bundle.js.map +1 -0
- package/build/offscreen/offscreen.bundle.js +133 -0
- package/build/offscreen/offscreen.bundle.js.map +1 -0
- package/build/offscreen/offscreen.html +15 -0
- package/build/scripts/download-circuits.js +1 -0
- package/build/scripts/install-assets.js +2 -0
- package/index.d.ts +2 -0
- package/package.json +169 -0
- package/readme.md +441 -0
- package/src/types/globals.d.ts +1 -0
- package/src/types/index.d.ts +62 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunktrex_proxy_browser_extension_sdk=self.webpackChunktrex_proxy_browser_extension_sdk||[]).push([[343],{30228:e=>{var t=Object.prototype.hasOwnProperty,n="~";function r(){}function i(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function s(e,t,r,s,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var u=new i(r,s||e,o),a=n?n+t:t;return e._events[a]?e._events[a].fn?e._events[a]=[e._events[a],u]:e._events[a].push(u):(e._events[a]=u,e._eventsCount++),e}function o(e,t){0===--e._eventsCount?e._events=new r:delete e._events[t]}function u(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),u.prototype.eventNames=function(){var e,r,i=[];if(0===this._eventsCount)return i;for(r in e=this._events)t.call(e,r)&&i.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},u.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,o=new Array(s);i<s;i++)o[i]=r[i].fn;return o},u.prototype.listenerCount=function(e){var t=n?n+e:e,r=this._events[t];return r?r.fn?1:r.length:0},u.prototype.emit=function(e,t,r,i,s,o){var u=n?n+e:e;if(!this._events[u])return!1;var a,c,h=this._events[u],l=arguments.length;if(h.fn){switch(h.once&&this.removeListener(e,h.fn,void 0,!0),l){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,t),!0;case 3:return h.fn.call(h.context,t,r),!0;case 4:return h.fn.call(h.context,t,r,i),!0;case 5:return h.fn.call(h.context,t,r,i,s),!0;case 6:return h.fn.call(h.context,t,r,i,s,o),!0}for(c=1,a=new Array(l-1);c<l;c++)a[c-1]=arguments[c];h.fn.apply(h.context,a)}else{var v,d=h.length;for(c=0;c<d;c++)switch(h[c].once&&this.removeListener(e,h[c].fn,void 0,!0),l){case 1:h[c].fn.call(h[c].context);break;case 2:h[c].fn.call(h[c].context,t);break;case 3:h[c].fn.call(h[c].context,t,r);break;case 4:h[c].fn.call(h[c].context,t,r,i);break;default:if(!a)for(v=1,a=new Array(l-1);v<l;v++)a[v-1]=arguments[v];h[c].fn.apply(h[c].context,a)}}return!0},u.prototype.on=function(e,t,n){return s(this,e,t,n,!1)},u.prototype.once=function(e,t,n){return s(this,e,t,n,!0)},u.prototype.removeListener=function(e,t,r,i){var s=n?n+e:e;if(!this._events[s])return this;if(!t)return o(this,s),this;var u=this._events[s];if(u.fn)u.fn!==t||i&&!u.once||r&&u.context!==r||o(this,s);else{for(var a=0,c=[],h=u.length;a<h;a++)(u[a].fn!==t||i&&!u[a].once||r&&u[a].context!==r)&&c.push(u[a]);c.length?this._events[s]=1===c.length?c[0]:c:o(this,s)}return this},u.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=n,u.EventEmitter=u,e.exports=u},38343:(e,t,n)=>{n.d(t,{default:()=>c});var r=n(30228);class i extends Error{constructor(e){super(e),this.name="TimeoutError"}}class s extends Error{constructor(e){super(),this.name="AbortError",this.message=e}}const o=e=>void 0===globalThis.DOMException?new s(e):new DOMException(e),u=e=>{const t=void 0===e.reason?o("This operation was aborted."):e.reason;return t instanceof Error?t:o(t)};class a{#e=[];enqueue(e,t){const n={priority:(t={priority:0,...t}).priority,id:t.id,run:e};if(0===this.size||this.#e[this.size-1].priority>=t.priority)return void this.#e.push(n);const r=function(e,t,n){let r=0,i=e.length;for(;i>0;){const s=Math.trunc(i/2);let o=r+s;n(e[o],t)<=0?(r=++o,i-=s+1):i=s}return r}(this.#e,n,(e,t)=>t.priority-e.priority);this.#e.splice(r,0,n)}setPriority(e,t){const n=this.#e.findIndex(t=>t.id===e);if(-1===n)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);const[r]=this.#e.splice(n,1);this.enqueue(r.run,{priority:t,id:e})}dequeue(){const e=this.#e.shift();return e?.run}filter(e){return this.#e.filter(t=>t.priority===e.priority).map(e=>e.run)}get size(){return this.#e.length}}class c extends r{#t;#n;#r=0;#i;#s;#o=0;#u;#a;#e;#c;#h=0;#l;#v;#d;#p=1n;timeout;constructor(e){if(super(),!("number"==typeof(e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:a,...e}).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#t=e.carryoverConcurrencyCount,this.#n=e.intervalCap===Number.POSITIVE_INFINITY||0===e.interval,this.#i=e.intervalCap,this.#s=e.interval,this.#e=new e.queueClass,this.#c=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#d=!0===e.throwOnTimeout,this.#v=!1===e.autoStart}get#f(){return this.#n||this.#r<this.#i}get#y(){return this.#h<this.#l}#m(){this.#h--,this.#I(),this.emit("next")}#w(){this.#g(),this.#C(),this.#a=void 0}get#b(){const e=Date.now();if(void 0===this.#u){const t=this.#o-e;if(!(t<0))return void 0===this.#a&&(this.#a=setTimeout(()=>{this.#w()},t)),!0;this.#r=this.#t?this.#h:0}return!1}#I(){if(0===this.#e.size)return this.#u&&clearInterval(this.#u),this.#u=void 0,this.emit("empty"),0===this.#h&&this.emit("idle"),!1;if(!this.#v){const e=!this.#b;if(this.#f&&this.#y){const t=this.#e.dequeue();return!!t&&(this.emit("active"),t(),e&&this.#C(),!0)}}return!1}#C(){this.#n||void 0!==this.#u||(this.#u=setInterval(()=>{this.#g()},this.#s),this.#o=Date.now()+this.#s)}#g(){0===this.#r&&0===this.#h&&this.#u&&(clearInterval(this.#u),this.#u=void 0),this.#r=this.#t?this.#h:0,this.#_()}#_(){for(;this.#I(););}get concurrency(){return this.#l}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#l=e,this.#_()}async#x(e){return new Promise((t,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}setPriority(e,t){this.#e.setPriority(e,t)}async add(e,t={}){return t.id??=(this.#p++).toString(),t={timeout:this.timeout,throwOnTimeout:this.#d,...t},new Promise((n,r)=>{this.#e.enqueue(async()=>{this.#h++,this.#r++;try{t.signal?.throwIfAborted();let r=e({signal:t.signal});t.timeout&&(r=function(e,t){const{milliseconds:n,fallback:r,message:s,customTimers:o={setTimeout,clearTimeout}}=t;let a,c;const h=new Promise((h,l)=>{if("number"!=typeof n||1!==Math.sign(n))throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){const{signal:e}=t;e.aborted&&l(u(e)),c=()=>{l(u(e))},e.addEventListener("abort",c,{once:!0})}if(n===Number.POSITIVE_INFINITY)return void e.then(h,l);const v=new i;a=o.setTimeout.call(void 0,()=>{if(r)try{h(r())}catch(e){l(e)}else"function"==typeof e.cancel&&e.cancel(),!1===s?h():s instanceof Error?l(s):(v.message=s??`Promise timed out after ${n} milliseconds`,l(v))},n),(async()=>{try{h(await e)}catch(e){l(e)}})()}).finally(()=>{h.clear(),c&&t.signal&&t.signal.removeEventListener("abort",c)});return h.clear=()=>{o.clearTimeout.call(void 0,a),a=void 0},h}(Promise.resolve(r),{milliseconds:t.timeout})),t.signal&&(r=Promise.race([r,this.#x(t.signal)]));const s=await r;n(s),this.emit("completed",s)}catch(e){if(e instanceof i&&!t.throwOnTimeout)return void n();r(e),this.emit("error",e)}finally{this.#m()}},t),this.emit("add"),this.#I()})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this.#v?(this.#v=!1,this.#_(),this):this}pause(){this.#v=!0}clear(){this.#e=new this.#c}async onEmpty(){0!==this.#e.size&&await this.#T("empty")}async onSizeLessThan(e){this.#e.size<e||await this.#T("next",()=>this.#e.size<e)}async onIdle(){0===this.#h&&0===this.#e.size||await this.#T("idle")}async#T(e,t){return new Promise(n=>{const r=()=>{t&&!t()||(this.off(e,r),n())};this.on(e,r)})}get size(){return this.#e.size}sizeBy(e){return this.#e.filter(e).length}get pending(){return this.#h}get isPaused(){return this.#v}}}}]);
|
|
2
|
+
//# sourceMappingURL=343.bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"343.bundle.js","mappings":"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","sources":["webpack://trex-proxy-browser-extension-sdk/./node_modules/eventemitter3/index.js","webpack://trex-proxy-browser-extension-sdk/./node_modules/p-timeout/index.js","webpack://trex-proxy-browser-extension-sdk/./node_modules/p-queue/dist/priority-queue.js","webpack://trex-proxy-browser-extension-sdk/./node_modules/p-queue/dist/lower-bound.js","webpack://trex-proxy-browser-extension-sdk/./node_modules/p-queue/dist/index.js"],"sourcesContent":["'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\tlet abortHandler;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tabortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t\tif (abortHandler && options.signal) {\n\t\t\toptions.signal.removeEventListener('abort', abortHandler);\n\t\t}\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n #queue = [];\n enqueue(run, options) {\n options = {\n priority: 0,\n ...options,\n };\n const element = {\n priority: options.priority,\n id: options.id,\n run,\n };\n if (this.size === 0 || this.#queue[this.size - 1].priority >= options.priority) {\n this.#queue.push(element);\n return;\n }\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n setPriority(id, priority) {\n const index = this.#queue.findIndex((element) => element.id === id);\n if (index === -1) {\n throw new ReferenceError(`No promise function with the id \"${id}\" exists in the queue.`);\n }\n const [item] = this.#queue.splice(index, 1);\n this.enqueue(item.run, { priority, id });\n }\n dequeue() {\n const item = this.#queue.shift();\n return item?.run;\n }\n filter(options) {\n return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this.#queue.length;\n }\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverConcurrencyCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #interval;\n #intervalEnd = 0;\n #intervalId;\n #timeoutId;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n #throwOnTimeout;\n // Use to assign a unique identifier to a promise function, if not explicitly specified\n #idAssigner = 1n;\n /**\n Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n\n Applies to each future operation.\n */\n timeout;\n // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverConcurrencyCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n this.#carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this.timeout = options.timeout;\n this.#throwOnTimeout = options.throwOnTimeout === true;\n this.#isPaused = options.autoStart === false;\n }\n get #doesIntervalAllowAnother() {\n return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n this.#timeoutId = undefined;\n }\n get #isIntervalPaused() {\n const now = Date.now();\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this.#intervalCount = (this.#carryoverConcurrencyCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n if (this.#timeoutId === undefined) {\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n }\n this.#intervalId = undefined;\n this.emit('empty');\n if (this.#pending === 0) {\n this.emit('idle');\n }\n return false;\n }\n if (!this.#isPaused) {\n const canInitializeInterval = !this.#isIntervalPaused;\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n this.#intervalCount = this.#carryoverConcurrencyCount ? this.#pending : 0;\n this.#processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n async #throwOnAbort(signal) {\n return new Promise((_resolve, reject) => {\n signal.addEventListener('abort', () => {\n reject(signal.reason);\n }, { once: true });\n });\n }\n /**\n Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.\n\n For example, this can be used to prioritize a promise function to run earlier.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 0, id: '🦀'});\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦄', {priority: 1});\n\n queue.setPriority('🦀', 2);\n ```\n\n In this case, the promise function with `id: '🦀'` runs second.\n\n You can also deprioritize a promise function to delay its execution:\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 1, id: '🦀'});\n queue.add(async () => '🦄');\n queue.add(async () => '🦄', {priority: 0});\n\n queue.setPriority('🦀', -1);\n ```\n Here, the promise function with `id: '🦀'` executes last.\n */\n setPriority(id, priority) {\n this.#queue.setPriority(id, priority);\n }\n async add(function_, options = {}) {\n // In case `id` is not defined.\n options.id ??= (this.#idAssigner++).toString();\n options = {\n timeout: this.timeout,\n throwOnTimeout: this.#throwOnTimeout,\n ...options,\n };\n return new Promise((resolve, reject) => {\n this.#queue.enqueue(async () => {\n this.#pending++;\n this.#intervalCount++;\n try {\n options.signal?.throwIfAborted();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), { milliseconds: options.timeout });\n }\n if (options.signal) {\n operation = Promise.race([operation, this.#throwOnAbort(options.signal)]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n if (error instanceof TimeoutError && !options.throwOnTimeout) {\n resolve();\n return;\n }\n reject(error);\n this.emit('error', error);\n }\n finally {\n this.#next();\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n}\n"],"names":["has","Object","prototype","hasOwnProperty","prefix","Events","EE","fn","context","once","this","addListener","emitter","event","TypeError","listener","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","call","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","length","ee","Array","listenerCount","emit","a1","a2","a3","a4","a5","args","len","arguments","removeListener","undefined","apply","j","on","removeAllListeners","off","prefixed","module","exports","TimeoutError","Error","constructor","message","super","AbortError","getDOMException","errorMessage","globalThis","DOMException","getAbortedReason","signal","reason","PriorityQueue","enqueue","run","options","element","priority","id","size","index","array","value","comparator","first","count","step","Math","trunc","it","lowerBound","a","b","splice","setPriority","findIndex","ReferenceError","item","dequeue","shift","filter","map","PQueue","timeout","carryoverConcurrencyCount","intervalCap","Number","POSITIVE_INFINITY","interval","concurrency","autoStart","queueClass","toString","isFinite","throwOnTimeout","now","Date","delay","setTimeout","clearInterval","canInitializeInterval","job","setInterval","newConcurrency","Promise","_resolve","reject","addEventListener","add","function_","resolve","async","throwIfAborted","operation","promise","milliseconds","fallback","customTimers","clearTimeout","timer","abortHandler","cancelablePromise","sign","aborted","then","timeoutError","error","cancel","finally","clear","removeEventListener","pTimeout","race","result","addAll","functions","all","start","pause","onEmpty","onSizeLessThan","limit","onIdle","sizeBy","pending","isPaused"],"sourceRoot":""}
|