CINXE.COM
Git
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://static-production.npmjs.com/styles.3c3ef91f073352bb91e7.css" /> <title data-react-helmet="true">p-queue - npm</title> <meta data-react-helmet="true" http-equiv="cleartype" content="on"/><meta data-react-helmet="true" name="apple-mobile-web-app-capable" content="yes"/><meta data-react-helmet="true" name="mobile-web-app-capable" content="yes"/><meta data-react-helmet="true" name="viewport" content="width=device-width,minimum-scale=1.0,initial-scale=1,user-scalable=yes"/><meta data-react-helmet="true" property="og:image" content="https://static-production.npmjs.com/338e4905a2684ca96e08c7780fc68412.png"/><meta data-react-helmet="true" name="msapplication-TileColor" content="#cb3837"/><meta data-react-helmet="true" name="msapplication-TileImage" content="https://static-production.npmjs.com/7a7ffabbd910fc60161bc04f2cee4160.png"/><meta data-react-helmet="true" name="msapplication-config" content="https://static-production.npmjs.com/668aac888e52ae13cac9cfd71fabd31f.xml"/><meta data-react-helmet="true" name="theme-color" content="#cb3837"/><meta data-react-helmet="true" name="description" content="Promise queue with concurrency control. Latest version: 8.1.0, last published: a month ago. Start using p-queue in your project by running `npm i p-queue`. There are 1919 other projects in the npm registry using p-queue."/><meta data-react-helmet="true" property="og:description" content="Promise queue with concurrency control. Latest version: 8.1.0, last published: a month ago. Start using p-queue in your project by running `npm i p-queue`. There are 1919 other projects in the npm registry using p-queue."/><meta data-react-helmet="true" property="og:title" content="p-queue"/><meta data-react-helmet="true" property="og:url" content="https://www.npmjs.com/package/p-queue"/><meta data-react-helmet="true" property="og:site_name" content="npm"/><meta data-react-helmet="true" name="keywords" content="promise,queue,enqueue,limit,limited,concurrency,throttle,throat,rate,batch,ratelimit,priority,priorityqueue,fifo,job,task,async,await,promises,bluebird"/><meta data-react-helmet="true" name="twitter:card" content="summary"/><meta data-react-helmet="true" name="twitter:url" content="https://www.npmjs.com/package/p-queue"/><meta data-react-helmet="true" name="twitter:title" content="npm: p-queue"/><meta data-react-helmet="true" name="twitter:description" content="Promise queue with concurrency control. Latest version: 8.1.0, last published: a month ago. Start using p-queue in your project by running `npm i p-queue`. There are 1919 other projects in the npm registry using p-queue."/> <link data-react-helmet="true" href="https://static-production.npmjs.com/osd.xml" rel="search" title="npm package search" type="application/opensearchdescription+xml"/><link data-react-helmet="true" rel="apple-touch-icon" sizes="120x120" href="https://static-production.npmjs.com/58a19602036db1daee0d7863c94673a4.png"/><link data-react-helmet="true" rel="apple-touch-icon" sizes="144x144" href="https://static-production.npmjs.com/7a7ffabbd910fc60161bc04f2cee4160.png"/><link data-react-helmet="true" rel="apple-touch-icon" sizes="152x152" href="https://static-production.npmjs.com/34110fd7686e2c90a487ca98e7336e99.png"/><link data-react-helmet="true" rel="apple-touch-icon" sizes="180x180" href="https://static-production.npmjs.com/3dc95981de4241b35cd55fe126ab6b2c.png"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/b0f1a8318363185cc2ea6a40ac23eeb2.png" sizes="32x32"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/1996fcfdf7ca81ea795f67f093d7f449.png" sizes="230x230"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/f1786e9b7cba9753ca7b9c40e8b98f67.png" sizes="96x96"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/5f6e93af5bf0f5dcdd1eecdac99f51ee.png" sizes="192x192"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/c426a1116301d1fd178c51522484127a.png" sizes="228x228"/><link data-react-helmet="true" rel="icon" type="image/png" href="https://static-production.npmjs.com/da3ab40fb0861d15c83854c29f5f2962.png" sizes="16x16"/> </head> <body> <div id="app"><div class="_452c3ec4 d68c66a8"><div class="cf325dbd list ma0 pa0 tr z-999"><div class="c746cc21 list ma0 pa0 tr z-999"></div></div><div class="flex flex-column vh-100"><header class="_755f5b0f bg-white z-2 bb b--black-20"><div></div><div class="e7070742 pv3-ns ph1-ns bg-white"><div id="header" class="bbefbfcc">skip to:<a aria-label="skip to content" class="d6d0dbcf" href="#main">content</a><a aria-label="skip to package search" class="d6d0dbcf" href="#search">package search</a><a aria-label="skip to sign in" class="d6d0dbcf" href="#signin">sign in</a></div><div class="ef7c6e62 center mw9 border-box ph4-ns ph3 flex items-center"><span class="_0edb515f pr3 dn dib-ns link lh-title dim b--white-30">❤</span><nav class="_4a5f2a79 db w-100 w-auto-ns truncate" aria-label="Product Navigation"><ul id="main-menu" class="list pl0" role="menu" aria-label="Nav Menu"><li role="none" class="dib"><a href="/products/pro" role="menuitem" class="c6c55db4 no-underline f6-ns f7 fw5 dim pr2 pl2" id="nav-pro-link">Pro</a></li><li role="none"><a href="/products/teams" role="menuitem" class="c6c55db4 no-underline f6-ns f7 fw5 dim pr2 pl2" id="nav-teams-link">Teams</a></li><li role="none" class="dib"><a href="/products" role="menuitem" class="c6c55db4 no-underline f6-ns f7 fw5 dim pr2 pl2" id="nav-pricing-link">Pricing</a></li><li role="none" class="dib"><a href="https://docs.npmjs.com" role="menuitem" class="c6c55db4 no-underline f6-ns f7 fw5 dim pr2 pl2" id="nav-docs-link">Documentation</a></li></ul></nav></div></div><div class="_4ea0e50d bt b--black-10"><div class="c5b9953b center mw9 flex flex-wrap ph4-ns border-box"><span class="_657f443d">npm</span><div class="af43375d mt3 db mr4-ns pb3 pb0-ns flex-auto 2-ns ph3 ph0-ns"><a href="/" aria-label="Npm"><svg viewBox="0 0 780 250" aria-hidden="true"><path fill="#231F20" d="M240,250h100v-50h100V0H240V250z M340,50h50v100h-50V50z M480,0v200h100V50h50v150h50V50h50v150h50V0H480z M0,200h100V50h50v150h50V0H0V200z" stroke-width="5" stroke="#f7f7f7"></path></svg></a></div><div id="search" class="_581ebd89 relative flex-auto w-100 w-50-ns pv2-ns order-1-ns order-2"><form id="search" method="GET" action="/search" class="_13c93d41 relative flex bg-transparent ph3 ph2 pv2 ph0-ns pv0-ns bt b--black-10 bn-ns"><div class="e82b10fd relative dde91b96"><div class="_2f299eeb nowrap flex"><span class="_705cdf4f db fl pl3 pr1"><svg width="15px" height="15px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" aria-hidden="true"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g stroke="#777777" stroke-width="1.3"><g><path d="M13.4044,7.0274 C13.4044,10.5494 10.5494,13.4044 7.0274,13.4044 C3.5054,13.4044 0.6504,10.5494 0.6504,7.0274 C0.6504,3.5054 3.5054,0.6504 7.0274,0.6504 C10.5494,0.6504 13.4044,3.5054 13.4044,7.0274 Z"></path><path d="M11.4913,11.4913 L17.8683,17.8683"></path></g></g></g></svg></span><input type="search" role="combobox" name="q" hotkeys="[object Object]" placeholder="Search packages" aria-label="Search packages" aria-controls="typeahead-list-1286175" aria-expanded="false" aria-activedescendant="" inputref="[object Object]" autoComplete="off" class="_390acbc5 f5 fw3 black relative" value="" element="input"/></div><div aria-live="polite" aria-atomic="true" class="_6f20b8d1"></div></div><button type="submit" class="_0da775bb bn pv2 ph4 f6 white pointer bn pv2 ph4 f6 white pointer" aria-label="Search">Search</button><input type="hidden" name="csrftoken" value="ER3jkESpwfQAJddpXSA89NQRPMUTTeJl4Zg4znZ1-lk"/></form></div><div class="_6f31c82b ml3 mt2 mt0-ns pv2-ns flex-auto tr nowrap relative pointer fw6 order-1 order-2-ns"><div class="_1066d9e7 flex items-center self-center pl3"><a href="/signup" id="signup" class="_9752c8b3 pa2 lh-copy br2 f6 no-underline fw5 black dim ph3 mr3">Sign Up</a><a href="/login" id="signin" class="_352269a0 pa1 lh-copy br2 f6 no-underline fw5 black dim">Sign In</a></div></div></div></div></header><main id="main"> <div class="_36ae70e9 flex flex-row flex-wrap pb5 ph3-l mw-100 mt4-ns mt1 center-ns mh1" id="top"><div class="w-100 ph0-l ph3 ph4-m"><h2 class="cd6ce1fd flex flex-row justify-start items-center w-100 fw6 mt3 black dib ma0 tracked-tight no-underline hover-black f3-ns"><span class="_50685029 truncate">p-queue</span><div data-nosnippet="true"><img src="https://static-production.npmjs.com/255a118f56f5346b97e56325a1217a16.svg" height="20px" title="This package contains built-in TypeScript declarations" alt="TypeScript icon, indicating that this package has built-in type declarations" class="aa30d277 pl3" data-nosnippet="true"/></div></h2><span class="_76473bea f6 dib ph0 pv2 mb2-ns black-80 nowrap f5 fw4 lh-copy">8.1.0<!-- --> • </span><span class="_813b53b2 _76473bea f6 dib ph0 pv2 mb2-ns black-80 nowrap f5 fw4 lh-copy">Public</span><span class="_76473bea f6 dib ph0 pv2 mb2-ns black-80 nowrap f5 fw4 lh-copy"> • Published <time dateTime="2025-01-22T07:25:24.485Z" title="1/22/2025, 7:25:24 AM">a month ago</time></span></div><ul class="cfb2a888 flex flex-column flex-row-l w-100 ma0 pa0 mr2 mr0-l list" role="tablist" aria-owns="package-tab-readme package-tab-code package-tab-dependencies package-tab-dependents package-tab-versions"><li class="_8055e658 f5 fw5 tc pointer d9f99065 ac5f7ef8 f4 fw6 black-50" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=readme" aria-selected="true" role="tab" aria-controls="tabpanel-readme" id="package-tab-readme" tabindex="0"><span><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="file-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"></path></svg> Readme</span></a></li><li class="_8055e658 f5 fw5 tc pointer _7aa1ee94" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=code" aria-selected="false" role="tab" aria-controls="tabpanel-explore" id="package-tab-code" tabindex="-1"><span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="file-archive" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z"></path></svg>Code <span class="a17280e0"><span class="Label-sc-6dyj7v-0 kghsgn _22665c13">Beta</span></span></span></a></li><li class="_8055e658 f5 fw5 tc pointer c1f85151" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=dependencies" aria-selected="false" role="tab" aria-controls="tabpanel-dependencies" id="package-tab-dependencies" tabindex="-1"><span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="cube" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"></path></svg>2 Dependencies</span></a></li><li class="_8055e658 f5 fw5 tc pointer _7cec0316" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=dependents" aria-selected="false" role="tab" aria-controls="tabpanel-dependents" id="package-tab-dependents" tabindex="-1"><span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="cubes" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"></path></svg>1,919 Dependents</span></a></li><li class="_8055e658 f5 fw5 tc pointer b4fcfd19" role="presentation"><a class="_38ce9a85 link db ph4 fw6" href="?activeTab=versions" aria-selected="false" role="tab" aria-controls="tabpanel-versions" id="package-tab-versions" tabindex="-1"><span><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="tags" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"></path></svg>45 Versions</span></a></li></ul><div class="_6620a4fd mw8-l mw-100 w-100 w-two-thirds-l ph3-m pt2 pl0-ns pl2"><span><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-readme" aria-labelledby="package-tab-readme" role="tabpanel" data-attribute=""><div class=""><article><div id="readme" class="_704c034e _6d9832ac pr4-ns pl0-ns ph1-m pr3-m pr2"><div class="markdown-heading"><h1 class="heading-element">p-queue</h1><a id="user-content-p-queue" class="anchor" aria-label="Permalink: p-queue" href="#p-queue"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <blockquote> <p>Promise queue with concurrency control</p> </blockquote> <p>Useful for rate-limiting async (or sync) operations. For example, when interacting with a REST API or when doing CPU/memory intensive tasks.</p> <p>For servers, you probably want a Redis-backed <a href="https://github.com/sindresorhus/awesome-nodejs#job-queues">job queue</a> instead.</p> <p>Note that the project is feature complete. We are happy to review pull requests, but we don't plan any further development. We are also not answering email support questions.</p> <div class="markdown-heading"><h2 class="heading-element">Install</h2><a id="user-content-install" class="anchor" aria-label="Permalink: Install" href="#install"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="highlight highlight-source-shell"><pre>npm install p-queue</pre></div> <p><strong>Warning:</strong> This package is native <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules" rel="nofollow">ESM</a> and no longer provides a CommonJS export. If your project uses CommonJS, you'll have to <a href="https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c">convert to ESM</a>. Please don't open issues for questions regarding CommonJS / ESM.</p> <div class="markdown-heading"><h2 class="heading-element">Usage</h2><a id="user-content-usage" class="anchor" aria-label="Permalink: Usage" href="#usage"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Here we run only one promise at the time. For example, set <code>concurrency</code> to 4 to run four promises at the same time.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-s1">got</span> <span class="pl-k">from</span> <span class="pl-s">'got'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">concurrency</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">got</span><span class="pl-kos">(</span><span class="pl-s">'https://sindresorhus.com'</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'Done: sindresorhus.com'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">got</span><span class="pl-kos">(</span><span class="pl-s">'https://avajs.dev'</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'Done: avajs.dev'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">const</span> <span class="pl-s1">task</span> <span class="pl-c1">=</span> <span class="pl-k">await</span> <span class="pl-en">getUnicornTask</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-s1">task</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'Done: Unicorn task'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <div class="markdown-heading"><h2 class="heading-element">API</h2><a id="user-content-api" class="anchor" aria-label="Permalink: API" href="#api"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h3 class="heading-element">PQueue(options?)</h3><a id="user-content-pqueueoptions" class="anchor" aria-label="Permalink: PQueue(options?)" href="#pqueueoptions"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Returns a new <code>queue</code> instance, which is an <a href="https://github.com/primus/eventemitter3"><code>EventEmitter3</code></a> subclass.</p> <div class="markdown-heading"><h4 class="heading-element">options</h4><a id="user-content-options" class="anchor" aria-label="Permalink: options" href="#options"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>object</code></p> <div class="markdown-heading"><h5 class="heading-element">concurrency</h5><a id="user-content-concurrency" class="anchor" aria-label="Permalink: concurrency" href="#concurrency"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>number</code><br> Default: <code>Infinity</code><br> Minimum: <code>1</code></p> <p>Concurrency limit.</p> <div class="markdown-heading"><h5 class="heading-element">timeout</h5><a id="user-content-timeout" class="anchor" aria-label="Permalink: timeout" href="#timeout"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>number</code></p> <p>Per-operation timeout in milliseconds. Operations fulfill once <code>timeout</code> elapses if they haven't already.</p> <div class="markdown-heading"><h5 class="heading-element">throwOnTimeout</h5><a id="user-content-throwontimeout" class="anchor" aria-label="Permalink: throwOnTimeout" href="#throwontimeout"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>boolean</code><br> Default: <code>false</code></p> <p>Whether or not a timeout is considered an exception.</p> <div class="markdown-heading"><h5 class="heading-element">autoStart</h5><a id="user-content-autostart" class="anchor" aria-label="Permalink: autoStart" href="#autostart"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>boolean</code><br> Default: <code>true</code></p> <p>Whether queue tasks within concurrency limit, are auto-executed as soon as they're added.</p> <div class="markdown-heading"><h5 class="heading-element">queueClass</h5><a id="user-content-queueclass" class="anchor" aria-label="Permalink: queueClass" href="#queueclass"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>Function</code></p> <p>Class with a <code>enqueue</code> and <code>dequeue</code> method, and a <code>size</code> getter. See the <a href="#custom-queueclass">Custom QueueClass</a> section.</p> <div class="markdown-heading"><h5 class="heading-element">intervalCap</h5><a id="user-content-intervalcap" class="anchor" aria-label="Permalink: intervalCap" href="#intervalcap"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>number</code><br> Default: <code>Infinity</code><br> Minimum: <code>1</code></p> <p>The max number of runs in the given interval of time.</p> <div class="markdown-heading"><h5 class="heading-element">interval</h5><a id="user-content-interval" class="anchor" aria-label="Permalink: interval" href="#interval"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>number</code><br> Default: <code>0</code><br> Minimum: <code>0</code></p> <p>The length of time in milliseconds before the interval count resets. Must be finite.</p> <div class="markdown-heading"><h5 class="heading-element">carryoverConcurrencyCount</h5><a id="user-content-carryoverconcurrencycount" class="anchor" aria-label="Permalink: carryoverConcurrencyCount" href="#carryoverconcurrencycount"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>boolean</code><br> Default: <code>false</code></p> <p>If <code>true</code>, specifies that any <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise" rel="nofollow">pending</a> Promises, should be carried over into the next interval and counted against the <code>intervalCap</code>. If <code>false</code>, any of those pending Promises will not count towards the next <code>intervalCap</code>.</p> <div class="markdown-heading"><h3 class="heading-element">queue</h3><a id="user-content-queue" class="anchor" aria-label="Permalink: queue" href="#queue"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p><code>PQueue</code> instance.</p> <div class="markdown-heading"><h4 class="heading-element">.add(fn, options?)</h4><a id="user-content-addfn-options" class="anchor" aria-label="Permalink: .add(fn, options?)" href="#addfn-options"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Adds a sync or async task to the queue.</p> <p>Returns a promise with the return value of <code>fn</code>.</p> <p>Note: If your items can potentially throw an exception, you must handle those errors from the returned Promise or they may be reported as an unhandled Promise rejection and potentially cause your process to exit immediately.</p> <div class="markdown-heading"><h5 class="heading-element">fn</h5><a id="user-content-fn" class="anchor" aria-label="Permalink: fn" href="#fn"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>Function</code></p> <p>Promise-returning/async function. When executed, it will receive <code>{signal}</code> as the first argument.</p> <div class="markdown-heading"><h4 class="heading-element">options</h4><a id="user-content-options-1" class="anchor" aria-label="Permalink: options" href="#options-1"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>object</code></p> <div class="markdown-heading"><h5 class="heading-element">priority</h5><a id="user-content-priority" class="anchor" aria-label="Permalink: priority" href="#priority"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type: <code>number</code><br> Default: <code>0</code></p> <p>Priority of operation. Operations with greater priority will be scheduled first.</p> <div class="markdown-heading"><h5 class="heading-element">id</h5><a id="user-content-id" class="anchor" aria-label="Permalink: id" href="#id"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Type <code>string</code></p> <p>Unique identifier for the promise function, used to update its priority before execution. If not specified, it is auto-assigned an incrementing BigInt starting from <code>1n</code>.</p> <div class="markdown-heading"><h5 class="heading-element">signal</h5><a id="user-content-signal" class="anchor" aria-label="Permalink: signal" href="#signal"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p><a href="https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal" rel="nofollow"><code>AbortSignal</code></a> for cancellation of the operation. When aborted, it will be removed from the queue and the <code>queue.add()</code> call will reject with an <a href="https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason" rel="nofollow">error</a>. If the operation is already running, the signal will need to be handled by the operation itself.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-s1">got</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-v">CancelError</span><span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">'got'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">controller</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">AbortController</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">try</span> <span class="pl-kos">{</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">{</span>signal<span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">const</span> <span class="pl-s1">request</span> <span class="pl-c1">=</span> <span class="pl-en">got</span><span class="pl-kos">(</span><span class="pl-s">'https://sindresorhus.com'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">signal</span><span class="pl-kos">.</span><span class="pl-en">addEventListener</span><span class="pl-kos">(</span><span class="pl-s">'abort'</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-s1">request</span><span class="pl-kos">.</span><span class="pl-en">cancel</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">try</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-k">await</span> <span class="pl-s1">request</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">error</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-kos">(</span><span class="pl-s1">error</span> <span class="pl-k">instanceof</span> <span class="pl-v">CancelError</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">throw</span> <span class="pl-s1">error</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">signal</span>: <span class="pl-s1">controller</span><span class="pl-kos">.</span><span class="pl-c1">signal</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-k">catch</span> <span class="pl-kos">(</span><span class="pl-s1">error</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-kos">(</span><span class="pl-s1">error</span> <span class="pl-k">instanceof</span> <span class="pl-v">DOMException</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">throw</span> <span class="pl-s1">error</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span></pre></div> <div class="markdown-heading"><h4 class="heading-element">.addAll(fns, options?)</h4><a id="user-content-addallfns-options" class="anchor" aria-label="Permalink: .addAll(fns, options?)" href="#addallfns-options"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Same as <code>.add()</code>, but accepts an array of sync or async functions and returns a promise that resolves when all functions are resolved.</p> <div class="markdown-heading"><h4 class="heading-element">.pause()</h4><a id="user-content-pause" class="anchor" aria-label="Permalink: .pause()" href="#pause"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Put queue execution on hold.</p> <div class="markdown-heading"><h4 class="heading-element">.start()</h4><a id="user-content-start" class="anchor" aria-label="Permalink: .start()" href="#start"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via <code>options.autoStart = false</code> or by <code>.pause()</code> method.)</p> <p>Returns <code>this</code> (the instance).</p> <div class="markdown-heading"><h4 class="heading-element">.onEmpty()</h4><a id="user-content-onempty" class="anchor" aria-label="Permalink: .onEmpty()" href="#onempty"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Returns a promise that settles when the queue becomes empty.</p> <p>Can be called multiple times. Useful if you for example add additional items at a later time.</p> <div class="markdown-heading"><h4 class="heading-element">.onIdle()</h4><a id="user-content-onidle" class="anchor" aria-label="Permalink: .onIdle()" href="#onidle"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Returns a promise that settles when the queue becomes empty, and all promises have completed; <code>queue.size === 0 && queue.pending === 0</code>.</p> <p>The difference with <code>.onEmpty</code> is that <code>.onIdle</code> guarantees that all work from the queue has finished. <code>.onEmpty</code> merely signals that the queue is empty, but it could mean that some promises haven't completed yet.</p> <div class="markdown-heading"><h4 class="heading-element">.onSizeLessThan(limit)</h4><a id="user-content-onsizelessthanlimit" class="anchor" aria-label="Permalink: .onSizeLessThan(limit)" href="#onsizelessthanlimit"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Returns a promise that settles when the queue size is less than the given limit: <code>queue.size < limit</code>.</p> <p>If you want to avoid having the queue grow beyond a certain size you can <code>await queue.onSizeLessThan()</code> before adding a new item.</p> <p>Note that this only limits the number of items waiting to start. There could still be up to <code>concurrency</code> jobs already running that this call does not include in its calculation.</p> <div class="markdown-heading"><h4 class="heading-element">.clear()</h4><a id="user-content-clear" class="anchor" aria-label="Permalink: .clear()" href="#clear"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Clear the queue.</p> <div class="markdown-heading"><h4 class="heading-element">.size</h4><a id="user-content-size" class="anchor" aria-label="Permalink: .size" href="#size"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Size of the queue, the number of queued items waiting to run.</p> <div class="markdown-heading"><h4 class="heading-element">.sizeBy(options)</h4><a id="user-content-sizebyoptions" class="anchor" aria-label="Permalink: .sizeBy(options)" href="#sizebyoptions"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Size of the queue, filtered by the given options.</p> <p>For example, this can be used to find the number of items remaining in the queue with a specific priority level.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">0</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">sizeBy</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">//=> 2</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">sizeBy</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">0</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">//=> 1</span></pre></div> <div class="markdown-heading"><h4 class="heading-element">.setPriority(id, priority)</h4><a id="user-content-setpriorityid-priority" class="anchor" aria-label="Permalink: .setPriority(id, priority)" href="#setpriorityid-priority"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.</p> <p>For example, this can be used to prioritize a promise function to run earlier.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">concurrency</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦀'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">0</span><span class="pl-kos">,</span> <span class="pl-c1">id</span>: <span class="pl-s">'🦀'</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">setPriority</span><span class="pl-kos">(</span><span class="pl-s">'🦀'</span><span class="pl-kos">,</span> <span class="pl-c1">2</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <p>In this case, the promise function with <code>id: '🦀'</code> runs second.</p> <p>You can also deprioritize a promise function to delay its execution:</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">concurrency</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦀'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">1</span><span class="pl-kos">,</span> <span class="pl-c1">id</span>: <span class="pl-s">'🦀'</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span><span class="pl-c1">priority</span>: <span class="pl-c1">0</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">setPriority</span><span class="pl-kos">(</span><span class="pl-s">'🦀'</span><span class="pl-kos">,</span> <span class="pl-c1">-</span><span class="pl-c1">1</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <p>Here, the promise function with <code>id: '🦀'</code> executes last.</p> <div class="markdown-heading"><h4 class="heading-element">.pending</h4><a id="user-content-pending" class="anchor" aria-label="Permalink: .pending" href="#pending"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Number of running items (no longer in the queue).</p> <div class="markdown-heading"><h4 class="heading-element"><a href="#timeout">.timeout</a></h4><a id="user-content-timeout-1" class="anchor" aria-label="Permalink: .timeout" href="#timeout-1"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h4 class="heading-element"><a href="#concurrency">.concurrency</a></h4><a id="user-content-concurrency-1" class="anchor" aria-label="Permalink: .concurrency" href="#concurrency-1"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h4 class="heading-element">.isPaused</h4><a id="user-content-ispaused" class="anchor" aria-label="Permalink: .isPaused" href="#ispaused"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Whether the queue is currently paused.</p> <div class="markdown-heading"><h2 class="heading-element">Events</h2><a id="user-content-events" class="anchor" aria-label="Permalink: Events" href="#events"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h4 class="heading-element">active</h4><a id="user-content-active" class="anchor" aria-label="Permalink: active" href="#active"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Emitted as each item is processed in the queue for the purpose of tracking progress.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-s1">delay</span> <span class="pl-k">from</span> <span class="pl-s">'delay'</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">concurrency</span>: <span class="pl-c1">2</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">let</span> <span class="pl-s1">count</span> <span class="pl-c1">=</span> <span class="pl-c1">0</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">on</span><span class="pl-kos">(</span><span class="pl-s">'active'</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`Working on item #<span class="pl-s1"><span class="pl-kos">${</span><span class="pl-c1">++</span><span class="pl-s1">count</span><span class="pl-kos">}</span></span>. Size: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">size</span><span class="pl-kos">}</span></span> Pending: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">pending</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-v">Promise</span><span class="pl-kos">.</span><span class="pl-en">resolve</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">delay</span><span class="pl-kos">(</span><span class="pl-c1">2000</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-v">Promise</span><span class="pl-kos">.</span><span class="pl-en">resolve</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-v">Promise</span><span class="pl-kos">.</span><span class="pl-en">resolve</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">delay</span><span class="pl-kos">(</span><span class="pl-c1">500</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <div class="markdown-heading"><h4 class="heading-element">completed</h4><a id="user-content-completed" class="anchor" aria-label="Permalink: completed" href="#completed"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Emitted when an item completes without error.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-s1">delay</span> <span class="pl-k">from</span> <span class="pl-s">'delay'</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">concurrency</span>: <span class="pl-c1">2</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">on</span><span class="pl-kos">(</span><span class="pl-s">'completed'</span><span class="pl-kos">,</span> <span class="pl-s1">result</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-v">Promise</span><span class="pl-kos">.</span><span class="pl-en">resolve</span><span class="pl-kos">(</span><span class="pl-s">'hello, world!'</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <div class="markdown-heading"><h4 class="heading-element">error</h4><a id="user-content-error" class="anchor" aria-label="Permalink: error" href="#error"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Emitted if an item throws an error.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-s1">delay</span> <span class="pl-k">from</span> <span class="pl-s">'delay'</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">concurrency</span>: <span class="pl-c1">2</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">on</span><span class="pl-kos">(</span><span class="pl-s">'error'</span><span class="pl-kos">,</span> <span class="pl-s1">error</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">error</span><span class="pl-kos">(</span><span class="pl-s1">error</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-v">Promise</span><span class="pl-kos">.</span><span class="pl-en">reject</span><span class="pl-kos">(</span><span class="pl-k">new</span> <span class="pl-v">Error</span><span class="pl-kos">(</span><span class="pl-s">'error'</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <div class="markdown-heading"><h4 class="heading-element">empty</h4><a id="user-content-empty" class="anchor" aria-label="Permalink: empty" href="#empty"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Emitted every time the queue becomes empty.</p> <p>Useful if you for example add additional items at a later time.</p> <div class="markdown-heading"><h4 class="heading-element">idle</h4><a id="user-content-idle" class="anchor" aria-label="Permalink: idle" href="#idle"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Emitted every time the queue becomes empty and all promises have completed; <code>queue.size === 0 && queue.pending === 0</code>.</p> <p>The difference with <code>empty</code> is that <code>idle</code> guarantees that all work from the queue has finished. <code>empty</code> merely signals that the queue is empty, but it could mean that some promises haven't completed yet.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-s1">delay</span> <span class="pl-k">from</span> <span class="pl-s">'delay'</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">on</span><span class="pl-kos">(</span><span class="pl-s">'idle'</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`Queue is idle. Size: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">size</span><span class="pl-kos">}</span></span> Pending: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">pending</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">job1</span> <span class="pl-c1">=</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">delay</span><span class="pl-kos">(</span><span class="pl-c1">2000</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">job2</span> <span class="pl-c1">=</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">delay</span><span class="pl-kos">(</span><span class="pl-c1">500</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">await</span> <span class="pl-s1">job1</span><span class="pl-kos">;</span> <span class="pl-k">await</span> <span class="pl-s1">job2</span><span class="pl-kos">;</span> <span class="pl-c">// => 'Queue is idle. Size: 0 Pending: 0'</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">delay</span><span class="pl-kos">(</span><span class="pl-c1">600</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// => 'Queue is idle. Size: 0 Pending: 0'</span></pre></div> <p>The <code>idle</code> event is emitted every time the queue reaches an idle state. On the other hand, the promise the <code>onIdle()</code> function returns resolves once the queue becomes idle instead of every time the queue is idle.</p> <div class="markdown-heading"><h4 class="heading-element">add</h4><a id="user-content-add" class="anchor" aria-label="Permalink: add" href="#add"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Emitted every time the add method is called and the number of pending or queued tasks is increased.</p> <div class="markdown-heading"><h4 class="heading-element">next</h4><a id="user-content-next" class="anchor" aria-label="Permalink: next" href="#next"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Emitted every time a task is completed and the number of pending or queued tasks is decreased. This is emitted regardless of whether the task completed normally or with an error.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-s1">delay</span> <span class="pl-k">from</span> <span class="pl-s">'delay'</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">on</span><span class="pl-kos">(</span><span class="pl-s">'add'</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`Task is added. Size: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">size</span><span class="pl-kos">}</span></span> Pending: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">pending</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">on</span><span class="pl-kos">(</span><span class="pl-s">'next'</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`Task is completed. Size: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">size</span><span class="pl-kos">}</span></span> Pending: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">pending</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">job1</span> <span class="pl-c1">=</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">delay</span><span class="pl-kos">(</span><span class="pl-c1">2000</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">job2</span> <span class="pl-c1">=</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">delay</span><span class="pl-kos">(</span><span class="pl-c1">500</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">await</span> <span class="pl-s1">job1</span><span class="pl-kos">;</span> <span class="pl-k">await</span> <span class="pl-s1">job2</span><span class="pl-kos">;</span> <span class="pl-c">//=> 'Task is added. Size: 0 Pending: 1'</span> <span class="pl-c">//=> 'Task is added. Size: 0 Pending: 2'</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-en">delay</span><span class="pl-kos">(</span><span class="pl-c1">600</span><span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">//=> 'Task is completed. Size: 0 Pending: 1'</span> <span class="pl-c">//=> 'Task is completed. Size: 0 Pending: 0'</span></pre></div> <div class="markdown-heading"><h2 class="heading-element">Advanced example</h2><a id="user-content-advanced-example" class="anchor" aria-label="Permalink: Advanced example" href="#advanced-example"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>A more advanced example to help you understand the flow.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-s1">delay</span> <span class="pl-k">from</span> <span class="pl-s">'delay'</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">concurrency</span>: <span class="pl-c1">1</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">await</span> <span class="pl-en">delay</span><span class="pl-kos">(</span><span class="pl-c1">200</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`8. Pending promises: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">pending</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">//=> '8. Pending promises: 0'</span> <span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🐙'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'11. Resolved'</span><span class="pl-kos">)</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'9. Added 🐙'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`10. Pending promises: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">pending</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">//=> '10. Pending promises: 1'</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">onIdle</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'12. All work is done'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🦄'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'5. Resolved'</span><span class="pl-kos">)</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'1. Added 🦄'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">add</span><span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-s">'🐴'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'6. Resolved'</span><span class="pl-kos">)</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'2. Added 🐴'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">(</span><span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=></span> <span class="pl-kos">{</span> <span class="pl-k">await</span> <span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-en">onEmpty</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'7. Queue is empty'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`3. Queue size: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">size</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">//=> '3. Queue size: 1`</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">`4. Pending promises: <span class="pl-s1"><span class="pl-kos">${</span><span class="pl-s1">queue</span><span class="pl-kos">.</span><span class="pl-c1">pending</span><span class="pl-kos">}</span></span>`</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">//=> '4. Pending promises: 1'</span></pre></div> <pre><code>$ node example.js 1. Added 🦄 2. Added 🐴 3. Queue size: 1 4. Pending promises: 1 5. Resolved 🦄 6. Resolved 🐴 7. Queue is empty 8. Pending promises: 0 9. Added 🐙 10. Pending promises: 1 11. Resolved 🐙 12. All work is done </code></pre> <div class="markdown-heading"><h2 class="heading-element">Custom QueueClass</h2><a id="user-content-custom-queueclass" class="anchor" aria-label="Permalink: Custom QueueClass" href="#custom-queueclass"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>For implementing more complex scheduling policies, you can provide a QueueClass in the options:</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">import</span> <span class="pl-v">PQueue</span> <span class="pl-k">from</span> <span class="pl-s">'p-queue'</span><span class="pl-kos">;</span> <span class="pl-k">class</span> <span class="pl-v">QueueClass</span> <span class="pl-kos">{</span> <span class="pl-en">constructor</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">_queue</span> <span class="pl-c1">=</span> <span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-en">enqueue</span><span class="pl-kos">(</span><span class="pl-s1">run</span><span class="pl-kos">,</span> <span class="pl-s1">options</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">_queue</span><span class="pl-kos">.</span><span class="pl-en">push</span><span class="pl-kos">(</span><span class="pl-s1">run</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-en">dequeue</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">_queue</span><span class="pl-kos">.</span><span class="pl-en">shift</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-k">get</span> <span class="pl-en">size</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">_queue</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-s1">options</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-c1">_queue</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span> <span class="pl-k">const</span> <span class="pl-s1">queue</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">PQueue</span><span class="pl-kos">(</span><span class="pl-kos">{</span><span class="pl-c1">queueClass</span>: <span class="pl-v">QueueClass</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <p><code>p-queue</code> will call corresponding methods to put and get operations from this queue.</p> <div class="markdown-heading"><h2 class="heading-element">FAQ</h2><a id="user-content-faq" class="anchor" aria-label="Permalink: FAQ" href="#faq"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h4 class="heading-element">How do the <code>concurrency</code> and <code>intervalCap</code> options affect each other?</h4><a id="user-content-how-do-the-concurrency-and-intervalcap-options-affect-each-other" class="anchor" aria-label="Permalink: How do the concurrency and intervalCap options affect each other?" href="#how-do-the-concurrency-and-intervalcap-options-affect-each-other"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>They are just different constraints. The <code>concurrency</code> option limits how many things run at the same time. The <code>intervalCap</code> option limits how many things run in total during the interval (over time).</p> <div class="markdown-heading"><h2 class="heading-element">Maintainers</h2><a id="user-content-maintainers" class="anchor" aria-label="Permalink: Maintainers" href="#maintainers"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li><a href="https://github.com/sindresorhus">Sindre Sorhus</a></li> <li><a href="https://github.com/Richienb">Richie Bendall</a></li> </ul> <div class="markdown-heading"><h2 class="heading-element">Related</h2><a id="user-content-related" class="anchor" aria-label="Permalink: Related" href="#related"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li> <a href="https://github.com/sindresorhus/p-limit">p-limit</a> - Run multiple promise-returning & async functions with limited concurrency</li> <li> <a href="https://github.com/sindresorhus/p-throttle">p-throttle</a> - Throttle promise-returning & async functions</li> <li> <a href="https://github.com/sindresorhus/p-debounce">p-debounce</a> - Debounce promise-returning & async functions</li> <li> <a href="https://github.com/sindresorhus/p-all">p-all</a> - Run promise-returning & async functions concurrently with optional limited concurrency</li> <li><a href="https://github.com/sindresorhus/promise-fun">More…</a></li> </ul> </div></article></div><div class="pv4"><h2 class="c7520c26">Readme</h2><h3 id="user-content-keywords" class="a0dff0b1 mt2 pt2 mb3 pb3 f4 fw6 b--black-10">Keywords</h3><ul class="list pl0"><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:promise">promise</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:queue">queue</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:enqueue">enqueue</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:limit">limit</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:limited">limited</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:concurrency">concurrency</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:throttle">throttle</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:throat">throat</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:rate">rate</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:batch">batch</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:ratelimit">ratelimit</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:priority">priority</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:priorityqueue">priorityqueue</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:fifo">fifo</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:job">job</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:task">task</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:async">async</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:await">await</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:promises">promises</a></li><li class="dib mr2"><a class="_75a5f581 f4 fw6 fl db pv1 ma1 black-70 link hover-black animate" href="/search?q=keywords:bluebird">bluebird</a></li></ul></div></section><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-explore" aria-labelledby="package-tab-explore" role="tabpanel" data-attribute="hidden"></section><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-admin" aria-labelledby="package-tab-admin" role="tabpanel" data-attribute="hidden"></section><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-dependencies" aria-labelledby="package-tab-dependencies" role="tabpanel" data-attribute="hidden"></section><section class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-dependents" aria-labelledby="package-tab-dependents" role="tabpanel" data-attribute="hidden"></section><div class="e22ba268 ph2 ph0-ns ml0-ns mr3-ns black-80" id="tabpanel-versions" aria-labelledby="package-tab-versions" role="tabpanel" data-attribute="hidden"></div></span><span aria-live="polite"></span></div><div class="fdbf4038 w-third-l mt3 w-100 ph3 ph4-m pv3 pv0-l"><h2 class="c7520c26">Package Sidebar</h2><h3 class="c84e15be f5 mt2 pt2 mb0">Install</h3><div class="d767adf4 lh-copy truncate ph0 mb3 black-80 b5be2af6 f6 flex flex-row"><svg viewBox="0 0 12.32 9.33" aria-hidden="true"><g><line class="st1" x1="7.6" y1="8.9" x2="7.6" y2="6.9"></line><rect width="1.9" height="1.9"></rect><rect x="1.9" y="1.9" width="1.9" height="1.9"></rect><rect x="3.7" y="3.7" width="1.9" height="1.9"></rect><rect x="1.9" y="5.6" width="1.9" height="1.9"></rect><rect y="7.5" width="1.9" height="1.9"></rect></g></svg><p class="flex-auto truncate db ma0"><code>npm i <!-- -->p-queue</code><button class="fbd04dd1" type="button" aria-label="Copy install command line"><svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="copy" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z" fill="#808080"></path></svg></button></p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 w-100"><h3 id="repository" class="c84e15be f5 mt2 pt2 mb0">Repository</h3><p class="_40aff104 fw6 mb3 mt2 truncate black-80 f5"><a aria-labelledby="repository repository-link" class="b2812e30 f2874b88 fw6 mb3 mt2 truncate black-80 f4 no-underline pr1" href="https://github.com/sindresorhus/p-queue" target="_blank" rel="noopener noreferrer nofollow"><span class="_513426a8 dib v-mid"><svg width="16" height="16" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><title>Git</title><g fill="#0A0B09" fill-rule="nonzero"><path d="M15.6981994,7.28744895 L8.71251571,0.3018063 C8.3102891,-0.1006021 7.65784619,-0.1006021 7.25527133,0.3018063 L5.80464367,1.75263572 L7.64478689,3.59281398 C8.07243561,3.44828825 8.56276901,3.5452772 8.90352982,3.88604451 C9.24638012,4.22907547 9.34249661,4.72359725 9.19431703,5.15282127 L10.9679448,6.92630874 C11.3971607,6.77830046 11.8918472,6.8738964 12.2346975,7.21727561 C12.7135387,7.69595181 12.7135387,8.47203759 12.2346975,8.95106204 C11.755508,9.43026062 10.9796112,9.43026062 10.5002476,8.95106204 C10.140159,8.59061834 10.0510075,8.06127108 10.2336636,7.61759448 L8.57948492,5.9635584 L8.57948492,10.3160467 C8.69614805,10.3738569 8.80636859,10.4509954 8.90352982,10.5479843 C9.38237103,11.0268347 9.38237103,11.8027463 8.90352982,12.2822931 C8.42468862,12.7609693 7.64826937,12.7609693 7.16977641,12.2822931 C6.69093521,11.8027463 6.69093521,11.0268347 7.16977641,10.5479843 C7.28818078,10.4297518 7.42521643,10.3402504 7.57148065,10.2803505 L7.57148065,5.88746473 C7.42521643,5.82773904 7.28852903,5.73893407 7.16977641,5.62000506 C6.80707597,5.25747183 6.71983981,4.72499027 6.90597844,4.27957241 L5.09195384,2.465165 L0.301800552,7.25506126 C-0.100600184,7.65781791 -0.100600184,8.31027324 0.301800552,8.71268164 L7.28783254,15.6983243 C7.69005915,16.1005586 8.34232793,16.1005586 8.74507691,15.6983243 L15.6981994,8.74506934 C16.1006002,8.34266094 16.1006002,7.68968322 15.6981994,7.28744895" id="Path"></path></g></svg></span><span id="repository-link">github.com/sindresorhus/p-queue</span></a></p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 w-100"><h3 id="homePage" class="c84e15be f5 mt2 pt2 mb0">Homepage</h3><p class="_40aff104 fw6 mb3 mt2 truncate black-80 f5"><a aria-labelledby="homePage homePage-link" class="b2812e30 f2874b88 fw6 mb3 mt2 truncate black-80 f4 no-underline pr1" rel="noopener noreferrer nofollow" href="https://github.com/sindresorhus/p-queue#readme"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="link" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg><span id="homePage-link">github.com/sindresorhus/p-queue#readme</span></a></p></div><div class="_33c89934 w-100"><a class="_24a1e9c7 dab9924c br2 pv2 ph3 fw5 f5 tc button button-reset pointer ma2 truncate ml0 no-underline mt2 dib w-100" rel="noopener noreferrer nofollow" href="https://github.com/sponsors/sindresorhus"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="heart" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"></path></svg><strong>Fund</strong> this package</a></div><div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 w-100" role="button" tabindex="0" aria-label="Showing weekly downloads"><h3 class="c84e15be f5 mt2 pt2 mb0 _5cfc0900"><svg viewBox="0 0 7.22 11.76" aria-hidden="true"><title>Downloads</title><g><polygon points="4.59 4.94 4.59 0 2.62 0 2.62 4.94 0 4.94 3.28 9.53 7.22 4.94 4.59 4.94" aria-label="Downloads icon"></polygon><rect x="0.11" y="10.76" width="7" height="1"></rect></g></svg>Weekly Downloads</h3><div class="_000ae427 flex flex-row-reverse items-end"><svg class="_418c4939 flex-none" width="200" height="40" stroke-width="3" stroke="#8956FF" fill="rgba(137, 86, 255, .2)" aria-hidden="true"></svg><p class="_9ba9a726 f4 tl flex-auto fw6 black-80 ma0 pr2 pb1">7,353,566</p></div></div></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2"><h3 class="c84e15be f5 mt2 pt2 mb0">Version</h3><div class="abe380b3 flex flex-row items-center"><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4">8.1.0</p></div></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2"><h3 class="c84e15be f5 mt2 pt2 mb0">License</h3><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4">MIT</p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2"><h3 class="c84e15be f5 mt2 pt2 mb0">Unpacked Size</h3><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4">40.6 kB</p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2"><h3 class="c84e15be f5 mt2 pt2 mb0">Total Files</h3><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4">13</p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 w-100"><h3 class="c84e15be f5 mt2 pt2 mb0">Last publish</h3><p class="f2874b88 fw6 mb3 mt2 truncate black-80 f4"><time dateTime="2025-01-22T07:25:24.485Z" title="1/22/2025, 7:25:24 AM">a month ago</time></p></div><div class="_702d723c dib w-50 fl bb b--black-10 pr2 bb-0 w-100"><h3 id="collaborators" class="c84e15be f5 mt2 pt2 mb0">Collaborators</h3><ul aria-labelledby="collaborators" class="list pl0 cf"><li class="_426b8533 fl dib mr2 mb2"><div><a href="/~sindresorhus"><img src="/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZhOTIyMzdjNzVjNTMzN2MxN2I2MGQ5MDY4NmJmOT9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.dDYAebLlFqNIyhWaiaemdRfFkjWlTwsEzFKHfFrqshM" style="width:42px;height:42px;min-width:42px;border-radius:4%" alt="sindresorhus" title="sindresorhus"/></a></div></li><li class="_426b8533 fl dib mr2 mb2"><div><a href="/~richienb"><img src="/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci85NDc2YTJiZmI2MmY1NzJmYzAwMDA1NmNhMDE1MjJlMz9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.CMM-XUCE73ODllrxv6GIwmpsk8yWv4zOTy5Rm-UsoAg" style="width:42px;height:42px;min-width:42px;border-radius:4%" alt="richienb" title="richienb"/></a></div></li></ul></div><div class="w-100"><a class="c37751f6 _24a1e9c7 dab9924c br2 pv2 ph3 fw5 f5 tc button button-reset pointer ma2 truncate ml0 no-underline mt2 dib w-100" rel="noopener noreferrer nofollow" href="https://runkit.com/npm/p-queue"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="terminal" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"></path></svg><strong>Try</strong> on RunKit</a></div><div class="_33c89934 w-100"><a class="_4a3f8f21 _24a1e9c7 dab9924c br2 pv2 ph3 fw5 f5 tc button button-reset pointer ma2 truncate ml0 no-underline mt2 dib w-100" href="/support?inquire=security&security-inquire=malware&package=p-queue&version=8.1.0"><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="flag" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"></path></svg><strong>Report</strong> malware</a></div></div></div> </main><footer class="cd2827bb bt b--black-10 mt4"><h2 class="e13b5dae">Footer</h2><div id="footer" class="center mw9 pa3 flex flex-column flex-wrap-m flex-row-ns"><div class="flex-auto pa4-ns pa3 w-100 w-10-l"><div class="_802b5507 pt3"><a target="_blank" rel="noopener noreferrer nofollow" href="https://github.com/npm" aria-label="Visit npm GitHub page"><svg viewBox="0 0 27.23 27.23" aria-hidden="true"><rect fill="#333333" width="27.23" height="27.23" rx="2"></rect><polygon fill="#fff" points="5.8 21.75 13.66 21.75 13.67 9.98 17.59 9.98 17.58 21.76 21.51 21.76 21.52 6.06 5.82 6.04 5.8 21.75"></polygon></svg></a></div><div class="_802b5507 pt3"><a target="_blank" rel="noopener noreferrer nofollow" href="https://github.com" aria-label="GitHub"><svg aria-hidden="true" focusable="false" class="" viewBox="0 0 24 24" width="50" height="50" fill="black" style="display:inline-block;user-select:none;vertical-align:top;overflow:visible"><path d="M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z"></path></svg></a></div></div><div class="flex-auto pa4-ns pa3 w-30-ns w-50-m"><h3 id="support" class="_1b8c0a9f">Support</h3><ul class="list pl0" aria-labelledby="support"><li class="pv1"><a class="df995acb no-underline pr1" href="https://docs.npmjs.com">Help</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="https://github.com/advisories">Advisories</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="http://status.npmjs.org/">Status</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/support">Contact npm</a></li></ul></div><div class="flex-auto pa4-ns pa3 w-30-ns w-50-m"><h3 id="company" class="_1b8c0a9f">Company</h3><ul class="list pl0" aria-labelledby="company"><li class="pv1"><a class="df995acb no-underline pr1" href="/about">About</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="https://github.blog/tag/npm/">Blog</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/press">Press</a></li></ul></div><div class="flex-auto pa4-ns pa3 w-30-ns w-50-m"><h3 id="terms" class="_1b8c0a9f">Terms & Policies</h3><ul class="list pl0" aria-labelledby="terms"><li class="pv1"><a class="df995acb no-underline pr1" href="/policies/">Policies</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/policies/terms">Terms of Use</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/policies/conduct">Code of Conduct</a></li><li class="pv1"><a class="df995acb no-underline pr1" href="/policies/privacy">Privacy</a></li></ul></div></div></footer></div><div class="_8a62ca63 fixed top-0 left-0 z-999" style="opacity:0;transform:scaleX(1);-webkit-transform:scaleX(1);-moz-transform:scaleX(1)"></div></div></div><script integrity="sha512-mBl6+isfUHymhERoDRVXrs+8nEflCcIrPp/rXA9WrVB6/owk0duz4RY0lfQTQh+16RbuhtDW/6W2VMrR2g7avA==">window.__context__ = {"context":{"notifications":[],"csrftoken":"ER3jkESpwfQAJddpXSA89NQRPMUTTeJl4Zg4znZ1-lk","userEmailVerified":null,"auditLogEnabled":false,"user":null,"documentContext":{"readme.data":"readme"},"undefined":true,"readme":{"ref":"readme","data":null},"versionsDownloads":{"7.1.0":1251,"6.3.0":3299,"6.1.0":9390,"6.5.0":248,"8.0.1":436033,"6.1.1":585,"7.4.1":206012,"3.0.0":526,"3.1.0":28,"2.1.0":42,"2.3.0":64,"1.0.0":17,"7.3.3":45,"3.2.0":1686,"7.0.0":5,"4.0.0":133913,"6.6.1":5417,"6.6.2":5665720,"2.4.0":211,"2.4.1":3,"7.4.0":132,"6.0.2":185,"6.0.1":6,"8.1.0":385485,"6.4.0":2288,"5.0.0":28443,"8.0.0":894,"0.0.0":23,"7.3.0":7413,"2.3.1":49,"2.0.0":2,"1.1.0":7,"2.4.2":369114,"7.2.0":3827,"0.2.0":3,"0.1.0":2,"6.0.0":10,"6.2.0":372,"7.3.4":71617,"1.2.0":13386,"7.3.1":4,"6.2.1":4828,"6.6.0":979,"7.3.2":2},"starAction":"/package/p-queue/star","provenance":{"enabled":false,"feedbackUrl":" https://github.com/npm/feedback"},"isSecurityPlaceholder":false,"private":false,"devDeps":["@sindresorhus/tsconfig","@types/benchmark","@types/node","ava","benchmark","del-cli","delay","in-range","p-defer","random-int","time-span","tsd","tsx","typescript","xo"],"deps":["eventemitter3","p-timeout"],"packument":{"description":"Promise queue with concurrency control","homepage":"https://github.com/sindresorhus/p-queue#readme","repository":"https://github.com/sindresorhus/p-queue","distTags":{"latest":"8.1.0"},"keywords":["promise","queue","enqueue","limit","limited","concurrency","throttle","throat","rate","batch","ratelimit","priority","priorityqueue","fifo","job","task","async","await","promises","bluebird"],"maintainers":[{"name":"sindresorhus","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZhOTIyMzdjNzVjNTMzN2MxN2I2MGQ5MDY4NmJmOT9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.KC8XNdUppYGv8i3NR_MWueP3ituNkh_qulwMMj-O-vI","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZhOTIyMzdjNzVjNTMzN2MxN2I2MGQ5MDY4NmJmOT9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.dDYAebLlFqNIyhWaiaemdRfFkjWlTwsEzFKHfFrqshM","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZhOTIyMzdjNzVjNTMzN2MxN2I2MGQ5MDY4NmJmOT9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.L3jgp0dEuqyrNhjkCIKw9QF5olsmepG_irRSq0obdz4"}},{"name":"richienb","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci85NDc2YTJiZmI2MmY1NzJmYzAwMDA1NmNhMDE1MjJlMz9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.bPqv2aHsbZd5RxmgXHeA_qSX9kT52Nmfp8M6kBF16TY","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci85NDc2YTJiZmI2MmY1NzJmYzAwMDA1NmNhMDE1MjJlMz9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.CMM-XUCE73ODllrxv6GIwmpsk8yWv4zOTy5Rm-UsoAg","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci85NDc2YTJiZmI2MmY1NzJmYzAwMDA1NmNhMDE1MjJlMz9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.tL1sBlvoJ3BTmhW-NCZPEtv1Ca5JGInw4D3ftfMWq1k"}}],"funding":{"type":"github","url":"https://github.com/sponsors/sindresorhus"},"name":"p-queue","license":"MIT","version":"8.1.0","versions":[{"version":"8.1.0","date":{"ts":1737530724485,"rel":"a month ago"},"dist":{"integrity":"sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==","shasum":"d71929249868b10b16f885d8a82beeaf35d32279","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-8.1.0.tgz","fileCount":13,"unpackedSize":40596,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDeBZQdoXj3xtOZBT/658KdJ24AwLNFmpWFg9UqoW/7EAiEA5/XTjrz4uK/7NlWMVbr0iyTGkKqjLvIAmFJZ1zuo2qc="}]}},{"version":"8.0.1","date":{"ts":1702513578007,"rel":"a year ago"},"dist":{"shasum":"718b7f83836922ef213ddec263ff4223ce70bef8","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-8.0.1.tgz","fileCount":13,"integrity":"sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==","signatures":[{"sig":"MEQCIC6+rjtWJ84AcF8LZ/+2pV3YVeuv2SPuLQgohXIABzbkAiBvkaOfKwkjBA+9MQ+B93mMJ8dDh+Nc5DKXSnjplY2rUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35982}},{"version":"8.0.0","date":{"ts":1701962164803,"rel":"a year ago"},"dist":{"shasum":"f92b4855b81cc478765d44f2361f0e517f5e1bc7","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-8.0.0.tgz","fileCount":13,"integrity":"sha512-7LAaj8F47D5963LiTIAb/4UWR6w6SnDrDlxXg9ev/U0Lg9h35Kg8C8KiBry0c6MUofSicdLsEvS0j25gHAyCuA==","signatures":[{"sig":"MEUCIQDyrhZchnFj1PCKroN1rPoJJ6PadwLLfK0IBPm9pTHaAAIgZYvv4JcyasIiI9z11w3JcfpqBn4QuF8eit1ip5T42RM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35972}},{"version":"7.4.1","date":{"ts":1693687979065,"rel":"a year ago"},"dist":{"shasum":"7f86f853048beca8272abdbb7cec1ed2afc0f265","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz","fileCount":13,"integrity":"sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==","signatures":[{"sig":"MEYCIQDgYWtpB+2ydh+sLOxuHR5iBx3jdNmm920c9JH+C7NnKgIhAKKFtJijDE5HAp5vEBm1xfTHj/mg1JPJ47u3IzFt4MK/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44766}},{"version":"7.4.0","date":{"ts":1693414326194,"rel":"a year ago"},"dist":{"shasum":"7849ed11525daf8ff861b83ae8813b976ad490af","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.4.0.tgz","fileCount":13,"integrity":"sha512-1FYFpop2WjLUfhSpKb0pi01JL+Z+H0Z8F2XPn2g04WxGynU/X8mx8s/66fb7jZ39pS2ZliAWCX97EoTSIdMmtw==","signatures":[{"sig":"MEUCIFW8aZ54nRcKMD+mFy94vTwlZIVU30jg/BrUPnYWPnCtAiEAkbBUV8QndtNiqKxZrDd0TFCtfvuCmj4kXfifoDOsf1E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45370}},{"version":"7.3.4","date":{"ts":1675734545936,"rel":"2 years ago"},"dist":{"shasum":"7ef7d89b6c1a0563596d98adbc9dc404e9ed4a84","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.3.4.tgz","fileCount":13,"integrity":"sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg==","signatures":[{"sig":"MEYCIQDySRgm3WpUCV/v/vpjqs+fefYDLLWQ1lVq7wXWx5sc0gIhAMGLSjPN263EucL12ZFJYw5e2NaRqDH3R3jP4QmOIops","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45298,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4a4RACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJyg/9EvtaBVa4h0KmL2fdH8xd9MoBjGe3twaztFz3fC8EYDTGbdMS\r\nY8ebn4c4PskLLeWwyLN1cZrAKQz7dKcGcpf8rgrfVVaZCMTzPOy/E2zqy5d/\r\nhJQ/1Rpgnm2stI0uGkGH47moCihPJnGRNU3rmXxxtaSizVsCSl8c2ee8GCUb\r\nX/Oy68l9kRvyStZ/UyOpXPYqKOM9bbBajykACfVZNND0gPhKojGCHF7qlU6H\r\n9nFqMa4rpv1U2jjM5cpZc5EjnRytH8Tz2JmaX847dKfb8TG6M4kTOyDW57qT\r\nawCmVnKfc6hDPCCVm11BTts4vnUMbAfsIJc7ph/NA4b6wUAuRZF6bAs/GBqS\r\nnTPAqbBsBmSiCZ8ASYVbt0aco1Mi0KvWnw5vw2eexsa9idYnjivXQmcLfk+f\r\nqVwXK/avmCDcd959gcO03MKJepZmonV1/rsZAYsiNW+YHzsj8L210MlLMn9L\r\n9qMHaDFLy9JUji9oRID4AWd7vdMYBJs9FBxbj0gQOiLb35PtB3lFQxZWjVcm\r\nFGnJ1XsVZhzsNLJGpSH3dBDVsaV5cDv5KaF7lgjW5YR+niW/WOnKQSfFXHmZ\r\nlQyKZZIcHgZtfI/lDw57zEE75uf7f70PsXcz4NY+gy+Ri08aRYPu++AsPlUJ\r\nYBwz0lTK2I1DFL0TUnWIzyRqSETMZHewjlo=\r\n=mjJc\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"7.3.3","date":{"ts":1675578190250,"rel":"2 years ago"},"dist":{"shasum":"4f338fee7b0f6265034c5ec4480659eef572e728","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.3.3.tgz","fileCount":13,"integrity":"sha512-Mw83fkxHpLvc04DGfUHWP3dAtLIURFkQXPAUylm/pn/eokVVSf/kgp8ukZiwfXeO3J5uiFiPcOkSCvTiJujIBQ==","signatures":[{"sig":"MEUCIQDH2UTViROS7A007FYvqA5TVs6Q4afS6Sfg1q+J26uHkwIgcHd+4ivhtIu3xe3M77R16DxehjZEC5bo70JrAPTOYAw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj30tOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVgRAAorkD13uP5Ay7UPc5qE4Mq78ftOyjrRAMPWqmuYwJIfcmp5zt\r\nzriGlk8AMsjUCuGYyvv/2sVbfv0aG21FHHvkFOKeP+uHQrr6e+BIF/RBVDfR\r\n62Z0u25GiJxEbWNO5lwpJEbq0pyAysXp86cjkR7+dmUCZe9ARr/wiW6wmZdX\r\nsSU62oeka4Y2oOghyckyjno8ZPA8vk/NRhEtC2eQwU+jxkW/LVtqQmq7pqfv\r\nFrLdraBXgg6XjP/wQJIi6lGyWK9DRqOXAUx6ZDpzZosZ9JDIyBUcti1Hoxax\r\nAts54QnkS6f4ye8Qadc/GJ4Tb/393rYMZMGFq6bxbcf4yf2AL3KkGt65ucpW\r\ne9bOZUXE92/RczkFg63EalhK3PDy+YZ/spRO5JDfFi88uCsLDZTafW9PkMjZ\r\narSBjrfLYSkBlMuBYuOzdsNyMeFeHuCzymEPNMP+UhN1iN1/gNxAPBsvQEBF\r\nStvc7IsWpzRitYhJJG8kM0cwNfWqs5wznrfNR4mpfRVIWbLbqAEDsAk9UTvE\r\nSdswTpatP5FtdqeIMlp4YF0cyuwBPXGv5QJ6jxEnBZTjcH8rkYH1dsZ5kgDP\r\ntJkjMZ7HroixQm4IkjqWJ09xzUG1uyfD3C3VTGWZKOzgW8C99Zq46wIjvJeG\r\nRYI2IydDhQ/f8eXPvuw01ZqrOwbI3T2PF/o=\r\n=eSY9\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"7.3.2","date":{"ts":1675577348054,"rel":"2 years ago"},"deprecated":"Broken","dist":{"shasum":"278f8cb5b5bfe387329d31ca2b1a13d6b657aaaf","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.3.2.tgz","fileCount":3,"integrity":"sha512-10TWaDZFx20JW8iVfLKz2Is16WBVawR936M9Rwr5NzyfuZtSeJABFDicptR12bBU5bQtfir3bYC6TEQUEwxrDg==","signatures":[{"sig":"MEYCIQC4GRvtLe/USrpfEH3zB+ImIesDm5Vex6SwF3wxrJH08gIhAOvc8DJJPDdL6TtR5QTwbdH/NWm2Yru/o66VOfbCVreq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj30gEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEDg//S5HiAJ/qXRx7jGD54OXU5kUeUN5qIjWCtQRTrEDYR9Vn3YMj\r\nnuczCNmpc9PFDByi3OoSt/GQ/EUBDo0x2BIidwUcsPC+2g2UePdPZulzr1Wl\r\nNeBCiShIvrN9goCtFdar/IK1vcGbHa9et8GaOqn5RnukRwDQ194Yv0VY2Flm\r\naoLvenScKIQkALcvZNyIEUBmFN09/ey4BQXAJGUduQ0rNlrUMPz/kBqlVLJe\r\najsAJb7gpXXk+xp5cR9Pym2v4Dg+mNDz1Vq6XQviPbZlGQ02ldXFN7JsyJQg\r\nslFAV0ZOi4eb4+2Y5nNCAg1CvJ8UfNo3UHzF9gv/nNPTdWnH66kxtDjBr0l2\r\ng7Qgb3XYPPUEoh9GZ9iO3eNpBXj8UssY2M9KJa0en13WpPkyH50zd9YlYvBn\r\ny2nJGn5GSk6j/pzql5/bF81MCVlX1+1fQt+LW6KgxrmvPHYgNhZxHNSZr8dv\r\nVc7PGzEVfPOfENEE4hfb0b9cWScZTxi+wCR/laYEfJBsT0cw91Qy1bAfcGK7\r\n7+FmV98mgu7XzDil+xGwwBL5aNCV5NUri3Lg1LCffhcXR+ZXaW4ehO9R9ZNq\r\nLbDFAgEolnhdoxx6jqMRsjTgAlqLQa4hZJawOQfQ8offoRJQkEQneww2kqTF\r\nQKTj6NgGx+JUv9cPBeL0il4mdSXC671nOIY=\r\n=hIty\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"7.3.1","date":{"ts":1675569982803,"rel":"2 years ago"},"deprecated":"Broken","dist":{"shasum":"946e44124eda1b863fb394eb1918aaf76da29eee","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.3.1.tgz","fileCount":3,"integrity":"sha512-aCrSrsUYWf54c78gtFLmFINe57/xVbHWi3f27a/JldhH1XZcQZPA+UFk7V1Zo+LSlBQkcfJ54+CnG4lP2K87Rg==","signatures":[{"sig":"MEUCIQD157jrGuEkAL8gtZyerH2fQSyqdscGQHaz3fm65gFSzAIgKoN8gbCyLXXAfZbO8VI3DlgqtHzOX6F1Ws5HV43MU3I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3ys+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3FRAAniU5nNtMredlEj3M6aZXyReyKeSvZlzrJApwM3Zck2TJGyMT\r\njFG7mGUq0Er1JQVIFnotzTbz1HdIn2m6VBlhzHKNCP11EJUyZk4b+uVUWr27\r\n9PcJcC92/NeqlB3/nnLSaXH6sT1yHo90PJcFqn5wMBI+qEk+UUBqZ4f6AF/W\r\nhHCIiBpZ0mvX1xRST3Cxx63YWZPN21O1cNFYhyM8Cbl/o0w8B+gJ3VU624TC\r\nOlIugW/Wp7Swof7L/gQluehpUfZdDSXoJAARi85WZTpaAitLWLUKdS4Qo5Y2\r\nQgFEovpXqmIHQ4S48jPcKpujykUFFEZ5cixFiEHO2imjARNBih0kYjSbutcx\r\njIbqsSZbMkfbXB27QWznaMEvDHGtefQqj79wS86jsb8pV1/VvHe+mjn9ombA\r\nq3wP8w/grlo0+AGvaQHwfmGRRMD6JvawJRwlbX9zpbl8xq5iPhHEdKkIHZ+R\r\nEmX6m8L7CAWUc5vsh7GqEZReQtMGe/b0HCmBq8yXXud4EvlsSgSS++Rizjh2\r\nj8sZ1tEzc2q7YRfdkW7qlCe/hh43AWnA94p0VydA3sHAe0CwY6WZQYAFxsaD\r\nkAPTH+WKkJEOcei5E5f5BtIDASJ0aki118mLB+SBD5cFSF0ZM3cSWPrGOwyS\r\nz0gp0xC41Qa+Pp8Vp4K3J+o/fKgh+CILQCE=\r\n=OItW\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"7.3.0","date":{"ts":1659136212405,"rel":"3 years ago"},"dist":{"shasum":"90dfa104894b286dc2f3638961380fb6dc262e55","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.3.0.tgz","fileCount":13,"integrity":"sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==","signatures":[{"sig":"MEUCIQC2Z2LhM5X/ioB0pjh/9jZ+C6DTWWrheEusG266n0LG5gIgWs0vz1AbyRui6HwX1R3WtzPV3R0oT0F/91bwLKK9Now=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44511,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5GjUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2XA//aBepg/2R/ihV1Jv7f+7w+/BgIOqvYHEwVr2n2xdEXV+dPMaR\r\nwB+Cln3xCNLte7HtoWmVvuV+d592yyJM9QmB0VwGYnEQhZC1bCQvubjshlNl\r\n4gXmI98etOTeMmQZE7I1qFlqyAhXdv9pzczO2YE5AYrqUUt1iyuDAke2N3AW\r\nxL/iZzxk+BXQMmqTpiVXdbjgLevi8SQAGFqNt79X8+1VPd40Jtvd3pL5tdHP\r\nIL3jG8xwn06iK6vwrwvCEt01eOVZgplFxDUCnZpx5H3xX/+wm7rsXxLIGKDN\r\nUiZ4gLZXH76C46vkV0zaXObh/r+nTlC9CYf6Vg1jsEHhfZ6IVT9/uL1b2MVu\r\nJj0Ff+qnPWiupWYeSFBPsiupbT+05TWqHAtUS7Mw59+nZqn67cwqDD7DQ1Sq\r\nxWEiIj4p0f/h9cijDPZ5+BMCMa5VIqFEJz9ueGu+uklHvRPWwLoTSsiAaF+p\r\nE4czYy1+HVaO6rpgIiFJg0Bem017bQUYxkkj3GVcAgbvV0NYLWtjoBJFrjqN\r\n/kIezs/DeJ0/2HBrkKxqfcTD+nY0prtVd0YVfVZbfMN0MRow3U2XWyAeYxpc\r\nXwOgYUSjes6vl8/3hKpvVX1pELXh5KtZYZBsxY5nGTBJLyGFsKfUOZDjbaPo\r\nrv4bRn6AA3P3+qlT3w1ainUtw+2BvUVIagA=\r\n=gHFg\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"7.2.0","date":{"ts":1643693782615,"rel":"3 years ago"},"dist":{"shasum":"e1430e4432f09b43aa8b4913d4c2ff7fdd685479","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.2.0.tgz","fileCount":13,"integrity":"sha512-Kvv7p13M46lTYLQ/PsZdaj/1Vj6u/8oiIJgyQyx4oVkOfHdd7M2EZvXigDvcsSzRwanCzQirV5bJPQFoSQt5MA==","signatures":[{"sig":"MEUCIQCCJtWpxqBvxHOYT6bbEv9GP3HjUJXtY6vr/C/RL7To2QIgOUNVLfiuRPaaWkg6pcuq9etF1Rm3suhYuBWbiOivqeI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44045,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh+MbWCRA9TVsSAnZWagAAVwAP/3XcZODaXhpCLP5Puh/t\nX/KSjev7h4VTW8sDsX0MeAFQRn0Yp9Vzb1CP6nDuz9nYEM1Q9TsbOniI6kPj\nCdHP50WqJWKgm6WC58Wv78SUG++NM+U2kN2xsBLKj+5YWyfcA5SfE5Re0yHU\nR9/cH5rTykS/+7mvJHy4N7hdbP/cFpTxRmblXDvGMyEyoYXh1WTV9vV3YIZY\nytZOkTN2cdMULhjv3yMx6t4CnAEUHFNP9SBcG5qjeHUemiEGBJwnmFIdI26H\ndHwGBwoHrL9abiPWpOXU9FvnK094AEVsCkLHY6dg20qxMZpOLHL6MbKO9jfW\n6u/bwLZ1IEr3ueKE8bZUznMKcy7Ie2oVnhNmLyFfyXPLo8+/QnxTMYyKn5tG\nxwdKQUTUv8MJPut/CK/aItYTuDqMBJJ8RhtialeJ/eh4tGTPg94DpIj5B297\nAg63fHBq8Z1tjPu3q/SuQgoa8MCzZga2SuF0JQonkCSZmXJ6eXZxLNyE19xz\nBYDkIzGSRQRtxciQzKeRCKyLxLc3eNUcv+XPAnOnZe7huejU0Me8/Af+JE9d\n6tDrAAji145MGteRZSLna06pl2IF5KTjEExY/zdBoR40sIQXGlFTceEFA12L\nhhBtbQuTjVnkYrltoovZ/JbjKWDVrDTL3IF50pyooiCqQw6OV8TmwUv9f/qt\njJR+\r\n=lW66\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"7.1.0","date":{"ts":1617770981228,"rel":"4 years ago"},"dist":{"shasum":"c2bb28f8dc0ebf3fadb985b8706cf2ce5fe5f275","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.1.0.tgz","fileCount":13,"integrity":"sha512-V+0vPJbhYkBqknPp0qnaz+dWcj8cNepfXZcsVIVEHPbFQXMPwrzCNIiM4FoxGtwHXtPzVCPHDvqCr1YrOJX2Gw==","signatures":[{"sig":"MEUCIBn19aI0Sudir/oENOAU5QJWrQiabPsrVXVtQ/3Bf0TfAiEA7tkDI9zOVtc6XsZY8CqMbsHCcdqkm3fmJWUsJRqlOyY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbTnlCRA9TVsSAnZWagAA980P/1sOUltQ2xwmPY/3jHfc\nqbJUi+sjaORoVORVWcZqkxwaCUn9wFS1utCAVq6fLM9hrSSIAatLRd6p7akj\nHBSp3N8cXAFEXE9JcePETwlwbXmamJVBGLkfUWvjhGdqPDuBw28v+lgZqVDM\nXeIsnVa7r+5FM8CqzGj0+6sH/hYxiZKfTUDiZFEt2wRCuPxFG2sFbzL+xX8w\nDCc8cS+sLMOjHAwXN3zSJI1keWf+LDc909REPZSqYup2i/cpXBKkXp/W50hp\nWjLlQe5Loi0Bv2GXGjM/BMNfdPazLlEO8MlekwhPTGomOVljCZl4zycPNvhh\nbXXKy+F6cqap6thvxafdXiGmWXLDRPjzzNoxEQj+9KZE7Dd4klPBzIrPmANJ\nJsRHg3Lz8VFlQ9WWEDmhA5mjBdlNhhi1iA3dvtUs3uU+Uf4CSy4IG5JBUA11\nnFLP4oBymzTVzvgbtNYDAjU7cT0M+Qw8Wyp0rYAyDyv1a26V45kc2VbgdRHd\nPpnvATukJkvM6L+3yocsyL1U20dv2OtsLGQprkhubuLux/zTEHB4b2ZBTYMB\nJ9s/nQhkkN0U2LWy79eGMCW57njrwLVMB+pREGd8TQHF/4JId49T/SgK98aq\nt2P1ImAjDTn7hWJHKKgugpd9Cozx8Wcm/x12sWehrU7/hMVmOpjj2WOS/V+v\noN2T\r\n=zomD\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"7.0.0","date":{"ts":1617173049019,"rel":"4 years ago"},"dist":{"shasum":"8e0954a699f41b2b39b2f38a0253b67daa723612","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-7.0.0.tgz","fileCount":13,"integrity":"sha512-Nm7BFnoAFw2BA6EdIbblm/HjTyagQQqOijAaT2jnGDz/wjn2dwnOk6GEiVlQvHfCJwcXFr2evMpkghLNZsonAQ==","signatures":[{"sig":"MEUCIQDUdMO3g1dPOJa+IFzH0LRMBPkAdzOdxGbFtKBb/B6YCQIgJqf0m1CXaVenAoN1tCag4xBT904bWCoVV6GlpEX5mus=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36931,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZBo5CRA9TVsSAnZWagAALeQQAJpQLvkLTX05Gz0lmz6D\nPjg6/vxdqs9Vmr3yBvbolYZjnxQDwxqQU4mZlYKoyhN7ARdieNzaPi7Weycy\nUGeZ3G9ERnafjA+q+Uv2FKpErdg828r7uBDsUkA7bkNWBD+0xFg/HSF27nbj\nUW602Ayqa34qkmYBr96942Aif+j+dz4gVgSTIHX68mKdgorU0WySaA/hwJka\nTRro0w/e8CbYkxwd4S/O/qhs52exqkD05ef4wovyGMdzYOs+S0Gzdfa583up\nAWCgLFOpZOyYPhL1nJ6c4djdUygbCmjvPMGxMV91+5RKB5czlX2NKY5eGYT0\n16C9WKXfId3WBhACfcK5QDVHH9uYIydmBxdOE7Z9tj97unLwBSyyW4e/40fL\n6tZrkyJfj8gpu1s/5egvhwEMfupmak1Fnl+8K2HoT7cfpeXqHLiunOBzOHPp\nEYroisbgUAb0655tTtee8gQqYRTtT6a83MhOL7o/pK+eRr+OjpphrASBeBJv\n9TizxT93Ou6TKWF6FapEmTkqM52APnhjS1cfEPAkwLiPumbLaIOg6SXZlfkj\nUA5woL3ElGmZgpl1FfS7p77ekdaN76ADoWbW/2JLwmUR7WN5okD290k8u57w\n4UKuXMrXKWyJK14gLJFB6xY9L5+Z27bECD2E7tzPgK7wDX3HMZVTwDyWOjxk\nDef4\r\n=kQZo\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.6.2","date":{"ts":1602443385773,"rel":"4 years ago"},"dist":{"shasum":"2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz","fileCount":13,"integrity":"sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==","signatures":[{"sig":"MEUCIGARGKJTPJITIRT+Rhaa5GWH+nQBrUzc/+BlF3jxSqAvAiEA6r7fV2F1+fdG7CDnx6rjyFO67vSf2ggxacSLHrT2mgQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfg1h6CRA9TVsSAnZWagAAc7QQAJbKYvk22V37FPjG6asg\n2GQSO9oKCTMt9uHScI/5kKghkhkAxyFq9cbSsu+E750PTFYzaF7PrlU4AGDq\nA98roG7WqHy+IOi5n2/3zH2fAaR6fGZo2Ow10Y4+m8PIABeiOMYi3MeG67ZY\ne1ymGbusKBHzf1u8sjq5p3fHfR2BxPuL8looxgMAc2lSlTUwoFjhiBjf7UFB\noCtCPn+RgNMQD3uw34+d8MHMIICbsSnchBqGy09Ag7q1VwqmbZqAXYj6siVV\nGCPSXm7107O6/+PoJTZ0AHk0GsHO+ola0lF90SdMeiA718ZPgYP8O8PWFsyG\n++RIl+y9+I0sCZqzQD7ux59i95zlGFTKlp6Ktof1y2QNdTAaT3QzYc8SGVPb\ncIHnSxnV4EveZU8UjUhsLnYhfpK3gnjxhyu/EqKfd7gJmM6ln8Qc/7yNPoKi\nFByS4ZE0JpUokNiSGbmcyq0piNY/nENgE3Y6V4MOAW2C1RdsyEVi+NE2wiJh\n6uDm8uh3/Nv7VYQCU/09hnGG6icDZTpR960J6v9r1yr25fc28EAu8itH5H5C\noz+Xxk5pRN4msst7kw7vhbe/N0IvnQaKziulHyU4InTERTKcWbdVaeCkPK+h\nYBX+OiJvgXigcFsaW6C2dgc+a0fSTX7V/bXkpJZ2xxL1uzmQNGcb5406+aJb\nYb5R\r\n=jEHa\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.6.1","date":{"ts":1597574053352,"rel":"5 years ago"},"dist":{"shasum":"578891ada028a61371ec2692b26614d1b7d2b10a","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.6.1.tgz","fileCount":13,"integrity":"sha512-miQiSxLYPYBxGkrldecZC18OTLjdUqnlRebGzPRiVxB8mco7usCmm7hFuxiTvp93K18JnLtE4KMMycjAu/cQQg==","signatures":[{"sig":"MEUCIAYjc7R+VQh1+GS6RWz3g8NR2Dk/NjqgOpCOwE4zPIBkAiEApXDlWTJyqshXnD5GjaDSll6KWYavDZ2XSLyXSkfjops=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOQulCRA9TVsSAnZWagAAo9wP/3XcJtga5Q2/zgQt5KQQ\nzOAIdXLBb1MIdGgDjaA6SFfeMZEpfOyI3tjAWOrOO6QAj+ucNwk1xudsr94Z\nZShdORtW6YSOwCmWrOXsWOZmbdzurWC5+ArXcpEn/5tKNDu29u6uaYTgh0fT\nxH9X3jiX23wj2/hAqcg7otRwSelpbMi3K3u2ZEK+z9EBTbNWCueq7X4fICEA\nUVG6OiiR3YPIMjvO+ve3yiawWTQUxWiVqIqqQ/HqZ2AKSaF0XwfpXGiK/tS5\nz5bbmGiMHxE3/q59lI8jOTI9ze6MyCdPPG06oQUdMN5TraIYaSaZQ0LnEFAL\n6W2iaTcKrXwRQQ1Wevb6pBtA+QTUgAlpfxafqSReovg+90e87oi7hkpKxhMb\n6TnPnqnnDNxYaDelrIntZ3jVRamMoX4G56n2HOXyYuW4A7heOUdg6NzpCZjS\nnI8GJkNIe9354kw5+KIQmNBZINvb2gc5lg0gyZ/BluPnvfZiHvxTqj/4CeU5\nocplLJCg1/Sxgw8ReZtNGGXVZGLjylmQ6rcgKZTGSGdQJtTbdNW+5eD/zWPZ\nKBgTA1tT7Z6oQCoPtB4nHiLuWksClcDwVGxstGylxlS+zuy0Whe+o6uW/pho\nMTEmqRs2ifYer90u+oi91M4YxUGC7N/HQ6aa4c+HkRphDNPYEEBKHvuDsEht\nCr54\r\n=6hU3\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.6.0","date":{"ts":1595191815038,"rel":"5 years ago"},"dist":{"shasum":"263f2b73add4cefca81d8d6b2696ee74b326de2f","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.6.0.tgz","fileCount":13,"integrity":"sha512-zPHXPNy9jZsiym0PpJjvnHQysx1fSd/QdaNVwiDRLU2KFChD6h9CkCB6b8i3U8lBwJyA+mHgNZCzcy77glUssQ==","signatures":[{"sig":"MEYCIQDk4cF1GW0xv5JzTP8qLMFQCxoaEy5RbrFP1xAJvLBCQQIhAKpVhPKzxIQcbh7r36xCCWtZMvXSMQIBQ7vx3lEA1BJI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30783,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFLIHCRA9TVsSAnZWagAA0eQP/3+fWo7tMm4nRSFCe+KK\nW7+3M3GfUGMiOexJ5SIff2thyWMGMl3s2R3F2mLwlkujT6uRm3LzbGGy2lHU\n+iCe5plmMzGs1rTXZf5NZ/ahbvruJEwgwNS2g8rs/m0XelDS/TM0JxqfUTeb\nmzCREQxWK3IexzRyjsm2aHfgIwiCo5Qgu0CJ9MF+7MaQdA4Euu1tnpB04PFG\n8+naxWs/JfoUH+ew2xtqrAYKUwNk5i9uEwmNe8Jdq05PwGX2KXscJfPdR7Vw\necsrPi6VRdTY+F/hj4maBva2NhrBMSe1WfHUgzCvzOefkFIowNDoljDNQ0iB\nM6SCJPWp5LW1Nf/eH6IHi+urB50CSj41DrvzRjybSfL6RduvypkEXPzJ80Ih\nTrkTfqSMn85Rt1Vfj7tdg1WuHQOethbDZq+HVXZh6jVnSxXydOb80vGUQLMS\n9s6XcITsl2jbzLg9i99gHnLBwTqIwJSRE/cRuwQQyu5kipI9KojKtC58O5nh\nFj4O7FMF2Bss73qU604b9BEg1g+gQty6QoyVWgEARiEl/CMHzM6Pj/2mDxMg\n5EaHKdzpV78FjRom+TGqWkL8fCMK03mw0nNS05w+U7cBDtBrrLnXAakRBor8\nDhBSvcdZSjCRGN6wjOHH3RPkwWbd8YASdPHWr125Taz9oLftDS7CsgpQHi3C\nTgQF\r\n=VWPK\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.5.0","date":{"ts":1593588907314,"rel":"5 years ago"},"dist":{"shasum":"40d6bafdd3bb0c8eaa03e0649ba6fa3ce7249947","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.5.0.tgz","fileCount":13,"integrity":"sha512-FLaTTD9Am6TeDfNuN0d+INeyVJoICoBS+OVP5K1S84v4w51LN3nRkCT+WC7xLBepV2s+N4LibM7Ys7xcSc0+1A==","signatures":[{"sig":"MEUCIGdWtsAILtZlbfr6x+5NhU+5/IVr+8dNIjXZn64EiSLDAiEAwvdI2Q0YrwjsPEw9e0E5XUUOw47gCwd8RXeqZm25yzE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29664,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/DyrCRA9TVsSAnZWagAAFNoP/1MIHESNZEk7YkrQwcao\ndeS3Swz/4kJ3K3gAhifkh2M6I1rpUF9On9+N/ggfTtKLHfnm8R2ysDuWWbYE\nhYXeRSeFsfz2TC8+KmzC0RO7LMUykPPZFDcmZzYoK9QKwcHojuVXwwChJ0LJ\nhJ8TETyXKrOHcH0TWGTHcj81pP+gH+qDQN6oYFSlgcReNPdxkAUJrr1jXwd/\nvaK//04mM7jAQ2EscX/SOZFAYnSPD+irSp+DKvi4MP8qMQmZtQIXN+UPRmSE\nnKvTZQY/5sTvLd8oRfLVdr2cAlE4zZVQnDhxeMmhkbEufHLbixllrzdJ5Iow\nbAYRQKd+j+agFahOSVCUAHLlfA57PJSKjud0r/KxnFsvhsXdSCQOIu15sNLb\nWFjTH5sZrszym/BqPIZF4K4hYijnxNvJsLt48LQo/5P9u0vJn57L3AoGOGDT\n0ApNOPYMkwhoZF4CJgSBaUD1tiqSlE+ryLNaqHYUd05F1rO/7rC8boqSYU5v\nRX5pHUqQSma/WuX72PXm0LrYrMOEfwpAN22aVRvP3sXB7f4Dnce6MS/KkCcB\npB256oioTUb4F//oHV51p0Jkz4lrDQn3OKmgt/jmqgEVhQ3pkf0VdEBhaK/E\ndoJd2JSaqlqPKUKJTT8devr9p839NxdRvslAvY5e3XrGOX5ZVq1eez6bkZf7\nySwp\r\n=TdcN\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.4.0","date":{"ts":1588511166608,"rel":"5 years ago"},"dist":{"shasum":"5050b379393ea1814d6f9613a654f687d92c0466","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz","fileCount":13,"integrity":"sha512-X7ddxxiQ+bLR/CUt3/BVKrGcJDNxBr0pEEFKHHB6vTPWNUhgDv36GpIH18RmGM3YGPpBT+JWGjDDqsVGuF0ERw==","signatures":[{"sig":"MEUCIQCOIhg5g2zoBjX+Y5yMe1hJWnIbUbGxWBiYImb6xqPgzwIgZCoEipvZZEnic/sN2/S1CVLdqXu4zFINQ9oEUSkZevw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32592,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJersHBCRA9TVsSAnZWagAAdKQP/jbMQvzANSj9h4NI8cjq\n4YoSJrhVSPp2gj5bJDkMQ+M9FZ9spz4aXF85pHcPMj2fk/79X8EH/Jn9fyKW\nWQgb7Mk9CC7IbHP/beRFO4oJXjnC223feV/2p07vxlPpNu3OfunsZws2j1zn\nbKWOrfYUm9tnfJsCJXdSkCtG6TnLNwJVcMP5Ct7YliqYtfYlLrJ0QzLvknqF\nDg1p5Z4XmiRtM2Oe84L5yO7WtzZ0jT77KPryNj1U5bQDPXV4AOFiG1+EegrO\nzIhfcjfcor35uevDxnRSx2ba38zA6EfAJbhYHD9lekoM6AfgVfL08dDyrpkI\nr7ieNyznAHyB81o9prUc7+LNL+QyE8YfxPMT/IGfncnWPmJDK1+44u7AP15V\n5E/fzgznqExusZP9mxm9hKcTdOIiRMXYo12sxNObl975CqZMp2FmMGyb4UZQ\nxHTDsPUTFyU2hkPWMvhXRcRQJ69Aeba+jFhKLTSVP4PnL9GbSItoEPmhe10y\nKKEGSMzFjiO3MijHyuhv/eapxcrx83EA1fnWBPo0Yn7mZiV8/7D0NcmqCObr\n/HBes5smZPl06BUe8PwO+GvdxhWR+p1c1he7LWtic+aFoZQhkXqzIp/UK1EQ\nJ5QRI5FM8V1nUrawEWvGf8MGgtgAEf4JXsx4DqXXROsmAMagONMDEs4qeTNA\nqueE\r\n=Z3jf\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.3.0","date":{"ts":1581956175413,"rel":"5 years ago"},"dist":{"shasum":"19bfa4485db7e6a0c135049ff6716375880d9c3a","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.3.0.tgz","fileCount":13,"integrity":"sha512-fg5dJlFpd5+3CgG3/0ogpVZUeJbjiyXFg0nu53hrOYsybqSiDyxyOpad0Rm6tAiGjgztAwkyvhlYHC53OiAJOA==","signatures":[{"sig":"MEUCIQDSGMgkJT7lv41VwnEQpEUS8b+kepYPxrsYiI34RCBo1AIgJJKj3JJwGf8VF4FmoxOIEMvjs11mqINXjbGu27SHT5w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSrxPCRA9TVsSAnZWagAAsm4QAI6Dwb2uQYI26KxTwTRC\n3qdheWPSNkYIXNiZi/zymKeN6ik8nTY9KbAXXuWwCNWkOP5501i7QMTd1k4m\nbK6T0+aRSJT9QHoBoPu43HCQ05PGC6tj2Q4sXzwc5VqyKYLCZ9mIhcx8Ij4v\nLOABkQGmjQ0JP+oppuiYIwQYBG7Httb4A/RbyHWLtnRxQuXqetBWO+OuT28V\nB1/4UuWoe3QaqKQnDb75g1PR+0WlX/jJMLiM4DyslfDAo1h+1kLMgsylZOKZ\nydyG114/7A58ZOiU/4m/NzLhEcV2E+bqESYhMe2htNL4FlqGyhYN9Ho0Rv9T\nomhyRO8UNM30oR5tTtG+bDgGq1OfqdFsyNHvhKuA/Wtp9Xz/2ZYbbGDIK0KA\n6YfBmjLxsxfLdOdwi+uWLyB4KhtQ23ExmmqLvuvCBY9thZOw1TEciZSb89FZ\nNfdaGiIiz42lmSCCFZOQb58n6EUdjt9pf7hoGiQHqE21jQDonKo2eG18oCOm\nC8OiK8HON3DiEe6IlfGrNoA754Thkb/mRF9SIJC4PlAK00B4rt4e/N8zFxp9\nwN6Nr9iJOhyqJx5ags4kHROLQxW+bVsgTt/EgMu9Pr05QCXZU9kaj0N8F5Z5\nY43dn2Qr02h973Ucm78XbfCI2duHgfYWXEWVwHhi/vIzlMscD08FwsITZ6zS\nI3S5\r\n=cAT2\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.2.1","date":{"ts":1573362759657,"rel":"5 years ago"},"dist":{"shasum":"809a832046451b2240a0a8e48b4fa18192b22b64","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.2.1.tgz","fileCount":13,"integrity":"sha512-wV8yC/rkuWpgu9LGKJIb48OynYSrE6lVl2Bx6r8WjbyVKrFAzzQ/QevAvwnDjlD+mLt8xy0LTDOU1freOvMTCg==","signatures":[{"sig":"MEQCIHCYIDA3z8WGJxwDbuw+awAqa2VRAkZYiU5smPUEk2KWAiAJGmICdjDWdQUj3rAz5+wMGDyosOKO14AVQ0MrLetVlA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdx5xICRA9TVsSAnZWagAAP0cP/1BljyEmihK3e/Ln7vkY\nNAvXkBjV5so9+y9nAfDf9aUk0V1Po1R2/uO0xTK0lM913tKplD7vqgtAPYYc\n4aKSwwvAochB3SpfpR986coNy3avN9jKj872FQXTLj3DsAeLuusLHII06tod\nU7y38znoPlS3h+mW2Mq6dUtvhVPWKThKUvGRpny2KJEz07ifX3hkVthHpcQ9\ntF71T+d2duB9lpWec98qQsgt+owOWD56pU5mOISll+8MgJvk7ExZRJoSHaRQ\nva2Ihy3MV2dBmt+1QG4g4G3bG/eHqlooFiHX3xqK6A8D6eFAZb9qrV6GBJrf\nfyKpv3OCWCR8WqHBQTJMXR/mADT0Wtnw/fNxOZWbYY6QRXxu89uLqGNIdiKy\nEYSP9lznmHqTy+rIwFgCavyNGRlmxL/LxfCNLj/h7LDcTU3uVkosLH2nh/Qf\nABqZFWL12V5pXmBGI0jozkGteO/AYLLbDttqA8wJ2IM3wIQ+YULlZBzvaJ1H\nh3gQ01O11AzlXTBMg0OgCOASlhznh7t2mMa5P8Ep7sTBtbVVMfayarcQ+uMP\nIiUvBVu8uAWYaSZHYtbpoLLrUpErHa7ET0M0290HxxRLr1jbbzkFi/DQcGon\nIHuTfXvWiDD6gBn2jFXberFRUBAOz71h19CvlxAU/CxKfO9epnwkaO3iOXrB\ndum7\r\n=qcJw\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.2.0","date":{"ts":1570882311635,"rel":"5 years ago"},"dist":{"shasum":"c8122b9514d2bbe5f16d8a47f17dc2f9a8ac7235","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.2.0.tgz","fileCount":13,"integrity":"sha512-B2LXNONcyn/G6uz2UBFsGjmSa0e/br3jznlzhEyCXg56c7VhEpiT2pZxGOfv32Q3FSyugAdys9KGpsv3kV+Sbg==","signatures":[{"sig":"MEUCIBXvN79VWaeoQjAcJue6NLivca0RbirJ+0z1t8t32m++AiEApIirwQN7qwDaaa6dOwwdYBwckiDeCgvDYBAbuiH8BrA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27021,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdocMICRA9TVsSAnZWagAAT5kQAJrBTCH5fPmLLOQ4KpIs\nFyCOwnsEZDZ/8NVsDTUE25oU7OtmMZnVRI5rKdmz+mnaQw426q2jEObcZ2Pe\nKaYu0uR3fRMfRy9hDvEYowb4CVYf+EVdXyxcYIrpkYKDhc6euplYaa+osQMn\ng3CliJI5Zx0Za2uUbg+vVHnZofJvvCheQyPSve0aS5WN71YVU+G+sgpdT33V\ncU/mgVJIDfGWELPaMV2MK+AXhiuWBqqt/FpJ9cRcY329G2UENhlQP12KdI+P\nwiCMmq1K5Ra04fYGaum76VWkeR0upKmiwYzhOf78LPT/0ffkudc3mxjqz2ID\ncq5V7M7mTKehCt2SjFbv6fQOB6nE+UrVuBWlOvZpRSzwL0a6g36gQ9GfEyH5\nsVwkpTM02jVjcgJY4Twj63s/d4tIlpfJb++uY8IyBLEVjsFEUd9lw/AtSXjq\nWmlB+ofxLks54JNeR1ASy0GeXa2hhQaIH0/HbfOhhrS0PoQpmT0hJCwRM7/m\nF3aTIStGR75Y09zEoywgiYPEOaNjsfW02E6OPw74dPeOgC2QRA2IFbi2mAxt\nVzi6mzUVrns8tvR+QJkpw4a/m/Kqdi4fiFaJeGjqiuwVb9A18dLBe7c5haM/\nk9bC2qdGliEYFW+nO+FXkEhhnmUU0BjNtQ9QkVE0umLl4X/sgwqJUCzF9x5i\nc3VC\r\n=Y8+9\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.1.1","date":{"ts":1565630820720,"rel":"6 years ago"},"dist":{"shasum":"eedbaf7335b4931ef857e2e58063fed461b97e80","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.1.1.tgz","fileCount":18,"integrity":"sha512-R9gq36Th88xZ+rWAptN5IXLwqkwA1gagCQhT6ZXQ6RxEfmjb9ZW+UBzRVqv9sm5TQmbbI/TsKgGLbOaA61xR5w==","signatures":[{"sig":"MEUCIQDonT8A+5vxmSqbEHU11EKVHJ7FyodaLktUZ2CVJlMLrwIgCuBobANCkxocZX99ol/lwisflM0HXW3+I9PT8KzWRWk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUaFlCRA9TVsSAnZWagAANnwQAKFjVmhH4iQnng6/BdEM\n6OQylMGEkCoyMPu/B/pUz57dg0t39RgjnMN+N68Yfpg3UARHxvdEaOlpigiU\n3cWzxrQ4RnM4sIIsqkWFHrLZ6ff3EHA6Ip4dnJV4lQokPEqeF+ua80HlK8do\nqXIZ2WGL8RIbm2ze8dKoiynDpU/rZTpqJx8XhyLTC+0BqrJ7MhO/Znph4kuO\npCXYJp335FMypd6uBbHUt55PeZU4rEAVob7gBI9Gne55jij82P78arN39x+b\nMwgL6D8GwtbHys7XPajgiXupQkgJrzDtxA1bEYuVfCJgZiYZOnBc1r6cz8hx\nvAFGgqmxO87wSnWx0n9I7iuvhEKOhTgjG4WsK2fELjb3StW7rGGZxu4MCrpA\n26K2kTr5CpSr+A8FZR9CXZ9kjceEgwC0BJ17+0j/H03Nl+ZD3t3x39HEiPDo\nSeOiJfkl4vFdqvcSMMCXE79JfLEG25HKM0agvvzMMkp0tw0kEKiaLrO9N9bp\nfjh+yc9YC23rknU3UjfZ35GctSX1dXR2EmphYB+22kQN95lQtsPXG9zltRwv\nAAukR8r5DB1LYY5G24umpLeGgfIPsAY0sr4jP+ujxduw5pygOVwsLO1Vu92M\nR7LSt3OQ9R1rRR7wrUDUxts1N3REqlpr7zThnr7S59RTOu7cAJaUYqhxx9Er\nRa1s\r\n=k0Fy\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.1.0","date":{"ts":1562858601440,"rel":"6 years ago"},"dist":{"shasum":"3f546275073b41e4af460e41459524b15c2753f3","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.1.0.tgz","fileCount":18,"integrity":"sha512-907vNz/cY+JEsqGglo7o/Ia9E/wisahJGOp9HPfbAyCVGERQVmFGA4IyknxY1v+QRBiMKedL3ToOBXNEy9MKQA==","signatures":[{"sig":"MEQCIHsnc5A4ZVIC5QrooT7Uaq3XWRPkGz+SfONIU5dIt1cqAiAz0d7nuvYlmGLiclseq7SsjuomDAeu4ll8ratmkNYCvg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJ1RqCRA9TVsSAnZWagAA9bMP/0bMMdsFLomcQiAjzj9W\n+tdQDnTrr1pR8wdqDOuxD507BWZUD5T/nQH/ybkmIJtdL+bsMDn+D3bh5/tH\neRbBB9T3P9O32rcBJHjxZysk5CJhJzWFwZr1+4dAYDHB3g+kygNylWDs1pGA\nXstqq3gud1AhDr32WP0ms/xhkzDownqPZj/jHaXCSJDIsYhhjODXnchhLXWz\nWu+VHrYSHhjaqSxJHhvysMNi7p7xfbSLZIe0YOI5q5o5R1TzOVaD1ly4MUFc\n1VJ79fqNavhrZ7ayvW4DfjrWF0Tz/VlkNoX6uWFJA6es5fdWhUODSFQh5opO\n0PntfnU71hNgmOo1XhomG68uGrqdvWARt9RBHNOFePQtcZd6Rligpog1PfkT\nSj1XnQ0nhBnFR2KPfGF6gd7lzjOwBKtXOKHLSp64aTnH58n1LsmTjSd+wFm1\nz4vT9awGM6K8WkDhOPQBwMs/RFcMwDQiWJsTzId2PyLfADF4FH3s9GFMwVy+\nGvK7ub6arCbFIKvAtuG30iJuyPxiYGwm9n0MmU/bCzF50B3r5ujm3ona0R1D\nfzemTr5EzxoCt9t8qOuLqoX0OqiR5H5K43Qv7VAB9Wc6ZHq9wszoF2brG7Ip\nwMsbCa1ybAbqztG8wxPsYF4mrG+3kaU+yka5HpYaE8HANHCEFZ8dmBZLKwjx\nhwmj\r\n=0O6s\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.0.2","date":{"ts":1559895770368,"rel":"6 years ago"},"dist":{"shasum":"34ab9f1fe43b26ec6da2a94cae6b3c3cdcaecfde","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.0.2.tgz","fileCount":18,"integrity":"sha512-KDmybfRp7PQXk6mRDCtbFWc1E6qUyIXLdmiCQbnKY8+DM0+PodWYLT4dPT/T4x4G+w4PHZXvMB3dZfLEI2vaFA==","signatures":[{"sig":"MEQCIEG9TseLVen9Cp9ZiF98B59E1gQciUeYweZ3p6rV9vNiAiAtnY+nowK7xT4uGzhDh40zn2hUr2JTiLkjrUuV/AiaPg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc+h7aCRA9TVsSAnZWagAAFYoQAKORQ4bmes9gqGBdTenV\nPlnYZdHzE2u/0sxBQ08kWbak3Y9t+4TqwiioVBqb3p8ExXvFhj9MehpbuUeE\nxjnphypI0lYjcSrBTul+3Bp6rCWY/lXeCAofRR0KTNTKZVp2KcZ2Zt1tqmAm\ny7leGaCkUT5B/a3+LVRp1+IkP4dtcp5zl6swgYr7jeSUKUKsDatmuxFfIDhX\nDV6er21qTDvNOj+nqoCXajZULJR/rL22yez4UloG70yp70Ghzj1iS7TUSf4E\nvGFgqYnKWXvkHF94AQ/wqRy/fKqCj0mpOkGeGySK7fx0LTcRM7+EnvLyRyVP\nOzQI9M1m2WsKhCFW+3cULZ70HjuKgAb9ZTBmOZ727dObR/9kZaSH69i5FRKL\nDEYKuE0zutJB3Nl8Veqe3GGUq5zaokOC6MmUx+tU0uslKOkea3FVur3O2ulT\noeeBXXKLw5BG0IKMwBA83VfqqGM1gcx6LZybVSAqT7RGOBLQqGl9jMejCxVN\nnGp5T+2+FN0RWBtf07yn5EpYtJ/HUM648OI/pOUfuAdJP1yTYurwqD1RNX1l\nUfKpNbUzGREtn5KxRiKWC2u/Cndbv9ihS+KIfjHWPYNQz3dKlGCbRwEgkbYu\n+++GnE6k3ilXc7tR5+IvjzITGlfbIOKI95e+HH/G411aRf8yZfu8BpS7HnoN\nrSpa\r\n=1Fp1\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.0.1","date":{"ts":1559714182246,"rel":"6 years ago"},"dist":{"shasum":"de0e833a57a8a77e89d8d6cd91a5a8c3993b54be","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.0.1.tgz","fileCount":18,"integrity":"sha512-9Y06Mp2GkJsuH7SApSXK7CDf34ZSu09tPDI3bM4z+EiX6X4lYzZBNS7zlh6Pe550Ya906JQo834iVjKcDOsqqA==","signatures":[{"sig":"MEQCIAI4/TvZvOid9Gi9SyTFjp7lH/BwWkpji8quSiWFaf5GAiBa+vxx/hg0QdH+OZ6FRIVadQRfmXkAYMfJSvoqdsUynA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc91mGCRA9TVsSAnZWagAAH1QP/0vvcUUm3Q7/2ttLLCo+\nML6MzKO4mT3RCyViENmpmDg7m5rMVYCcZew6H40tIdxI5hwIUqZY3xfxCR77\nIN2HXBWNaqOOdTQ4ceB2gtMUkFCvZs41pL+PEX2aXjVQ+VDOhej4qdp40sFC\n4DTBq1I/NdmbIAwprUA0+s+lnt4a8eNpKt0QmUwlbGGco4/V0wMe1+6tF8sn\nlRO85CvoHyJy98gasGuEGKWNaWtuZ3ExZeSD7Nu2WeBf2b8cWlwCgjLkTC9l\nYTB1JEVrmahwxKWgNzYUpm4bPnPEhZc5bC1b1MuJ8oQ9WoNNhyzjhBEJ8oaC\nsOfU/18hvnKF56AgnlrDbH9+W6mnoxHNLcXVqwBlmLAdq9egoGivXJ+zSymE\ndhl33pfGiXLsFSjWhWkjNP3Uv5GJvTgsjRQ+VwsbGft/RkDzOqaa3Qt0smJI\nxBCvyKggrBZodZmfyyJKaECJcSlChgYsXTVPulPwr/kdHQsr93mkpMHGhAoS\n+ZvZMj9KcaoetuSFYoKVzLwMV77Mdqc3wDg1NPJkpAS/8IdmTNGJuHDsixuD\nz4OggzY+pn5Y/FwZnRm28J3U+FMDcIXFSB9wE1vIWnFC7XaFArF+AzJ8whTy\nwkvpR8AmclRGvlJhZ0d2NHjQyU6xZJJah/X1UGRwlv6gXN64LNSSzOrwvm4e\nZbjN\r\n=9tr1\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"6.0.0","date":{"ts":1559709982053,"rel":"6 years ago"},"dist":{"shasum":"00308b2e1a566130b835a2cce84ce8cfd76df08d","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-6.0.0.tgz","fileCount":18,"integrity":"sha512-Ql8yUy0yg2iyTZ8lt/3OILuVJAwl9JipQlSSbnIiReJ+UiVIkrDGcAc9UBEMwxBF/BLpmYkmZBqJBZk4F6kjRQ==","signatures":[{"sig":"MEUCIDcf0I+cLumdvLnK0My2aanh+D1Y4G1+ECFt48qGxgIoAiEAzsqc2WZ/OvCo/whdAkJNQvQBiPx6LYsLGlCXVyo5Xo0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc90keCRA9TVsSAnZWagAAdrYP/0Bk53aeiqfkcveMEnYR\nIC9ZuvmSnLELF8tnT0J+UiiQ9YC8vvtljSqd5BQajIpSD9A/ZPE5IGPfY4U7\na2TH5aZziCI1Xcko24tKR9pHCKqMWDacqAHAazCoSTMsI1TogzxFb9wzQJcP\nMiBZDkdr+metrYFT+lsl3+bt0q2397KFPPN9GZQyIVesNmgN6KpbdjsPk4nQ\nrYpLALkkqmh3jYgGM8JrOlTDNDI9qfA/fnwF1t3cw4m58F0pY+tgQxXzemu/\nLmw4TLUpNL9txLcxjC8PqunAt1Zt38h9Nx+vO6zyiuSU7QTQ8J/wWwzjcArZ\nrO8fFqNT2Snzd0Te5XgeOza78tbOGvmhKyuaqT/ZBzAEaGz5/gu5IlcSwE9A\nYZHIzgxnKYzH8Nut94C0G891Sjey+SoF2PbidlLghYJfKBmXeiJGVpekrmsY\nz1bP79qB+WGnudvdqSbeMX0ikIzLfQxUyzAnwooxk1DhSWjpDuASY9Xiio2p\ndRFudFfp2XDWv6MTWqwdH6HbClaE0qWCaWGAEvOu5X07haWnCqPf8QYx0AIM\nMkHu+ete/xK6sTvU9fHSviMt/vipQC/FYX+EdGHDKKuAPKXedYRWMZIdwp5Y\nbPGNm+2A8c+sQiB8NqQr00hf9VX8smDXqn9MtzSfHfHmTT9KRIoBgzcxV8hB\nXq6g\r\n=6l7k\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"5.0.0","date":{"ts":1554549304559,"rel":"6 years ago"},"dist":{"shasum":"80f1741d5e78a6fa72fce889406481baa5617a3c","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-5.0.0.tgz","fileCount":5,"integrity":"sha512-6QfeouDf236N+MAxHch0CVIy8o/KBnmhttKjxZoOkUlzqU+u9rZgEyXH3OdckhTgawbqf5rpzmyR+07+Lv0+zg==","signatures":[{"sig":"MEQCIAnsJP1G9g78U5xUxHTtcq/NnCpv7XHrHs3ggpyKJJ/lAiBXHjaADwwP5e+AOLQSLyMvM0pRuTSc3ojoF7HHeIuzNQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqIo5CRA9TVsSAnZWagAAVHQP/AiozkndVMXczCuw+5lg\nt29lxJmodK8KZU+oiEstQ56NldnmT7swpr/dHealxSr6GmLb6Xl3G6ytGgIW\n/SjOqaUpVUbzipibpJnVZwOK2mEbYnLnSgTfh1wGA4vxM8nLcHKiautHycNv\nNrIyBGbmdTC6uHLshkmoETlbRT60R6F80T0HVEgMvtptAK0ELoCxc3Io2V2O\neAKE8vozD9MQgizu+CQITArIDAlBQ7EFR6/WUH58QmvKW8PkSCivkMeFQcrC\npQxaspn0pa89YrI8Jm1IWDQfA88Mu/gCE7o24DYc0p/dlt2f8gTU2XI/zRP0\nV6St/pLfSLcvEjtV4eNQpU4sKrWzcnDxdl5/gXlVX5Jrs7Vz5dN6MczuWPFn\n6pF1OTE0VJh/NY/zyF2qLiDoPt4WyGd6LOsWoH+rlfXslNSMzxVfhdpZgEBG\nq6VS7DL3QHuhzyq2ZKVmShVPIVMa+8F1aKkUTg1AvIJ06Ye9rnpdyQ1DSzzc\nKhiBHsBsoVytMUkacddNUyBY8Z7TcWIvVTlvEScBjx9gWbwPoa9nr9IgnChD\nTAlNKQvBlJPXYtsqwor54sG3uWfaNls3aVyW32F1CWEiFoa+hYP7O0olkio9\n11T0LpODea+I76dyGct5x361NpXfwfss5/vmtLIFqIqls3NsQal7l7Kzm6Yp\n5tzb\r\n=4Dha\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"4.0.0","date":{"ts":1552015447338,"rel":"6 years ago"},"dist":{"shasum":"ed0eee8798927ed6f2c2f5f5b77fdb2061a5d346","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-4.0.0.tgz","fileCount":5,"integrity":"sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==","signatures":[{"sig":"MEYCIQDgoQJ2ymsz+iSLtU+tbDCsoLfEWEnsPy6++fUxKdx1nwIhAKDDCG8jcOevLP14FjuAYjfi/fPw3cewD+UeqhYPBbJn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgeBXCRA9TVsSAnZWagAA9wIP/RVfrKfGuy9fqtY2a1Hg\nQ0j+Xnhl4QgHcvUbys50e5wAvCnqhPcW4gY9ui764Wqv+iouPb2cUcRFVn2a\nFFxcpfyn3tdJLHtaI6JIcap6d4s119WY2BMbpg35cFY1UXoUW26I/4RRdHae\nUEZL0eMeYWtmCPsk5LOAsmdOqaVDWjGs3LyniaprAA5uF0GXZVDygBTrTuMk\nrRVo47sC4G+Zrfr8F5KU6AuX0xaNuCnTmdITNQDYxFOFwlxm5tUVZZWjwWeT\nWNtbnHUoD71UHLM75/6PKb9mBpo5d0yBtvhgFSyxrPqXNEQ180qB/Ljy+UEi\nkZpixNR0S1zetTGaSZBvFwg/sfydF1O8hdfhbGH7YW+Y/1ocddodcH4TcxkJ\n10nPjLArplRgpB0E1OpPCJWSebPx4qmkzYP+fHFL3EUKKVINLx6mS8fTK/7C\nKPtbH1CbFJi50Ylvip5n5RWDK/dFN6y0M/68/nc0s79YvwEEjXKO4Xw8X8fn\nfAQzERf97eSsfMm+ofnLixF7f7qbmkJWNbegV47FozBljexM42Zv/j5MM+o8\nfhVFIUPPAu8q8kTeksOA2VgomGByQWPmGLkVsxlw0iOCXFQqYVEboQbSEPs1\n5YV0qITuzVJvJlPSdWcWlXmtJLxFw+/n8sh/MEZmQwhS0+sTKp9b1LoLuGzX\ngzWh\r\n=vX87\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"3.2.0","date":{"ts":1551557435301,"rel":"6 years ago"},"dist":{"shasum":"039001d544550b85fce205935acd43bd3a97d0bb","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-3.2.0.tgz","fileCount":5,"integrity":"sha512-D2OjWeETS1Bjov7d82VclyMRigjZtMdALWV04u0H2zPvV3sYC8f6sYBgQ2Z0OHoBGUYh9S8cHtJqMAO8xaHEwg==","signatures":[{"sig":"MEUCID9SBPyz1LazmaIB20DaUSIfMDnG1W8AXO1BJr2ArJXhAiEA4ukp7RhzcUR16oRT5NW4jCbQc2Hx1KooROIR9UTKRA8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19221,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJceuM7CRA9TVsSAnZWagAAGqQP/1KyiR61RV8eg7KhbC7I\nPw2CdcRLl7rEd6vMKBuCmPbKWHOPntdfDVoSZZTeoTMQrJnC7erDRaT9DIdX\n5JuEjhRR1RTnaXb6dJyyHigQxWiTsWtzukAZI72lp2dM7wtozxk39wfHPq2o\ntQK+zqUZTbDtAluVP+K3zJSSGYKo/CnB/EVn6YO691rSMNOwdPPsnyRD+onP\n7lQbJ/kVuUi5wQu318zPxGQ1Q51TP+fwNKRX41NLdjG6FCGf47eh0iN+lRjj\ne4Kli+yGE3V8t4+VGNLoOFoi/4jmgEfkPc/GMMttY0LL+5hxZNk5spkcOn4s\n2MVfAs2+SmCit02sBRPvp/KbsbDdtKzlpaPlJo6D4dwILXAK4/h7JGrFYfWr\n6BGkNLpX+7Dnu6MSlR9n0RCQqeSjTuEB7yi6FvYOocFGfpTNh+JSkj53Q3cU\nm/32QTUburilmSU1fCQZJZX74S/N21EaYCL10w3lB1A1qzX3GqIXozK+PfmK\nBFsuH0pct7cZ+AH6l2alGNQDL3SwXOkpu52xTFd6g6X2PqCgTRBC4V+6eylQ\nFw+Uf51R4Tc7Hs8Uu4BORli4wdXse6cctFAt+y5KxaGf5K/9gkvTSv2SMiRI\nxIzaR0f0lgmh7n4O7EYWFm1ZYm2EZadWDtA/eNgnMYsX6RHJirTdjC6c1nx8\n1hqi\r\n=5Zv/\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"3.1.0","date":{"ts":1550729793838,"rel":"6 years ago"},"dist":{"shasum":"08e5f52a9f37ddd76bb7c58036362a11c27febbf","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-3.1.0.tgz","fileCount":4,"integrity":"sha512-kFa39NE4N0+fua9kdI/w8FPB0Gmv0lenS+2FQ7J/8dL4hbnfk1AqXSZJXuUKI2HL1GMzzyPSepwGKqsTmP2dDQ==","signatures":[{"sig":"MEUCIQDSIURRpTpSYThHzdZstzL7W3Cw9Dwq6DTEzsr/HjCfLAIgTWF8FXw16wvMakY1GTrjOBsJDwQp+kOgEQ39sXU0wBo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbkJCCRA9TVsSAnZWagAADQwP/iIE9VI54uqXxOa5nhNA\nuKTvZqX4NKvUx7HeyQ6BqoUmXK84DfedX+ynXvzWXgi4mTAB/pMwzo1fa2Gt\n0aN3bK0siNR5gZSxO0STad+natcM/488A0tDoqb8VVQus0dEghqmamVVd1Vu\nkLBnN8E900J/69DN84KPaaNKEavpK016e28Z6BXkdQXocH3FrBC29kZYg5O9\n/NnNM2I3CbPuySHHgODSX2/hMy+EghgvKb0QXvUB/VkSNC+mxGqHsV/cURQc\nUX4Y7Tz1gxbe/8YvGHJfhsFoo6GSysCUxD8vnYkF+6eSkhfNtjICHBWcnytO\n82ugX+olg7hP5yDq5Z06hYyKm07Gf7GW2XNXD//z06knZzIyeJMyxi2h3dbe\nwxCr9oQ2Ba1qWwbGBje9J3PIGxw3WJQ+zMI1MOH73dMik6mIPL2L/K4qUZCs\np7icnfETB+V+i9j9pX6+DXXFavlpmShs+1NHY6odeWhrBhQ+L5hY8V2AwaTt\nG9pU/IXut6/CMGEDFt/H0S+NrAj+XPO1C0tdXic5E3hgQlHBxcOa3eKK7vnw\nuzqLMgkzq4R10dW9WzhXgNlBeEHvad8uLt+/Bj6+BMwbpCwC5j7xEg/EdHPT\nBbx2kmH4Lp5HhBB+48J/p+hKgYwTcpxrFSsElGsWGnQDVlfAjxswPSqpR1tu\nFqKj\r\n=r1b7\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"3.0.0","date":{"ts":1535535469499,"rel":"6 years ago"},"dist":{"shasum":"0ef247082f0dd5a21b66e2cfe8fb7b06db13fb52","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-3.0.0.tgz","fileCount":4,"integrity":"sha512-2tv/MRmPXfmfnjLLJAHl+DdU8p2DhZafAnlpm/C/T5BpF5L9wKz5tMin4A4N2zVpJL2YMhPlRmtO7s5EtNrjfA==","signatures":[{"sig":"MEUCIQC3NtrqSDs5GTSIZnw1CJ1Kni+Uff9VnY1NVJ/oCQj2vAIgG3WZmv4FCnK/bVqMPAksaijzc36QNeucQxU5WXUw1uk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhmltCRA9TVsSAnZWagAAAOoP/1LVo8EJ5j9KpvKv/kPX\n7twhLQWsvKQC9xmhkYWLMXvd1J2Dz79zLvT5vbWmJR73I5Shy+ekxUYBeWUS\nTL9wt2EQX5XWx3S5KNeJyFu6phxFzHpSFMZGPCqCporaM2XTZ+v/BoV4g0GI\nWv3lOd0+dKTEMwC5ownkmzr6oOQ5Ak89RwNiatWzZW1YE7fydxZwD5KUz8oD\nA4gK6Qvjpa5H+Nyz+rFtZ6gij7ZDHZPGBzKB4Tu4BPp1cB2YZ2/J8nmBYTad\nztTIRQMLSrHQW4QQOJId04UcglUCHzxPgfaw2b/z1qJhvrSL5Lz7LEX1tNQM\nFkNfsutctu0WDLEIxD4UAoE2Ov44JVKR8UC7ROWUzhDVHzIcG2HJcf10hI2k\nu3g9I5e0pv4aiDlZWXAi5bdynYMwN5B1jeBZCQJX9PgDN2lfvCEOMHALKhMk\n5hFfszN78OxTrvey0QPZ3RBhFqtiiKWmqfyG/+XwS5ykyNzJZLAY3DPmonul\nzaxj6r7KmiBxguLngFXCP8JPJVlPHicrVlMma4nBli0s+PmtYfG6/22taIU2\nWkUCzhxLOYQRaS1KaBiRi2cijDl71574INmjo3PVTU8im+TEo6IfBI+JZ3Ou\nnFBYboQXKJngeOFAZZ8GmdMn0tfdKIsrfmQRO8jPKEhf6OwyOETahN8I/VoP\ny7Yi\r\n=ch1P\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"2.4.2","date":{"ts":1525143344254,"rel":"7 years ago"},"dist":{"shasum":"03609826682b743be9a22dba25051bd46724fc34","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-2.4.2.tgz","fileCount":4,"integrity":"sha512-n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng==","signatures":[{"sig":"MEYCIQCe09RhtCmp0Nx9C5tTd19MejQgXXYqZ8Iqw9AqYWqQIwIhALafHaIPsXm4fledfuErhecnKJTUod75UYvVa/N121aj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10986,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa59cwCRA9TVsSAnZWagAAYHMQAJB4dTb2+xF2pcFPlu/I\nsHHfRBvKMvJBVIzLMVa2cPQa/daMGT0Vdh7p2o69rKZ97s662Yu6lWNOh7ee\nWe4wBXiH0I8axu1zC/j3qaCT1+mqYYB8WjcR4Z/yYhEq6nATo3Ex+kKZV3DF\nqS3wi6ANB+iWwOQ5TDHxXRe1Sqja7VxxzLPUYKFQWEjW1IzyT6Umx904pfa0\nsmcXziR0CvSpFuKKSuAB0r7nfeFll6k60bTfRClhtWnQIJYEkU1K6cz3VMZb\nECSiKEhKbBolHyRtd4tlYanpM9g8FrMkAJvtMXFiML8dyyoxUKPaf++0Rdxy\nOFMWUQiHKuV5DZCpa+L3V8PaK6yM7Z6lub6hsl8k8nsAPZGCfCnb8K0QtOTg\nyfVDi9HJSIkuAVHu6etglHCJAkslXeO4l8ukAA/dNXgNtpVlQTe2gKiOJq2z\nWzeIU9JcrAo4sgtj7wL0Ks0F1y2Y1M3ES6iPuVicgJuEeIKjf7NOk39Ya5oq\nTWzxfopM5b2y91ESre7bhqlW5GDm/ZcaHlj7XNUWaFuojCCb4nlb+88nRlT4\nHubgStfi2PmRdfuGzibHKpryvOX+hIbTw+3DyUozfsCM+YWiCp9ELC6Gfjcj\nwGUSuuJ59/Ai5ZLhG7WRoNrfP738ct6v+QorT8TOkiIh6Lj0r/NVkDQqEIVg\nlOl7\r\n=nHaW\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"2.4.1","date":{"ts":1524286382346,"rel":"7 years ago"},"dist":{"shasum":"f8e1f989a8ab09e8efe0ca442acf9f859b03d702","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-2.4.1.tgz","fileCount":4,"integrity":"sha512-xqevcHZy5F9ewg/pnox4S1gFo+9wbLuo+XRMIpdreSaB7d2hAm4JNDuDauOKtHvSmFiS00gTSQoYNbo8rbLoBA==","signatures":[{"sig":"MEYCIQCX7+XMHPVuOPh4c5H3GgLwo1ytgdCfH06fNccpQQN4lAIhAJAIbklxDyviZCGWk7AB+PYRkqka87kegbRZtFnIGCaK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2sOvCRA9TVsSAnZWagAA/wEP/3MojKbPQya90utuyBYe\nAa8RPnfOelFI+J/JSq6joM+l6UB0g5g/oUBlsKWy2Ykl27eMEWYRlO6kHqA6\nlO9CZ6jXh5gYFyt0I8kHOL+3doZD0eCJwt2Oz/zywIGSIXo4CT6On6oW3Say\nhUSdgu0TaajQIy3JWPPEb9t+OfgVVPbswOKxLL/zrsBPpApCh3e8jbVFyUnV\nOoNmA6XUXkpGG7zz9xKGA3dzqLBizvb+j5y3XdaYNn0dT6MhmFRvUyej9xoB\nnYkJ8k2nxS6tbSll5Vz2iAMevIBpfme7XK77y9HAiFBECLUorYcT02U8l2rc\n6UOcSp0l/32/4TSsPukRtFguyshJ6WYHvSJX7dyFoHuow8IEYUIBPzBg5YdF\n5s0fULCSXFvBKNnd5OVuW9tvcvfikIfM8mlpP+7O5i1pyNYq/OsrYPTPUy6v\n4ElNDbwjeFSoo1otAOFM3K2kYm2NMH9kmfjgN1gzGb5v97S1mN1H8xlNWchB\nBk3RNtbwsuYq0FZx4mnPwomf8NOiyfG8MZqaMYjA/HmQHfd4NpPr1RktPJiu\n86xOtY3wwjEljAjAYtgqnUIDxZ3r1FEvURMBxbk5FrJXTKcE0BpPqZNeQmdi\nSUW28VoKVObpXiBrLi5IOyWfyYbvlSXEPLKr0nYUvPJATlUPPjRd7rekYnTN\nNOuJ\r\n=Is+6\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"2.4.0","date":{"ts":1522821407740,"rel":"7 years ago"},"dist":{"shasum":"6a64eee8923abac7d7daa3c23f284abb3c0ca5aa","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-2.4.0.tgz","fileCount":4,"integrity":"sha512-ZXisZuQjnDcRd4/Np7lNrE2f3qq2Cy8Ikg8T2gbLjQZbRnSVqOr9cQUMbyVJJuIDUJYWMOZ+Q/5fJbYJtMbZ2A==","signatures":[{"sig":"MEQCIFC0YoRL2plZkM3X5OWHoLFY9U79cFiWDyEV4ze/38DZAiA2f5VTnYG4cneSsJe8R+fD2nabOR8jhAvi6yKL8UzJlw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10890}},{"version":"2.3.1","date":{"ts":1520352817374,"rel":"7 years ago"},"dist":{"shasum":"672c54d190d99bb63fff4dbd0db26380a3602f59","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-2.3.1.tgz","fileCount":4,"integrity":"sha512-MJGD2eVNHhtCsGLBDsfNzhBDlWxBFb5BvVXhJFbmlXH76Llo792ylwqEYJguLo+BnxZpos/Qw9dq0voyQRD3pg==","signatures":[{"sig":"MEYCIQDKBupX54Lc6dDKA76Jl4q/8hyQKQUZXMG1v4CwqN8kLwIhAJWm5uq/Rnqpei2U1BZxEZR3NtMOAw7d9N6qUq4Oh2Fu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10841}},{"version":"2.3.0","date":{"ts":1511554339594,"rel":"7 years ago"},"dist":{"shasum":"65d55e71bc1500fc413122da98ae457ff8a7c038","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-2.3.0.tgz","integrity":"sha512-dTGsADfEpLzT4JwmM5I9mSoVkh78tXhIiqPJ0SVGVVvbGfplAbeUojA5CQtG0FEzBU1GeveA5tk87oaUv4DAQA==","signatures":[{"sig":"MEUCIQDIsq24+DxKtb8tOADknXrFC2Vzi/y7vKGKSKfwb+VHAgIgFTIcPZWJTHEkdyEuE35daUOmr7BqosJvE/UXge4Q6sA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"2.2.0","date":{"ts":1505188839352,"rel":"7 years ago"},"dist":{"shasum":"68de0ab1e73d9430760ecd99230c2d7d6deeaf94","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-2.2.0.tgz","integrity":"sha512-91EJ9kZK3/LzOP38ZD56jo5JfF7ISX4NuCYQGZZkZcE4lHwUxmwSjbQ609HwDVUXAWYo+5x4jQDBnePmiwKBzg==","signatures":[{"sig":"MEUCIEDuntH1/Q2UoWT0kFTvKzXOgMPZj3UHTOiouPlPiXyEAiEA8/7glmdPK0ZSbpjm7pUOcFyzZi0RsCeG2lliA0BsRJE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"2.1.0","date":{"ts":1504026683908,"rel":"7 years ago"},"dist":{"shasum":"bdffcdb4ae3d7268f0dba541a93d3644e3b3f67c","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-2.1.0.tgz","integrity":"sha512-V9T+ET/RKtS5V8ARzNHjv/C8h6GJSQ778OaWmKW+OhKGlULQ+GFAD8Ccg6WqwBZ0V/AOnAeYya1rt/K+0Ryifw==","signatures":[{"sig":"MEUCIQCMdL/1zHprJxpSL/SIEblKbdvShK7FbgofXf6OuaXkIQIgLtaoF8whplCzf0vxnbgD5C+QCuU6/OxSCqxMuPH/36g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"2.0.0","date":{"ts":1504002527379,"rel":"7 years ago"},"dist":{"shasum":"6056de72e382f657fd3ae601c34a41cfb3513cb9","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-2.0.0.tgz","integrity":"sha512-R0+Hb5vSGOFnjLgBztVFvKLwl+tlML6B6uEZgwTPRfjxL0b2Io4YR202t3VZaA9ukK6esRUveGbYV8rLbcpu1w==","signatures":[{"sig":"MEQCIFuleut9/zPxvyZHGvr6bdI81BR3I9OaOWWFHUWi+4DmAiAQdXw49i8J9aU2lmaR9+1qMJUUwpQqnjpGPOqV96/vTA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.2.0","date":{"ts":1503925051112,"rel":"7 years ago"},"dist":{"shasum":"639cb8b07270c15b71d7a6446a8e30414f3c96d1","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-1.2.0.tgz","integrity":"sha512-9Am/KY2moqorICUHl+g8agLTLBS0nn7l1en0wGy5kjRI6BCBDC2t5Jt2fyhgUT+WuVi8kKhpLB0Tnrwf9tIn1A==","signatures":[{"sig":"MEUCIBNYSA2izBX3lwBbALRjWTY0Mdjgt5zyIDPLL4FnwL9vAiEAgJQ1tnqpgNlowQa/D+BA1ot2JyWHsvD25V9mmevOcdY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.1.0","date":{"ts":1498797662579,"rel":"8 years ago"},"dist":{"shasum":"c4246f170782f48d49557ee6634658f6b1dacc5f","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-1.1.0.tgz","integrity":"sha512-Qv/nhJ4KWGzSsoO7EzOCCzY0daPKaC2L9YzrsLh6Z4VnZOsi5QMV1oBsEu3r3OhfbzbrOWhtMFzAt4XvIpCwkQ==","signatures":[{"sig":"MEUCIQCY2rc3PEIWKEYjSPHgzLgU/lJNpxmFX+vO6gjY+JV8egIgc48NIUKmoclJixx/vBGx5FtK9reQ+gLvJM18QozQt0k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"1.0.0","date":{"ts":1484301807546,"rel":"8 years ago"},"dist":{"shasum":"698cde72cc9f57aa3bc7d30ad8019cd736aaed3e","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-1.0.0.tgz","integrity":"sha512-EHHt2qP/OOtlbMiCtfclMrXVUZ8sXpoXdCzr/C9pLa+eEGDHO6KEVXPiVWa4XYeKAcO/iS9gG4sUnO583C00PQ==","signatures":[{"sig":"MEYCIQD8x90SdwvxMvi7w6YwoRYxddiUBCD4ykPATPCRn44eOgIhANBfa/01lihgyOhiUNC3eDX4S+DO3lO9967pY3OOl2Ia","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"0.2.0","date":{"ts":1479360481489,"rel":"8 years ago"},"dist":{"shasum":"10286f06123e102ff422c1a8142e0822ed283dbd","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-0.2.0.tgz","integrity":"sha512-yycBq2d4/eJnlaMCrTKMieDawmSJEukoEFKHDTDBayvs25QFFngMm/YvW8cqO18eD8ecWnMcB8L3xzWVZ592DA==","signatures":[{"sig":"MEYCIQDvavIZOL3DlMJqpNStmMTaZHE9Mqeyj7f2QHXpbKYlkQIhANsnvwNPs2q+XZUQO1RgrCunPOQxn6wa4ElKcKgWXVbR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"0.1.0","date":{"ts":1477993091466,"rel":"8 years ago"},"dist":{"shasum":"6d57ccc409bd6370dd0a251be0713a7f62ecc581","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-0.1.0.tgz","integrity":"sha512-xdeuq981AGutktsyV8+1VwN4EPxWrpeC6UMj9av5ckv8acBhMihGv98nm+J27FM/3xz/99ylajOxVsPMGYHv3g==","signatures":[{"sig":"MEUCIQCu6M0BUc6TQ1iXI9LJ6P+4eR2zW6hXdljdrGZKAiTK5wIgBsfVYAeV0GKo2KBlECs0n3RL2364Kx6XAOUPlTaoCgY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}},{"version":"0.0.0","date":{"ts":1477652263869,"rel":"8 years ago"},"dist":{"shasum":"33466a005bf9110c108578889b8fcfdde92d65eb","tarball":"https://registry.npmjs.org/p-queue/-/p-queue-0.0.0.tgz","integrity":"sha512-j9K0Rm3ewmhIAM4Cnt6FB02ZlCToJZGFvQE9x8H6oxw+ZlYyqS15LJy1F9VWBtwu6fgBPiJsp4JRsz4LkzP24A==","signatures":[{"sig":"MEUCIENtnnJy0dFzEN3tKjxt0Ji5LJ+fXVvR+weqiC2F/CfqAiEA/LoHg8+VG0wtqDMFVdwhzLTMMWe4EzXlBTOXDnUUuJM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]}}],"deprecations":["7.3.1","7.3.2"]},"packageVersion":{"description":"Promise queue with concurrency control","homepage":"https://github.com/sindresorhus/p-queue#readme","repository":"https://github.com/sindresorhus/p-queue","keywords":["promise","queue","enqueue","limit","limited","concurrency","throttle","throat","rate","batch","ratelimit","priority","priorityqueue","fifo","job","task","async","await","promises","bluebird"],"dependencies":{"eventemitter3":"^5.0.1","p-timeout":"^6.1.2"},"devDependencies":{"@sindresorhus/tsconfig":"^5.0.0","@types/benchmark":"^2.1.5","@types/node":"^20.10.4","ava":"^5.3.1","benchmark":"^2.1.4","del-cli":"^5.1.0","delay":"^6.0.0","in-range":"^3.0.0","p-defer":"^4.0.0","random-int":"^3.0.0","time-span":"^5.1.0","tsd":"^0.29.0","tsx":"^4.6.2","typescript":"^5.3.3","xo":"^0.56.0"},"maintainers":[{"name":"sindresorhus","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZhOTIyMzdjNzVjNTMzN2MxN2I2MGQ5MDY4NmJmOT9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.KC8XNdUppYGv8i3NR_MWueP3ituNkh_qulwMMj-O-vI","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZhOTIyMzdjNzVjNTMzN2MxN2I2MGQ5MDY4NmJmOT9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.dDYAebLlFqNIyhWaiaemdRfFkjWlTwsEzFKHfFrqshM","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZhOTIyMzdjNzVjNTMzN2MxN2I2MGQ5MDY4NmJmOT9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.L3jgp0dEuqyrNhjkCIKw9QF5olsmepG_irRSq0obdz4"}},{"name":"richienb","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci85NDc2YTJiZmI2MmY1NzJmYzAwMDA1NmNhMDE1MjJlMz9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.bPqv2aHsbZd5RxmgXHeA_qSX9kT52Nmfp8M6kBF16TY","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci85NDc2YTJiZmI2MmY1NzJmYzAwMDA1NmNhMDE1MjJlMz9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.CMM-XUCE73ODllrxv6GIwmpsk8yWv4zOTy5Rm-UsoAg","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci85NDc2YTJiZmI2MmY1NzJmYzAwMDA1NmNhMDE1MjJlMz9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.tL1sBlvoJ3BTmhW-NCZPEtv1Ca5JGInw4D3ftfMWq1k"}}],"funding":"https://github.com/sponsors/sindresorhus","name":"p-queue","license":"MIT","version":"8.1.0","versions":[],"deprecations":[],"types":"dist/index.d.ts"},"packageUrl":"/package/p-queue","packageLinkingCallToActionHref":null,"package":"p-queue","linkingAllowedForPackage":false,"isStarred":false,"ghapi":"https://api.github.com/repos/sindresorhus/p-queue","downloads":[{"downloads":6155256,"label":"2024-02-23 to 2024-02-29"},{"downloads":6363400,"label":"2024-03-01 to 2024-03-07"},{"downloads":6210949,"label":"2024-03-08 to 2024-03-14"},{"downloads":6409846,"label":"2024-03-15 to 2024-03-21"},{"downloads":5889962,"label":"2024-03-22 to 2024-03-28"},{"downloads":5510741,"label":"2024-03-29 to 2024-04-04"},{"downloads":6004692,"label":"2024-04-05 to 2024-04-11"},{"downloads":6204810,"label":"2024-04-12 to 2024-04-18"},{"downloads":6209718,"label":"2024-04-19 to 2024-04-25"},{"downloads":5762683,"label":"2024-04-26 to 2024-05-02"},{"downloads":5863383,"label":"2024-05-03 to 2024-05-09"},{"downloads":6147139,"label":"2024-05-10 to 2024-05-16"},{"downloads":6044623,"label":"2024-05-17 to 2024-05-23"},{"downloads":5960575,"label":"2024-05-24 to 2024-05-30"},{"downloads":6480517,"label":"2024-05-31 to 2024-06-06"},{"downloads":6417865,"label":"2024-06-07 to 2024-06-13"},{"downloads":6183038,"label":"2024-06-14 to 2024-06-20"},{"downloads":6330072,"label":"2024-06-21 to 2024-06-27"},{"downloads":6066165,"label":"2024-06-28 to 2024-07-04"},{"downloads":6002946,"label":"2024-07-05 to 2024-07-11"},{"downloads":6271498,"label":"2024-07-12 to 2024-07-18"},{"downloads":6373649,"label":"2024-07-19 to 2024-07-25"},{"downloads":6311260,"label":"2024-07-26 to 2024-08-01"},{"downloads":6300961,"label":"2024-08-02 to 2024-08-08"},{"downloads":6167133,"label":"2024-08-09 to 2024-08-15"},{"downloads":6185726,"label":"2024-08-16 to 2024-08-22"},{"downloads":6427881,"label":"2024-08-23 to 2024-08-29"},{"downloads":6272366,"label":"2024-08-30 to 2024-09-05"},{"downloads":6604399,"label":"2024-09-06 to 2024-09-12"},{"downloads":6411852,"label":"2024-09-13 to 2024-09-19"},{"downloads":6589284,"label":"2024-09-20 to 2024-09-26"},{"downloads":6331890,"label":"2024-09-27 to 2024-10-03"},{"downloads":6556588,"label":"2024-10-04 to 2024-10-10"},{"downloads":6279165,"label":"2024-10-11 to 2024-10-17"},{"downloads":6574432,"label":"2024-10-18 to 2024-10-24"},{"downloads":6701007,"label":"2024-10-25 to 2024-10-31"},{"downloads":6413410,"label":"2024-11-01 to 2024-11-07"},{"downloads":6777326,"label":"2024-11-08 to 2024-11-14"},{"downloads":7255892,"label":"2024-11-15 to 2024-11-21"},{"downloads":6908342,"label":"2024-11-22 to 2024-11-28"},{"downloads":6688851,"label":"2024-11-29 to 2024-12-05"},{"downloads":6901753,"label":"2024-12-06 to 2024-12-12"},{"downloads":6795600,"label":"2024-12-13 to 2024-12-19"},{"downloads":3907606,"label":"2024-12-20 to 2024-12-26"},{"downloads":3434220,"label":"2024-12-27 to 2025-01-02"},{"downloads":6291948,"label":"2025-01-03 to 2025-01-09"},{"downloads":6890516,"label":"2025-01-10 to 2025-01-16"},{"downloads":6875906,"label":"2025-01-17 to 2025-01-23"},{"downloads":6983324,"label":"2025-01-24 to 2025-01-30"},{"downloads":7436753,"label":"2025-01-31 to 2025-02-06"},{"downloads":7746591,"label":"2025-02-07 to 2025-02-13"},{"downloads":7353566,"label":"2025-02-14 to 2025-02-20"}],"dependents":{"dependentsCount":1919,"dependentsTruncated":["skypack","@eaglesong/task-maps","dvt-bitd","para-scripts","magica","yet-another-yandex-translate","@slack/rtm-api","aspectify","batch-mathml","@bunchtogether/braid-server","kuro-connector","@devpodio/git","@counterfactual/node","@manomano/rollup-config","@jeetiss/email-verificator","@keepkey/keepkey.js","rvnserve","pascalcoin","fountainhead-bitserve","bitsocket","yidl","fassbender-shopify-theme","batch-audio-converter","darp2","peer-base","@nvivn/core","garden-cli","feathers-knex-modeler","bitsocketd","@blendle/rollup-plugin-postcss","@virtualpatterns/azog","@drubin/garden-cli","smart-cq","@lukeed/rollup-plugin-postcss","celeste","time-crisis","pateka","zerxes","easy-promise-batcher","barnes-optimize","@google/repo","commands-queue","rollup-plugin-postcss-independed","@jimpick/peer-star-app","vue-queue","natori.proxy","vscode-helpers","grob","slack-emoji-export","hc-utilities"]},"capsule":{"name":"p-queue","description":"Promise queue with concurrency control","maintainers":["sindresorhus","richienb"],"dist-tags":{"latest":"8.1.0"},"lastPublish":{"maintainer":"sindresorhus","time":"2025-01-22T07:25:24.485Z"},"types":{"typescript":{"bundled":"dist/index.d.ts","package":"@types/p-queue"}}},"canEditPackage":false},"chunks":{"commons":["commons.74d74467fb70cd5401ce.js","commons.74d74467fb70cd5401ce.js.map"],"styles":["styles.3c3ef91f073352bb91e7.css","minicssextractbug.d66d46708dd01c18fc7a.js","styles.3c3ef91f073352bb91e7.css.map","minicssextractbug.d66d46708dd01c18fc7a.js.map"],"acceptance/acceptance":["acceptance/acceptance.045e956326c9b5fcdb4a.js","acceptance/acceptance.045e956326c9b5fcdb4a.js.map"],"audit-logs/actions/common/auditLogContainer":["audit-logs/actions/common/auditLogContainer.53b5fa5258981ececeb9.js","audit-logs/actions/common/auditLogContainer.53b5fa5258981ececeb9.js.map"],"audit-logs/actions/common/dot":["audit-logs/actions/common/dot.a6c2035bc6bc32e6872b.js","audit-logs/actions/common/dot.a6c2035bc6bc32e6872b.js.map"],"audit-logs/actions/common/filterActions":["audit-logs/actions/common/filterActions.10690b8013721a202a2b.js","audit-logs/actions/common/filterActions.10690b8013721a202a2b.js.map"],"audit-logs/actions/common/spaceGap":["audit-logs/actions/common/spaceGap.aa2921bf2a5d6e05483a.js","audit-logs/actions/common/spaceGap.aa2921bf2a5d6e05483a.js.map"],"audit-logs/actions/orgAddUser":["audit-logs/actions/orgAddUser.b2434e45d5c1e0ec7424.js","audit-logs/actions/orgAddUser.b2434e45d5c1e0ec7424.js.map"],"audit-logs/actions/orgCreateTeam":["audit-logs/actions/orgCreateTeam.b913a08cf76b6f09986b.js","audit-logs/actions/orgCreateTeam.b913a08cf76b6f09986b.js.map"],"audit-logs/actions/orgDeleteTeam":["audit-logs/actions/orgDeleteTeam.23429bb96b3e79a6514d.js","audit-logs/actions/orgDeleteTeam.23429bb96b3e79a6514d.js.map"],"audit-logs/actions/orgRemoveUser":["audit-logs/actions/orgRemoveUser.ec85fe9dc75bea0df456.js","audit-logs/actions/orgRemoveUser.ec85fe9dc75bea0df456.js.map"],"audit-logs/actions/packageAddDistTag":["audit-logs/actions/packageAddDistTag.9c25dd522732ab83aac7.js","audit-logs/actions/packageAddDistTag.9c25dd522732ab83aac7.js.map"],"audit-logs/actions/packageDeprecate":["audit-logs/actions/packageDeprecate.63b497c1bdf823317dc8.js","audit-logs/actions/packageDeprecate.63b497c1bdf823317dc8.js.map"],"audit-logs/actions/packagePublish":["audit-logs/actions/packagePublish.78a715e772c06bbe4483.js","audit-logs/actions/packagePublish.78a715e772c06bbe4483.js.map"],"audit-logs/actions/packageRemoveDistTag":["audit-logs/actions/packageRemoveDistTag.903ceb4660dafeedd561.js","audit-logs/actions/packageRemoveDistTag.903ceb4660dafeedd561.js.map"],"audit-logs/actions/packageUnpublish":["audit-logs/actions/packageUnpublish.16d1df03fec4d63f590d.js","audit-logs/actions/packageUnpublish.16d1df03fec4d63f590d.js.map"],"audit-logs/actions/packageUpdateAccess":["audit-logs/actions/packageUpdateAccess.2bf9fad30bf1a61ede48.js","audit-logs/actions/packageUpdateAccess.2bf9fad30bf1a61ede48.js.map"],"audit-logs/actions/teamAddPackage":["audit-logs/actions/teamAddPackage.f8af99be6b16239ca78c.js","audit-logs/actions/teamAddPackage.f8af99be6b16239ca78c.js.map"],"audit-logs/actions/teamAddUser":["audit-logs/actions/teamAddUser.6341ac7ea782689ae91b.js","audit-logs/actions/teamAddUser.6341ac7ea782689ae91b.js.map"],"audit-logs/actions/teamRemovePackage":["audit-logs/actions/teamRemovePackage.936c4445a81fa6e8c1a0.js","audit-logs/actions/teamRemovePackage.936c4445a81fa6e8c1a0.js.map"],"audit-logs/actions/teamRemoveUser":["audit-logs/actions/teamRemoveUser.32174059ba1b1f80123f.js","audit-logs/actions/teamRemoveUser.32174059ba1b1f80123f.js.map"],"audit-logs/actions/teamUpdatePackageAccess":["audit-logs/actions/teamUpdatePackageAccess.64e6080dc87200c5b9b6.js","audit-logs/actions/teamUpdatePackageAccess.64e6080dc87200c5b9b6.js.map"],"audit-logs/audit-logs":["audit-logs/audit-logs.b869d771888ed5bb334b.js","audit-logs/audit-logs.b869d771888ed5bb334b.js.map"],"audit-logs/audit-search-input":["audit-logs/audit-search-input.254caec75db4b6125c38.js","audit-logs/audit-search-input.254caec75db4b6125c38.js.map"],"audit-logs/list":["audit-logs/list.71b679c4d8febf35b4e0.js","audit-logs/list.71b679c4d8febf35b4e0.js.map"],"audit-logs/no-logs":["audit-logs/no-logs.96e021b3c6bdf5516dcd.js","audit-logs/no-logs.96e021b3c6bdf5516dcd.js.map"],"audit-logs/no-logs-with-query":["audit-logs/no-logs-with-query.ca0b97629391629da963.js","audit-logs/no-logs-with-query.ca0b97629391629da963.js.map"],"auth/account-recovery-message":["auth/account-recovery-message.8811bdba4ec229b56326.js","auth/account-recovery-message.8811bdba4ec229b56326.js.map"],"auth/authentication-successful":["auth/authentication-successful.98d68883337c2dd0086e.js","auth/authentication-successful.98d68883337c2dd0086e.js.map"],"auth/email-otp":["auth/email-otp.bcd3856a7608ac2cfb67.js","auth/email-otp.bcd3856a7608ac2cfb67.js.map"],"auth/escalate":["auth/escalate.a0f46ae76cd468cc80e5.js","auth/escalate.a0f46ae76cd468cc80e5.js.map"],"auth/forgot":["auth/forgot.7e3f94b8f0af05795de7.js","auth/forgot.7e3f94b8f0af05795de7.js.map"],"auth/forgot-sent":["auth/forgot-sent.e4254265070d7123f9cc.js","auth/forgot-sent.e4254265070d7123f9cc.js.map"],"auth/forgot-sent-anonymized":["auth/forgot-sent-anonymized.adfe0bfc6f3a519c7871.js","auth/forgot-sent-anonymized.adfe0bfc6f3a519c7871.js.map"],"auth/invite-signup":["auth/invite-signup.ea258a4772fc6050aa10.js","auth/invite-signup.ea258a4772fc6050aa10.js.map"],"auth/liminal-login-footer":["auth/liminal-login-footer.9595439ced5e1639b8c3.js","auth/liminal-login-footer.9595439ced5e1639b8c3.js.map"],"auth/login":["auth/login.e94daf914368cde34070.js","auth/login.e94daf914368cde34070.js.map"],"auth/otp":["auth/otp.195162b3e2738e0ced7d.js","auth/otp.195162b3e2738e0ced7d.js.map"],"auth/password":["auth/password.0f412c56b69e53962180.js","auth/password.0f412c56b69e53962180.js.map"],"auth/recovery-code":["auth/recovery-code.3c24019b482abe7a5cbe.js","auth/recovery-code.3c24019b482abe7a5cbe.js.map"],"auth/recovery-email-otp":["auth/recovery-email-otp.1b042de41e7febae5057.js","auth/recovery-email-otp.1b042de41e7febae5057.js.map"],"auth/reset-password":["auth/reset-password.627905bfe3effb15bfb6.js","auth/reset-password.627905bfe3effb15bfb6.js.map"],"auth/signup":["auth/signup.67707cfbfb236edd281f.js","auth/signup.67707cfbfb236edd281f.js.map"],"auth/test/email-otp-test":["auth/test/email-otp-test.b187b7028c2f2eb6bd3a.js","auth/test/email-otp-test.b187b7028c2f2eb6bd3a.js.map"],"auth/test/escalate-test":["auth/test/escalate-test.9052ef986f0492464fdf.js","auth/test/escalate-test.9052ef986f0492464fdf.js.map"],"auth/test/otp-test":["auth/test/otp-test.382a646ba488c3cc229d.js","auth/test/otp-test.382a646ba488c3cc229d.js.map"],"auth/test/webauthn-login-test":["auth/test/webauthn-login-test.42b3321f1bafaa90ba6e.js","auth/test/webauthn-login-test.42b3321f1bafaa90ba6e.js.map"],"auth/webauthn-cli-login":["auth/webauthn-cli-login.5186665eb5d895762e85.js","auth/webauthn-cli-login.5186665eb5d895762e85.js.map"],"auth/webauthn-login":["auth/webauthn-login.471b3fb2ec0ee3b8910a.js","auth/webauthn-login.471b3fb2ec0ee3b8910a.js.map"],"billing/delete-org":["billing/delete-org.7248a7eed8447fe756cd.js","billing/delete-org.7248a7eed8447fe756cd.js.map"],"billing/detail":["billing/detail.55fe245e653c7bec2de5.js","billing/detail.55fe245e653c7bec2de5.js.map"],"billing/downgrade":["billing/downgrade.bfaf0fa6800e40d27915.js","billing/downgrade.bfaf0fa6800e40d27915.js.map"],"billing/upgrade":["billing/upgrade.7659d6531aad9068bff5.js","billing/upgrade.7659d6531aad9068bff5.js.map"],"contact/contact":["contact/contact.5141261e25bf2bfb94cc.js","contact/contact.5141261e25bf2bfb94cc.js.map"],"contact/recovery-support-v1":["contact/recovery-support-v1.432ac51f462221ba0be5.js","contact/recovery-support-v1.432ac51f462221ba0be5.js.map"],"contact/recovery-support-v2":["contact/recovery-support-v2.af168cb8deec07e975aa.js","contact/recovery-support-v2.af168cb8deec07e975aa.js.map"],"contact/sidebar":["contact/sidebar.14678ce744fa53a13bf0.js","contact/sidebar.14678ce744fa53a13bf0.js.map"],"debug/badstatus":["debug/badstatus.9e00f5e39914a30688c1.js","debug/badstatus.9e00f5e39914a30688c1.js.map"],"debug/detail":["debug/detail.afa571871a0efade08c2.js","debug/detail.afa571871a0efade08c2.js.map"],"debug/failcomponent":["debug/failcomponent.9ca799f538695b9d2e7a.js","debug/failcomponent.9ca799f538695b9d2e7a.js.map"],"dev/choose-template":["dev/choose-template.3229d919350008cac494.js","dev/choose-template.3229d919350008cac494.js.map"],"dsr/dsr-export":["dsr/dsr-export.174fc3c23c5c22638b47.js","dsr/dsr-export.174fc3c23c5c22638b47.js.map"],"egg/egg":["egg/egg.fb3515c1690e2cae5e8c.js","egg/egg.fb3515c1690e2cae5e8c.js.map"],"errors/bad-request":["errors/bad-request.9d43d66d4455bc87402c.js","errors/bad-request.9d43d66d4455bc87402c.js.map"],"errors/not-found":["errors/not-found.5b182f372a4109926bc8.js","errors/not-found.5b182f372a4109926bc8.js.map"],"errors/server":["errors/server.c3bee34a52de9d9eed1e.js","errors/server.c3bee34a52de9d9eed1e.js.map"],"errors/tea-pot":["errors/tea-pot.5cb72cd7dc554e64c1ab.js","errors/tea-pot.5cb72cd7dc554e64c1ab.js.map"],"errors/template":["errors/template.2e5d4f42b3c92bb2e39d.js","errors/template.2e5d4f42b3c92bb2e39d.js.map"],"flatpage/flatpage":["flatpage/flatpage.dbdf3aee3d0e9a4f24af.js","flatpage/flatpage.dbdf3aee3d0e9a4f24af.js.map"],"homepage/homepage":["homepage/homepage.d74ff1fa25ae7ffabd5a.js","homepage/homepage.d74ff1fa25ae7ffabd5a.js.map"],"homepage/homepage-logged-in":["homepage/homepage-logged-in.31d02f515a043b587940.js","homepage/homepage-logged-in.31d02f515a043b587940.js.map"],"orgs/create":["orgs/create.61367587031ff11524f3.js","orgs/create.61367587031ff11524f3.js.map"],"orgs/detail":["orgs/detail.0a3f5560d6f773c02ffb.js","orgs/detail.0a3f5560d6f773c02ffb.js.map"],"orgs/invite":["orgs/invite.36c6a834e6180038d239.js","orgs/invite.36c6a834e6180038d239.js.map"],"orgs/tfa-enforced":["orgs/tfa-enforced.7a1419669b17da615303.js","orgs/tfa-enforced.7a1419669b17da615303.js.map"],"orgs/upgrade":["orgs/upgrade.4fc93431021efb0301a8.js","orgs/upgrade.4fc93431021efb0301a8.js.map"],"package-list/package-list":["package-list/package-list.bc2b45ea652b14b0880a.js","package-list/package-list.bc2b45ea652b14b0880a.js.map"],"package/delete-package":["package/delete-package.1c943f4151f651a9d914.js","package/delete-package.1c943f4151f651a9d914.js.map"],"package/deprecate-package":["package/deprecate-package.7928c188cb2fd3833e7d.js","package/deprecate-package.7928c188cb2fd3833e7d.js.map"],"package/error-message-package":["package/error-message-package.c6888e3076240fafd221.js","package/error-message-package.c6888e3076240fafd221.js.map"],"package/package":["package/package.a2fa5feaa17da98559b8.js","package/package.a2fa5feaa17da98559b8.js.map"],"profile/profile":["profile/profile.f618802fee68fe52340f.js","profile/profile.f618802fee68fe52340f.js.map"],"recovery-codes/show":["recovery-codes/show.28c515a5443197f4812f.js","recovery-codes/show.28c515a5443197f4812f.js.map"],"search/search":["search/search.5a46360e3cd400c3248e.js","search/search.5a46360e3cd400c3248e.js.map"],"searchv2/search":["searchv2/search.e726f14a4423148814b2.js","searchv2/search.e726f14a4423148814b2.js.map"],"settings/change-password":["settings/change-password.e8caf7da7d5962a8da2f.js","settings/change-password.e8caf7da7d5962a8da2f.js.map"],"settings/delete-account":["settings/delete-account.3877618039c3be496091.js","settings/delete-account.3877618039c3be496091.js.map"],"settings/email":["settings/email.42743732ca56b6645326.js","settings/email.42743732ca56b6645326.js.map"],"settings/memberships":["settings/memberships.906ca82f28f826f46583.js","settings/memberships.906ca82f28f826f46583.js.map"],"settings/packages":["settings/packages.94be6f92f1f7f1cb8b76.js","settings/packages.94be6f92f1f7f1cb8b76.js.map"],"settings/profile":["settings/profile.d66f2314225501804707.js","settings/profile.d66f2314225501804707.js.map"],"teams/create":["teams/create.1fc5cf21646edb28d431.js","teams/create.1fc5cf21646edb28d431.js.map"],"teams/detail":["teams/detail.d488d469f98573142ff0.js","teams/detail.d488d469f98573142ff0.js.map"],"teams/list":["teams/list.6d4535d1cc967be63282.js","teams/list.6d4535d1cc967be63282.js.map"],"teams/packages":["teams/packages.c3c4001eb96702ac23d5.js","teams/packages.c3c4001eb96702ac23d5.js.map"],"teams/users":["teams/users.5f73fb06b09387231e95.js","teams/users.5f73fb06b09387231e95.js.map"],"tfa/additional-options":["tfa/additional-options.ef20d5b36fed1370f6dd.js","tfa/additional-options.ef20d5b36fed1370f6dd.js.map"],"tfa/enable":["tfa/enable.cb9ce3bdc28892507287.js","tfa/enable.cb9ce3bdc28892507287.js.map"],"tfa/list":["tfa/list.664d841f9a11c35bd330.js","tfa/list.664d841f9a11c35bd330.js.map"],"tfa/recovery-codes":["tfa/recovery-codes.5f726e90ac80f93d31c2.js","tfa/recovery-codes.5f726e90ac80f93d31c2.js.map"],"tfa/security-key-list":["tfa/security-key-list.71e755c7c36c784ba7e0.js","tfa/security-key-list.71e755c7c36c784ba7e0.js.map"],"tfa/showTFAQRCode":["tfa/showTFAQRCode.f2133ad4c232bd348c94.js","tfa/showTFAQRCode.f2133ad4c232bd348c94.js.map"],"tfa/showTFASuccess":["tfa/showTFASuccess.9ce7c8cbd7a0092ae913.js","tfa/showTFASuccess.9ce7c8cbd7a0092ae913.js.map"],"tfa/tfa-disable":["tfa/tfa-disable.3daa1160dce9349b47bd.js","tfa/tfa-disable.3daa1160dce9349b47bd.js.map"],"tfa/tfa-mode-selection":["tfa/tfa-mode-selection.51fa1545b9d82780c8fc.js","tfa/tfa-mode-selection.51fa1545b9d82780c8fc.js.map"],"tfa/tfa-password-entry":["tfa/tfa-password-entry.7631d86a14180a95c752.js","tfa/tfa-password-entry.7631d86a14180a95c752.js.map"],"tfa/totp":["tfa/totp.78eecd87c32c267b6e07.js","tfa/totp.78eecd87c32c267b6e07.js.map"],"tokens/create":["tokens/create.85f17c3c385308d52d64.js","tokens/create.85f17c3c385308d52d64.js.map"],"tokens/create-gat":["tokens/create-gat.2fed6ff29343d587a8a2.js","tokens/create-gat.2fed6ff29343d587a8a2.js.map"],"tokens/gat-details":["tokens/gat-details.44705fd6532f338329b0.js","tokens/gat-details.44705fd6532f338329b0.js.map"],"tokens/gat/allowed-ip-ranges-input":["tokens/gat/allowed-ip-ranges-input.5a4a53349bb50f9fad1f.js","tokens/gat/allowed-ip-ranges-input.5a4a53349bb50f9fad1f.js.map"],"tokens/gat/constants":["tokens/gat/constants.8a392a2d499d6b3ed1cd.js","tokens/gat/constants.8a392a2d499d6b3ed1cd.js.map"],"tokens/gat/divider":["tokens/gat/divider.7d7f1e1a8b95fd6b2aac.js","tokens/gat/divider.7d7f1e1a8b95fd6b2aac.js.map"],"tokens/gat/expiration-days-input":["tokens/gat/expiration-days-input.ad8b819768f63e218ff2.js","tokens/gat/expiration-days-input.ad8b819768f63e218ff2.js.map"],"tokens/gat/gat-expiration":["tokens/gat/gat-expiration.bf68e22935cc13e6cb07.js","tokens/gat/gat-expiration.bf68e22935cc13e6cb07.js.map"],"tokens/gat/gat-input":["tokens/gat/gat-input.482746d961379d11096f.js","tokens/gat/gat-input.482746d961379d11096f.js.map"],"tokens/gat/organizations-input":["tokens/gat/organizations-input.a3537d8aafbe36514c0c.js","tokens/gat/organizations-input.a3537d8aafbe36514c0c.js.map"],"tokens/gat/organizations-section":["tokens/gat/organizations-section.d6af923365c4e5918223.js","tokens/gat/organizations-section.d6af923365c4e5918223.js.map"],"tokens/gat/packages-and-scopes-input":["tokens/gat/packages-and-scopes-input.df891be53d1da5b97525.js","tokens/gat/packages-and-scopes-input.df891be53d1da5b97525.js.map"],"tokens/gat/packages-and-scopes-section":["tokens/gat/packages-and-scopes-section.e168d6076aae7639544d.js","tokens/gat/packages-and-scopes-section.e168d6076aae7639544d.js.map"],"tokens/gat/permissions-input":["tokens/gat/permissions-input.d4b040a6b1c3c0c7cf20.js","tokens/gat/permissions-input.d4b040a6b1c3c0c7cf20.js.map"],"tokens/gat/section":["tokens/gat/section.0c33f5608f031d26a611.js","tokens/gat/section.0c33f5608f031d26a611.js.map"],"tokens/gat/section-heading":["tokens/gat/section-heading.49f886f66d96ce131cd7.js","tokens/gat/section-heading.49f886f66d96ce131cd7.js.map"],"tokens/gat/selected-items":["tokens/gat/selected-items.95758f28465f9b200e6b.js","tokens/gat/selected-items.95758f28465f9b200e6b.js.map"],"tokens/gat/utils":["tokens/gat/utils.21bd1577ac4a108df9ea.js","tokens/gat/utils.21bd1577ac4a108df9ea.js.map"],"tokens/generate-token":["tokens/generate-token.8850c8d5dbfde716e107.js","tokens/generate-token.8850c8d5dbfde716e107.js.map"],"tokens/list":["tokens/list.d68e41c2141902326b66.js","tokens/list.d68e41c2141902326b66.js.map"],"vouchers/view":["vouchers/view.937b796376045749f937.js","vouchers/view.937b796376045749f937.js.map"]},"hash":"74d74467fb70cd5401ce","name":"package/package","containerId":"app","headerName":"x-spiferack","publicPath":"https://static-production.npmjs.com/"}</script><script crossorigin="anonymous" src="https://static-production.npmjs.com/commons.74d74467fb70cd5401ce.js"></script> <script crossorigin="anonymous" src="https://static-production.npmjs.com/minicssextractbug.d66d46708dd01c18fc7a.js"></script> <script crossorigin="anonymous" src="https://static-production.npmjs.com/package/package.a2fa5feaa17da98559b8.js"></script> </body> </html>