CINXE.COM

Git

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://static-production.npmjs.com/styles.0c10d02ae8f02a124267.css" /> <title data-react-helmet="true">@nevware21/ts-async - 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="support for asynchronous development with a Promise based task Scheduler, several different Promise implementations (synchronous, idle, asynchronous and native runtime wrappers), await helpers, and aliases all built and tested using TypeScript.. Latest version: 0.5.4, last published: 4 months ago. Start using @nevware21/ts-async in your project by running `npm i @nevware21/ts-async`. There are 15 other projects in the npm registry using @nevware21/ts-async."/><meta data-react-helmet="true" property="og:description" content="support for asynchronous development with a Promise based task Scheduler, several different Promise implementations (synchronous, idle, asynchronous and native runtime wrappers), await helpers, and aliases all built and tested using TypeScript.. Latest version: 0.5.4, last published: 4 months ago. Start using @nevware21/ts-async in your project by running `npm i @nevware21/ts-async`. There are 15 other projects in the npm registry using @nevware21/ts-async."/><meta data-react-helmet="true" property="og:title" content="@nevware21/ts-async"/><meta data-react-helmet="true" property="og:url" content="https://www.npmjs.com/package/@nevware21/ts-async"/><meta data-react-helmet="true" property="og:site_name" content="npm"/><meta data-react-helmet="true" name="keywords" content="typescript,javascript,es5,promise,es6.promise,async,asynchronous,async promise,asynchronous promise,sync,synchronous,sync promise,synchronous promise,idle,idle promise,requestIdleCallback,minification,browser,promise polyfill,scheduler,task scheduler"/><meta data-react-helmet="true" name="twitter:card" content="summary"/><meta data-react-helmet="true" name="twitter:url" content="https://www.npmjs.com/package/@nevware21/ts-async"/><meta data-react-helmet="true" name="twitter:title" content="npm: @nevware21/ts-async"/><meta data-react-helmet="true" name="twitter:description" content="support for asynchronous development with a Promise based task Scheduler, several different Promise implementations (synchronous, idle, asynchronous and native runtime wrappers), await helpers, and aliases all built and tested using TypeScript.. Latest version: 0.5.4, last published: 4 months ago. Start using @nevware21/ts-async in your project by running `npm i @nevware21/ts-async`. There are 15 other projects in the npm registry using @nevware21/ts-async."/> <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-1519727" 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="P6kUXGtMYX8nLQBrMjWccI7Cs9yzvlluBN8V_FUoxka"/></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">@nevware21/ts-async</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">0.5.4<!-- --> • </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="2024-12-15T07:59:09.072Z" title="12/15/2024, 7:59:09 AM">4 months 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>1 Dependency</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>15 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>17 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 align="center" class="heading-element">@nevware21/ts-async</h1><a id="user-content-nevware21ts-async" class="anchor" aria-label="Permalink: @nevware21/ts-async" href="#nevware21ts-async"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h2 align="center" class="heading-element">Promise support implementations and helpers for TypeScript built for minification</h2><a id="user-content-promise-support-implementations-and-helpers-for-typescript-built-for-minification" class="anchor" aria-label="Permalink: Promise support implementations and helpers for TypeScript built for minification" href="#promise-support-implementations-and-helpers-for-typescript-built-for-minification"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p><a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/586b5b4122f3b63a335c88dee174c605829f861e9cc421989678d717beedc5d6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6e65767761726532312f74732d6173796e632f63692e796d6c3f6272616e63683d6d61696e"><img src="https://camo.githubusercontent.com/586b5b4122f3b63a335c88dee174c605829f861e9cc421989678d717beedc5d6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6e65767761726532312f74732d6173796e632f63692e796d6c3f6272616e63683d6d61696e" alt="GitHub Workflow Status (main)" data-canonical-src="https://img.shields.io/github/actions/workflow/status/nevware21/ts-async/ci.yml?branch=main" style="max-width: 100%;"></a> <a href="https://codecov.io/gh/nevware21/ts-async" rel="nofollow"><img src="https://camo.githubusercontent.com/ea75b5913a720d0996dce3b818d98b7788e4e92ad57a6cc57fb65acd8713745d/68747470733a2f2f636f6465636f762e696f2f67682f6e65767761726532312f74732d6173796e632f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d4b413035383230464d4f" alt="codecov" data-canonical-src="https://codecov.io/gh/nevware21/ts-async/branch/main/graph/badge.svg?token=KA05820FMO" style="max-width: 100%;"></a> <a href="https://badge.fury.io/js/%40nevware21%2Fts-async" rel="nofollow"><img src="https://camo.githubusercontent.com/8b1c8005897c28f044de1511d7f20d9e8a5b0aa828542730d10069995e1169ec/68747470733a2f2f62616467652e667572792e696f2f6a732f2534306e657677617265323125324674732d6173796e632e737667" alt="npm version" data-canonical-src="https://badge.fury.io/js/%40nevware21%2Fts-async.svg" style="max-width: 100%;"></a> <a href="https://www.npmjs.com/package/%40nevware21/ts-async" rel="nofollow"><img src="https://camo.githubusercontent.com/cbb8574367d39bc7c0e5c22534d186ce5c460b4bb0294ee9760f254b8dc75a98/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f2534306e65767761726532312f74732d6173796e632e737667" alt="downloads" data-canonical-src="https://img.shields.io/npm/dt/%40nevware21/ts-async.svg" style="max-width: 100%;"></a> <a href="https://www.npmjs.com/package/%40nevware21/ts-async" rel="nofollow"><img src="https://camo.githubusercontent.com/f4346efda602b3ea7a53f9d7cf57bba35300eb5ba7fb0be13a82bab43e8cae24/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f2534306e65767761726532312f74732d6173796e632e737667" alt="downloads" data-canonical-src="https://img.shields.io/npm/dm/%40nevware21/ts-async.svg" style="max-width: 100%;"></a></p> <div class="markdown-heading"><h2 class="heading-element">Description</h2><a id="user-content-description" class="anchor" aria-label="Permalink: Description" href="#description"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>This package provides support for asynchronous development with a Promise based task Scheduler, several different Promise implementations (synchronous, idle, asynchronous and native runtime wrappers), await helpers, and aliases all built and tested using TypeScript. One of the primary focuses of this package is to provide support for the creation of code that can be better minified, resulting in a smaller runtime payload which can directly assist with Page Load performance.</p> <p>The Promise based Task Scheduler supports the serialized execution of tasks using promises to control when the next task should be executed (after the previous task completes), this leverages the supplied Promise implementations so that you can easily create an Idle Task Scheduler which executes the tasks using <code>requestIdleCallback</code> when using the <code>createIdlePromise</code> implementation.</p> <blockquote> <p>All of the provided Promise implementations support usage patterns via either <code>await</code> or with the included helper functions (<code>doAwait</code>, <code>doFinally</code>, <code>doAwaitresponse</code>), you can also mix and match them (use both helper and <code>await</code>) as required by your use cases.</p> </blockquote> <div class="markdown-heading"><h3 class="heading-element">Test Environments</h3><a id="user-content-test-environments" class="anchor" aria-label="Permalink: Test Environments" href="#test-environments"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li>Node (16, 18, 20)</li> <li>Browser (Chromium - headless)</li> <li>Web Worker (Chromium - headless)</li> </ul> <div class="markdown-heading"><h3 class="heading-element">Documentation and details</h3><a id="user-content-documentation-and-details" class="anchor" aria-label="Permalink: Documentation and details" href="#documentation-and-details"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>See the documentation <a href="https://nevware21.github.io/ts-async/typedoc/index.html" rel="nofollow">generated from source code</a> via typedoc for a full list and details of all of the available types, functions, interfaces with included examples.</p> <p>See <a href="#browser-support">Browser Support</a> for details on the supported browser environments.</p> <table> <thead> <tr> <th>Type / Function</th> <th>Since</th> <th>Details</th> </tr> </thead> <tbody> <tr> <td><strong>Promise based Scheduler</strong></td> <td></td> <td></td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/functions/createTaskScheduler.html" rel="nofollow"><code>createTaskScheduler</code></a></td> <td></td> <td>Create a Task Scheduler using the optional promise implementation and scheduler name. The newPromise can be any value promise creation function, where the execution of the queued tasks will be processed based on how the promise implementation processes it's chained promises (asynchrounsly; synchronously; idle processing, etc)<br>There is no limit on the number of schedulers that you can create, when using more than one scheduler it is recommended that you provide a <code>name</code> to each scheduler to help identify / group promises during debugging.</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/interfaces/ITaskScheduler.html" rel="nofollow"><code>ITaskScheduler</code></a></td> <td>0.2.0</td> <td>Defines a Task Scheduler that uses IPromise implementations to serialize the execution of the tasks. Each added task will not get executed until the previous task has completed.</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/types/StartQueuedTaskFn.html" rel="nofollow"><code>StartQueuedTaskFn</code></a></td> <td>0.2.0</td> <td>Identifies the function to call to start and execute the task when its ready to be executed.</td> </tr> <tr> <td><strong>Interfaces</strong></td> <td></td> <td></td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html" rel="nofollow"><code>IPromise</code></a></td> <td></td> <td>This package uses and exports the <code>IPromise&lt;T&gt;</code> interface which extends both the <code>PromiseLike&lt;T&gt;</code> and <code>Promise&lt;T&gt;</code> to provide type compatibility when passing the Promises created with this package to any function that expects a <code>Promise</code> (including returning from an <code>async function</code>). As part of it's definition it exposes an [optional] string <code>status</code> to represent the current state of the <code>Promise</code>. These values include <code>pending</code>, <code>resolved</code> <code>rejected</code> and <code>resolving</code> which is a special case when a Promise is being <code>resolved</code> via another Promise returned via the <code>thenable</code> onResolved / onRejected functions.</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/interfaces/AwaitResponse.html" rel="nofollow"><code>AwaitResponse</code></a></td> <td></td> <td>This interface is used to represent the result whether resolved or rejected when using the <a href="https://nevware21.github.io/ts-async/typedoc/functions/doAwaitResponse.html" rel="nofollow"><code>doAwaitResponse</code></a>, this function is useful when you want to avoid creating both a <code>resolved</code> and <code>rejected</code> functions, as this function only requires a single callback function to be used which will receive an object that conforms to this interface.</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/interfaces/IWhileState.html" rel="nofollow"><code>IWhileState</code></a></td> <td>0.5.0</td> <td>The current state of the while loop while processing the callback function, this is passed to eht callback function.</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/interfaces/IPromiseResult.html" rel="nofollow"><code>IPromiseResult</code></a></td> <td>0.5.0</td> <td>The result of a promise. It can either be fulfilled with a value, or rejected with a reason.</td> </tr> <tr> <td><strong>Alias</strong></td> <td></td> <td></td> </tr> <tr> <td> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createPromise.html" rel="nofollow"><code>createPromise</code></a><br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAllPromise.html" rel="nofollow"><code>createAllPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAllSettledPromise.html" rel="nofollow"><code>createAllSettledPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAnyPromise.html" rel="nofollow"><code>createAnyPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createRacePromise.html" rel="nofollow"><code>createRacePromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createRejectedPromise.html" rel="nofollow"><code>createRejectedPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createResolvedPromise.html" rel="nofollow"><code>createResolvedPromise</code></a> <br> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/setCreatePromiseImpl.html" rel="nofollow"><code>setCreatePromiseImpl</code></a> </td> <td> <br> <br> 0.5.0 <br> 0.5.0 <br> 0.5.0 <br> <br> <br> <br> <br> </td> <td>These function use the current promise creator implementation that can be set via <code><a href="https://nevware21.github.io/ts-async/typedoc/functions/setCreatePromiseImpl.html" rel="nofollow"><code>setCreatePromiseImpl</code></a>(creator: &lt;T&gt;(executor: PromiseExecutor&lt;T&gt;, timeout?: number) =&gt; IPromise&lt;T&gt;): void</code> <br>Unless otherwise set this defaults to the <code>createNativePromise</code> implementation, to provide a simplified wrapper around any native runtime Promise support. <br>Available implementation: <ul> <li> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createNativePromise.html" rel="nofollow"><code>createNativePromise</code></a> </li> <li> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAsyncPromise.html" rel="nofollow"><code>createAsyncPromise</code></a> </li> <li> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createSyncPromise.html" rel="nofollow"><code>createSyncPromise</code></a> </li> <li> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createIdlePromise.html" rel="nofollow"><code>createIdlePromise</code></a> </li> </ul> By using these aliases, it's possible to switch between any of these implementations as needed without duplicating your code. This will not change any existing promises, it only affects new promises.</td> </tr> <tr> <td> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createNativePromise.html" rel="nofollow"><code>createNativePromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createNativeAllPromise.html" rel="nofollow"><code>createNativeAllPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createNativeAllSettledPromise.html" rel="nofollow"><code>createNativeAllSettledPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createNativeAnyPromise.html" rel="nofollow"><code>createNativeAnyPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createNativeRacePromise.html" rel="nofollow"><code>createNativeRacePromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createNativeRejectedPromise.html" rel="nofollow"><code>createNativeRejectedPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createNativeResolvedPromise.html" rel="nofollow"><code>createNativeResolvedPromise</code></a> </td> <td> <br> <br> 0.5.0 <br> 0.5.0 <br> 0.5.0 <br> <br> <br> </td> <td>These are effectively wrappers around the runtime <code>Promise</code> class, so this is effectivly the same as <code>new Promise(...)</code> but as a non-global class name it can be heavily minified to something like <code>a(...)</code>. These wrappers also add an accessible <code>status</code> property for identifying the current status of this promise. However, the <code>status</code> property is NOT available on any returned chained Promise (from calling <code>then</code>, <code>catch</code> or <code>finally</code>)</td> </tr> <tr> <td><strong>Asynchronous Promise</strong></td> <td></td> <td></td> </tr> <tr> <td> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAsyncPromise.html" rel="nofollow"><code>createAsyncPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAsyncAllPromise.html" rel="nofollow"><code>createAsyncAllPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAsyncAllSettledPromise.html" rel="nofollow"><code>createAsyncAllSettledPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAsyncAnyPromise.html" rel="nofollow"><code>createAsyncAnyPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAsyncRacePromise.html" rel="nofollow"><code>createAsyncRacePromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAsyncRejectedPromise.html" rel="nofollow"><code>createAsyncRejectedPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createAsyncResolvedPromise.html" rel="nofollow"><code>createAsyncResolvedPromise</code></a> </td> <td> <br> <br> 0.5.0 <br> 0.5.0 <br> 0.5.0 <br> <br> <br> </td> <td>Provides an implementation of the <code>Promise</code> contract that uses timeouts to process any chained promises (returned by <code>then(...)</code>, <code>catch(...)</code>, <code>finally(...)</code>), when creating the initial promise you can also provide (override) the default duration of the timeout (defaults to 0ms) to further delay the execution of the chained Promises.<br>, but can also be provided) to process any chained promises (of any type)</td> </tr> <tr> <td><strong>Synchronous Promise</strong></td> <td></td> <td></td> </tr> <tr> <td> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createSyncPromise.html" rel="nofollow"><code>createSyncPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createSyncAllPromise.html" rel="nofollow"><code>createSyncAllPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createSyncAllSettledPromise.html" rel="nofollow"><code>createSyncAllSettledPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createSyncAnyPromise.html" rel="nofollow"><code>createSyncAnyPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createSyncRacePromise.html" rel="nofollow"><code>createSyncRacePromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createSyncRejectedPromise.html" rel="nofollow"><code>createSyncRejectedPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createSyncResolvedPromise.html" rel="nofollow"><code>createSyncResolvedPromise</code></a> </td> <td> <br> <br> 0.5.0 <br> 0.5.0 <br> 0.5.0 <br> <br> <br> </td> <td>Also implements the <code>Promise</code> contract but will immediately execute any chained promises at the point of the original promise getting resolved or rejected, or if already resolved, rejected then at the point of registering the <code>then</code>, <code>catch</code> or <code>finally</code> </td> </tr> <tr> <td><strong>Idle Promise</strong></td> <td></td> <td></td> </tr> <tr> <td> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createIdlePromise.html" rel="nofollow"><code>createIdlePromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createIdleAllPromise.html" rel="nofollow"><code>createIdleAllPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createIdleAllSettledPromise.html" rel="nofollow"><code>createIdleAllSettledPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createIdleAnyPromise.html" rel="nofollow"><code>createIdleAnyPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createIdleRacePromise.html" rel="nofollow"><code>createIdleRacePromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createIdleRejectedPromise.html" rel="nofollow"><code>createIdleRejectedPromise</code></a> <br> <a href="https://nevware21.github.io/ts-async/typedoc/functions/createIdleResolvedPromise.html" rel="nofollow"><code>createIdleResolvedPromise</code></a> </td> <td> <br> <br> 0.5.0 <br> 0.5.0 <br> 0.5.0 <br> <br> <br> </td> <td>Implements the <code>Promise</code> contract and will process any chained promises using the available <code>requestIdleCallback</code> (with no timeout by default - but can also be changes by <code>setDetaultIdlePromiseTimeout</code>). And when <code>requestIdleCallback</code> is not supported this will default to using a timeout via the <a href="https://nevware21.github.io/ts-utils/typedoc/functions/scheduleIdleCallback.html" rel="nofollow"><code>scheduleIdleCallback</code> from <code>@nevware21/ts-utils</code></a> </td> </tr> <tr> <td><strong>Timeout</strong></td> <td></td> <td></td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/functions/createTimeoutPromise.html" rel="nofollow"><code>createTimeoutPromise</code></a></td> <td></td> <td>Creates a Promise instance that resolve or reject after the specified timeout.</td> </tr> <tr> <td><strong>Helpers</strong></td> <td></td> <td></td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/functions/createTimeoutPromise.html" rel="nofollow"><code>createTimeoutPromise</code></a></td> <td>0.5.0</td> <td>Creates a Promise instance that resolve or reject after the specified timeout.</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/functions/doAwait.html" rel="nofollow"><code>doAwait</code></a></td> <td></td> <td>Helper which handles <code>await</code> "handling" via callback functions to avoid the TypeScript boilerplate code that is added for multiple branches. Internal it handles being passed an <code>IPromise</code> or a result value so you avoid needing to test whether the result you have is also a <code>Promise</code>.<br>It takes three (3) optional callback functions for <code>resolved</code>, <code>rejected</code> and <code>finally</code>.</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/functions/doAwaitResponse.html" rel="nofollow"><code>doAwaitResponse</code></a></td> <td></td> <td>Helper which handles <code>await</code> "handling" via a single callback where <code>resolved</code> and <code>rejected</code> cases are handled by the same callback, this receives an <code>AwaitResponse</code> object that provides the <code>value</code> or <code>reason</code> and a flag indicating whether the Promise was <code>rejected</code> </td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/functions/doFinally.html" rel="nofollow"><code>doFinally</code></a></td> <td></td> <td>Helper to provide <code>finally</code> handling for any promise using a callback implementation, analogous to using <code>try</code> / <code>finally</code> around an <code>await</code> function or using the <code>finally</code> on the promise directly</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/functions/arrForEachAsync.html" rel="nofollow"><code>arrForEachAsync</code></a></td> <td>0.5.0</td> <td>Performs an asynchronous for loop where the calling function may return an <a href="https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html" rel="nofollow"><code>IPromise</code></a> which must be fulfilled before the next iteration is called.</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/functions/doWhileAsync.html" rel="nofollow"><code>doWhileAsync</code></a></td> <td>0.5.0</td> <td>Performs a while loop where the calling function may return an <a href="https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html" rel="nofollow"><code>IPromise</code></a> which must be fulfilled before the next iteration is called.</td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/functions/iterForOfAsync.html" rel="nofollow"><code>iterForOfAsync</code></a></td> <td>0.5.0</td> <td>Iterates over the iterator where the calling function may return an <a href="https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html" rel="nofollow"><code>IPromise</code></a> which must be fulfilled before the next iteration is called.</td> </tr> <tr> <td><strong>Polyfill</strong></td> <td></td> <td></td> </tr> <tr> <td><a href="https://nevware21.github.io/ts-async/typedoc/classes/PolyPromise.html" rel="nofollow"><code>PolyPromise</code></a></td> <td>0.5.0</td> <td>A full polyfill for the Promise class</td> </tr> </tbody> </table> <p>All promise implementations are validated using TypeScript with <code>async</code> / <code>await</code> and the internal helper functions <code>doAwait</code>, <code>doFinally</code> and <code>doAwaitResponse</code> helpers. Usage of the <code>doAwait</code> or <code>doAwaitResponse</code> is recommended as this avoids the additional boiler plate code that is added by TypeScript when handling the branches in an <code>async</code> / <code>await</code> operations, this does however, mean that your calling functions will also need to handle this <code>async</code> operations via callbacks rather than just causing the code path to "halt" at the <code>await</code> and can therefore may be a little more complex (depending on your implementation).</p> <blockquote> <p>However, you are NOT restricted to only using <code>await</code> OR <code>doAwait</code> they can be used together. For example your public API can still be defined as asynchronous, but internally you could use <code>doAwait</code></p> </blockquote> <div class="highlight highlight-source-ts"><pre><span class="pl-k">async</span> <span class="pl-k">function</span> <span class="pl-en">myApi</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-en">doAwait</span><span class="pl-kos">(</span><span class="pl-s1">thePromise</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</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">reason</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</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"><h3 class="heading-element">Unhandled Promise Rejection Event</h3><a id="user-content-unhandled-promise-rejection-event" class="anchor" aria-label="Permalink: Unhandled Promise Rejection Event" href="#unhandled-promise-rejection-event"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>All implementations will "emit/dispatch" the unhandled promise rejections event (<code>unhandledRejection</code> (node) or <code>unhandledrejection</code>) (if supported by the runtime) using the standard runtime mechanisms. So any existing handlers for native (<code>new Promise</code>) unhandled rejections will also receive them from the <code>idle</code>, <code>sync</code> and <code>async</code> implementations. The only exception to this is when the runtime (like IE) doesn't support this event in those cases "if" an <code>onunhandledrejection</code> function is registered it will be called and if that also doesn't exist it will logged to the console (if possible).</p> <div class="markdown-heading"><h3 class="heading-element">Pollyfill</h3><a id="user-content-pollyfill" class="anchor" aria-label="Permalink: Pollyfill" href="#pollyfill"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>The package provides a simple polyfill wrapper which is built around the <code>asynchronous</code> promise implementation which is tested and validated against the standard native (<code>Promise()</code>) implementations for node, browser and web-worker to ensure compatibility.</p> <div class="markdown-heading"><h2 class="heading-element">Language ECMAScript Support</h2><a id="user-content-language-ecmascript-support" class="anchor" aria-label="Permalink: Language ECMAScript Support" href="#language-ecmascript-support"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h3 class="heading-element">ES5</h3><a id="user-content-es5" class="anchor" aria-label="Permalink: ES5" href="#es5"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>This library plans to maintain ES5 compatibility for all versions of v0.x and v1.x releases</p> <div class="markdown-heading"><h3 class="heading-element">ES(future [6 next, etc])</h3><a id="user-content-esfuture-6-next-etc" class="anchor" aria-label="Permalink: ES(future [6 next, etc])" href="#esfuture-6-next-etc"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Future versions of this library starting at version 2.x are planned to lift and remove the internal polyfills to support the new targetted baseline once it is defined. ie. It may or may not be ES6 depending on the runtime landscape and requests received.</p> <p>When we release v2.x the supported browser matrix will also shift as required to match the defined language level supported at that time.</p> <div class="markdown-heading"><h2 class="heading-element">Quickstart</h2><a id="user-content-quickstart" class="anchor" aria-label="Permalink: Quickstart" href="#quickstart"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Install the npm packare: <code>npm install @nevware21/ts-async --save</code></p> <blockquote> <p>It is suggested / recommended that you use the following definition in your <code>package.json</code> so that you are compatible with any future releases as they become available we do not intend to make ANY known breaking changes moving forward until v2.x</p> <div class="highlight highlight-source-json"><pre><span class="pl-ent">"@nevware21/ts-async"</span>: <span class="pl-s"><span class="pl-pds">"</span>&gt;= 0.5.4 &lt; 2.x<span class="pl-pds">"</span></span></pre></div> </blockquote> <p>And then just import the helpers and use them.</p> <div class="markdown-heading"><h3 class="heading-element">Simple Examples</h3><a id="user-content-simple-examples" class="anchor" aria-label="Permalink: Simple Examples" href="#simple-examples"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="markdown-heading"><h4 class="heading-element">Using Task Scheduler</h4><a id="user-content-using-task-scheduler" class="anchor" aria-label="Permalink: Using Task Scheduler" href="#using-task-scheduler"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="highlight highlight-source-ts"><pre><span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">createTaskScheduler</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"@nevware21/ts-async"</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">scheduleTimeout</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"@nevware21/ts-utils"</span><span class="pl-kos">;</span> <span class="pl-k">let</span> <span class="pl-s1">scheduler</span> <span class="pl-c1">=</span> <span class="pl-en">createTaskScheduler</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// Schedule (and start) task 1 using native promise</span> <span class="pl-c">// Because this is a new scheduler there are no other</span> <span class="pl-c">// pending tasks so this will be started synchronously</span> <span class="pl-k">let</span> <span class="pl-s1">task1</span> <span class="pl-c1">=</span> <span class="pl-s1">scheduler</span><span class="pl-kos">.</span><span class="pl-en">queue</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-k">new</span> <span class="pl-v">Promise</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">resolve</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-en">setTimeout</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-en">resolve</span><span class="pl-kos">(</span><span class="pl-c1">42</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">100</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-c">// task1.status; =&gt; "pending" (and running)</span> <span class="pl-c">// Schedule task 2 using helper function</span> <span class="pl-c">// The startTask function for task2 will not be called</span> <span class="pl-c">// until task1 has completed</span> <span class="pl-k">let</span> <span class="pl-s1">task2</span> <span class="pl-c1">=</span> <span class="pl-s1">scheduler</span><span class="pl-kos">.</span><span class="pl-en">queue</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-en">createPromise</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">resolve</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-en">scheduleTimeout</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-en">resolve</span><span class="pl-kos">(</span><span class="pl-c1">21</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">100</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-c">// task2.status; =&gt; "pending" (not running)</span> <span class="pl-k">await</span> <span class="pl-s1">task1</span><span class="pl-kos">;</span> <span class="pl-c">// task1.status =&gt; "resolved"</span> <span class="pl-c">// task2.status =&gt; "pending" (but running)</span></pre></div> <div class="markdown-heading"><h4 class="heading-element">Using Promise Helpers</h4><a id="user-content-using-promise-helpers" class="anchor" aria-label="Permalink: Using Promise Helpers" href="#using-promise-helpers"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <div class="highlight highlight-source-ts"><pre><span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">createPromise</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"@nevware21/ts-async"</span><span class="pl-kos">;</span> <span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">scheduleTimeout</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"@nevware21/ts-utils"</span><span class="pl-kos">;</span> <span class="pl-k">const</span> <span class="pl-s1">myPromise</span> <span class="pl-c1">=</span> <span class="pl-en">createPromise</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">resolve</span><span class="pl-kos">,</span> <span class="pl-s1">reject</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-en">scheduleTimeout</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-en">resolve</span><span class="pl-kos">(</span><span class="pl-s">"foo"</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">300</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">myPromise</span> <span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span><span class="pl-s1">handleFulfilledA</span><span class="pl-kos">,</span> <span class="pl-s1">handleRejectedA</span><span class="pl-kos">)</span> <span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span><span class="pl-s1">handleFulfilledB</span><span class="pl-kos">,</span> <span class="pl-s1">handleRejectedB</span><span class="pl-kos">)</span> <span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span><span class="pl-s1">handleFulfilledC</span><span class="pl-kos">,</span> <span class="pl-s1">handleRejectedC</span><span class="pl-kos">)</span> <span class="pl-kos">.</span><span class="pl-en">catch</span><span class="pl-kos">(</span><span class="pl-s1">handleRejectedAny</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// Create a new promise that resolves with an inner promise that will auto resolve after 1 second</span> <span class="pl-en">createPromise</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">resolveOuter</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-en">resolveOuter</span><span class="pl-kos">(</span> <span class="pl-en">createPromise</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">resolveInner</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-en">scheduleTimeout</span><span class="pl-kos">(</span><span class="pl-s1">resolveInner</span><span class="pl-kos">,</span> <span class="pl-c1">1000</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-kos">;</span> <span class="pl-en">doAwait</span><span class="pl-kos">(</span><span class="pl-s1">myPromise</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-c">// Handle the result this would normally be</span> <span class="pl-c">// let result = await myPromise;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">(</span><span class="pl-s1">reason</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span> <span class="pl-c">// Handle cases when the `myPromise` is rejected</span> <span class="pl-c">// Using await you would handle this via try / catch</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <p>While the examples above are using the <code>createPromise</code> you can directly use the <code>createSyncPromise</code>, <code>createAsyncPromise</code>, <code>createIdlePromise</code> or <code>createNativePromise</code>, you can also mix and match them (ie. they don't all have to be the same implementation). The <code>createPromise</code> alias is provided to enable switching the underlying Promise implementation without changing any of your code.</p> <div class="markdown-heading"><h2 class="heading-element">Release Notes</h2><a id="user-content-release-notes" class="anchor" aria-label="Permalink: Release Notes" href="#release-notes"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <ul> <li><a href="https://github.com/nevware21/ts-async/releases">Releases</a></li> <li><a href="https://github.com/nevware21/ts-async/blob/HEAD/CHANGELIST.md">Changelist Notes</a></li> </ul> <div class="markdown-heading"><h2 class="heading-element">Browser Support</h2><a id="user-content-browser-support" class="anchor" aria-label="Permalink: Browser Support" href="#browser-support"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>General support is currently set to ES5 supported runtimes and higher.</p> <p>Internal polyfills are used to backfill ES5 functionality which is not provided by older browsers.</p> <table> <thead> <tr> <th><a target="_blank" rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png"><img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" style="max-width: 100%;"></a></th> <th><a target="_blank" rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png"><img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" style="max-width: 100%;"></a></th> <th><a target="_blank" rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png"><img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE" style="max-width: 100%;"></a></th> <th><a target="_blank" rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png"><img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" style="max-width: 100%;"></a></th> <th><a target="_blank" rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png"><img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" style="max-width: 100%;"></a></th> </tr> </thead> <tbody> <tr> <td>Latest ✔</td> <td>Latest ✔</td> <td>9+ ✔</td> <td>Latest ✔</td> <td>Latest ✔</td> </tr> </tbody> </table> <blockquote> <p>Note: A PolyFill <code>PolyPromise</code> provides the standard promise implementations for IE and ES5+ environments.</p> </blockquote> <div class="markdown-heading"><h2 class="heading-element">Contributing</h2><a id="user-content-contributing" class="anchor" aria-label="Permalink: Contributing" href="#contributing"><span aria-hidden="true" class="octicon octicon-link"></span></a></div> <p>Read our <a href="https://github.com/nevware21/ts-async/blob/HEAD/CONTRIBUTING.md">contributing guide</a> to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes.</p> </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:typescript">typescript</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:javascript">javascript</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:es5">es5</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: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:es6.promise">es6.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: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:asynchronous">asynchronous</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:&quot;async promise&quot;">async 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:&quot;asynchronous promise&quot;">asynchronous 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:sync">sync</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:synchronous">synchronous</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:&quot;sync promise&quot;">sync 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:&quot;synchronous promise&quot;">synchronous 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:idle">idle</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:&quot;idle promise&quot;">idle 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:requestIdleCallback">requestIdleCallback</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:minification">minification</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:browser">browser</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:&quot;promise polyfill&quot;">promise polyfill</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:scheduler">scheduler</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:&quot;task scheduler&quot;">task scheduler</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 <!-- -->@nevware21/ts-async</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/nevware21/ts-async" 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/nevware21/ts-async</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/nevware21/ts-async"><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/nevware21/ts-async</span></a></p></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">441,718</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">0.5.4</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">6.48 MB</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">37</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="2024-12-15T07:59:09.072Z" title="12/15/2024, 7:59:09 AM">4 months 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="/~nev21"><img src="/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci8xMjNmNzg4NzY0NzQ1MGY0ZDQ4NTgyNDgxNDkzMDE1Mj9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.53u4FzVKQVCIHsVFhl1PPDNIxHsYrXpXIVp6g2bnN9Y" style="width:42px;height:42px;min-width:42px;border-radius:4%" alt="nev21" title="nev21"/></a></div></li><li class="_426b8533 fl dib mr2 mb2"><div><a href="/~nevware21bot"><img src="/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kNWU0NGZmZmMyMzllNWZjNWFjMjdkM2NmMzhlMDMxMD9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.dtHN28NE6qNYf3QuGx8jwxHuVFN2dAayIFJFI8oACOA" style="width:42px;height:42px;min-width:42px;border-radius:4%" alt="nevware21bot" title="nevware21bot"/></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/%40nevware21%2Fts-async"><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&amp;security-inquire=malware&amp;package=%40nevware21%2Fts-async&amp;version=0.5.4"><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 &amp; 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-vH8NsVmgZ4hFcsB3kXVlHVH9MUEd/IiSSKSO0hgD0xR8xTrtoobfdWvz/lVjx/Iip+7Ei+8IJNZuAt+ipZmVig==">window.__context__ = {"context":{"notifications":[],"csrftoken":"P6kUXGtMYX8nLQBrMjWccI7Cs9yzvlluBN8V_FUoxka","userEmailVerified":null,"auditLogEnabled":false,"user":null,"documentContext":{"readme.data":"readme"},"undefined":true,"readme":{"ref":"readme","data":null},"versionsDownloads":{"0.5.0":5185,"0.5.2":69928,"0.1.0":1,"0.5.4":251101,"0.5.3":38180,"0.2.6":6121,"0.2.0":1,"0.2.4":1121,"0.4.0":21604,"0.3.0":13712,"0.2.5":1,"0.2.3":1,"0.5.1":34758,"0.1.1":1,"0.2.2":1,"0.2.1":1,"0.1.2":1},"starAction":"/package/%40nevware21%2Fts-async/star","scope":"nevware21","provenance":{"enabled":false,"feedbackUrl":" https://github.com/npm/feedback"},"isSecurityPlaceholder":false,"private":false,"devDeps":["@istanbuljs/nyc-config-typescript","@microsoft/api-extractor","@nevware21/ts-preproc","@rollup/plugin-commonjs","@rollup/plugin-json","@rollup/plugin-node-resolve","@rollup/plugin-strip","@rollup/plugin-typescript","@types/chai","@types/mocha","@types/sinon","chai","chromium","copyfiles","cross-env","grunt","grunt-cli","karma","karma-chrome-launcher","karma-coverage","karma-coverage-istanbul-reporter","karma-mocha","karma-mocha-webworker","karma-rollup-preprocessor","karma-spec-reporter","karma-typescript","mocha","nyc","puppeteer","rollup","rollup-plugin-cleanup","rollup-plugin-istanbul","rollup-plugin-minify-es","rollup-plugin-sourcemaps","sinon","ts-mocha","typedoc","typescript","uglify-js"],"deps":["@nevware21/ts-utils"],"packument":{"author":{"name":"NevWare21 Solutions LLC","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9hYjdlNjFmNzMwZjA3MGY3M2U5MGFiMTQwZGU0ZGE3Yj9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.KDJdae0sMLQpMhMcsSrgINY3-_zclzeaQM4HNWvYKqQ","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9hYjdlNjFmNzMwZjA3MGY3M2U5MGFiMTQwZGU0ZGE3Yj9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.qMXIWkAVLvE8LHTfpPowtFAL_5QelGkzakMLLbXrzLU","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9hYjdlNjFmNzMwZjA3MGY3M2U5MGFiMTQwZGU0ZGE3Yj9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.60fXIY4buKaapN_PsW2UbKjFYQDF10N1Zs6ZKG9Jvi0"}},"description":"support for asynchronous development with a Promise based task Scheduler, several different Promise implementations (synchronous, idle, asynchronous and native runtime wrappers), await helpers, and aliases all built and tested using TypeScript.","homepage":"https://github.com/nevware21/ts-async","repository":"https://github.com/nevware21/ts-async","distTags":{"latest":"0.5.4"},"keywords":["typescript","javascript","es5","promise","es6.promise","async","asynchronous","async promise","asynchronous promise","sync","synchronous","sync promise","synchronous promise","idle","idle promise","requestIdleCallback","minification","browser","promise polyfill","scheduler","task scheduler"],"maintainers":[{"name":"nev21","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci8xMjNmNzg4NzY0NzQ1MGY0ZDQ4NTgyNDgxNDkzMDE1Mj9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.cMCgLW2rZP8A__SyrXwdbyxsAdCrDaDbnVZBn9DYq1w","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci8xMjNmNzg4NzY0NzQ1MGY0ZDQ4NTgyNDgxNDkzMDE1Mj9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.53u4FzVKQVCIHsVFhl1PPDNIxHsYrXpXIVp6g2bnN9Y","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci8xMjNmNzg4NzY0NzQ1MGY0ZDQ4NTgyNDgxNDkzMDE1Mj9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.c0vtZcTS_hiDNsiI9oNxUKRVwIvmofGLEphRtcwGmss"}},{"name":"nevware21bot","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kNWU0NGZmZmMyMzllNWZjNWFjMjdkM2NmMzhlMDMxMD9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.1GX6GKHCA_mAozEVMkBqbrQS9HvrbtR6nDxifFj67uw","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kNWU0NGZmZmMyMzllNWZjNWFjMjdkM2NmMzhlMDMxMD9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.dtHN28NE6qNYf3QuGx8jwxHuVFN2dAayIFJFI8oACOA","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kNWU0NGZmZmMyMzllNWZjNWFjMjdkM2NmMzhlMDMxMD9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.89Wo7mk9ldvktW4FSH-eU6fVXGTd20l2mXMhM535mLM"}}],"name":"@nevware21/ts-async","license":"MIT","version":"0.5.4","versions":[{"version":"0.5.4","date":{"ts":1734249549072,"rel":"4 months ago"},"dist":{"integrity":"sha512-IBTyj29GwGlxfzXw2NPnzty+w0Adx61Eze1/lknH/XIVdxtF9UnOpk76tnrHXWa6j84a1RR9hsOcHQPFv9qJjA==","shasum":"52f8449dd0b3b16aa317a18b4662f6fb13a135f1","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.5.4.tgz","fileCount":37,"unpackedSize":6477023,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFpnC4Wh4leNpS6qH+VcuSqL/ZVRDneY9HkJAtIPHT9mAiEApCUaFhBoGiHPjCxD6jDkIxcFG0iz3AW8unIbtgq+oEk="}]}},{"version":"0.5.3","date":{"ts":1730093836120,"rel":"5 months ago"},"dist":{"shasum":"47c04351458b040457977fb4b75c43c27fba3283","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.5.3.tgz","fileCount":37,"integrity":"sha512-UsF7eerLsVfid7iV1oXF80qXBwHNBeqSqfh/nPZgirRU1MACmSsj83EZKS2ViFHVfSGG6WIuXMGBP6KciXfYhA==","signatures":[{"sig":"MEQCIEYrpJulyuQyBkpV4ilM++A2lS0JHrikiaXDV/34RuUrAiAaNLeOi8dnFS2CTfLOtQGCq+6bEO6EQprSGdBaHFIPFw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6491549}},{"version":"0.5.2","date":{"ts":1719560523031,"rel":"9 months ago"},"dist":{"shasum":"a41883dc6ccc4666bdf156e92f35f3003fd3f6f0","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.5.2.tgz","fileCount":37,"integrity":"sha512-Zf2vUNjCw2vJsiVKhWXA9hCNHsn59AOSGa5jGP4tWrp/vTH9XrI4eG/65khuoAgrS83migj0Xv5/j6fUAz69Zw==","signatures":[{"sig":"MEQCID2uqmhXdN/+dWWqCWQcT9J8d9HbgYaNw9ym50ilguDpAiBGNemhmhUdUTmhpwF1FwTrwGjQypqBxdP9/32y4f0nMg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3428530}},{"version":"0.5.1","date":{"ts":1713338355392,"rel":"a year ago"},"dist":{"shasum":"3f55fa5222b0af5a5bb019f67092cdcd6a5f82e6","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.5.1.tgz","fileCount":37,"integrity":"sha512-O2kN8n2HpDWJ7Oji+oTMnhITrCndmrNvrHbGDwAIBydx+FWvLE/vrw4QwnRRMvSCa2AJrcP59Ryklxv30KfkWQ==","signatures":[{"sig":"MEUCIQDQ9JMKb3Y2PprQGro80tSdrNnEIDWEwuDRFnVF51oBeAIgRHgSrIrE8P32NMmojBPFc+FToCGdiBVl3pNmmQuPUCU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3422833}},{"version":"0.5.0","date":{"ts":1711773426267,"rel":"a year ago"},"dist":{"shasum":"f2982088c9fecb0cdfb917387f78a142f2cc3516","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.5.0.tgz","fileCount":151,"integrity":"sha512-fJ2wSl5fd4UWoWbnXpPVKRg2Uw6u4+o9RsBHb35tiaOajVxJ97LrKAtrCGi6E19GpgfQbAWRFvz/iDXe3XCjWQ==","signatures":[{"sig":"MEUCIEeMNatyUo1s9FETnPDiFeU/O2+ULGMilba3isTsMAJVAiEAlT8CqvCyQ/YcgGo8hb8cD2WRkRVvRjtKuW080iFqWXw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6787365}},{"version":"0.4.0","date":{"ts":1702537143448,"rel":"a year ago"},"dist":{"shasum":"2a581f0dd436379ec9f448cfab9e5a6a4c349d11","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.4.0.tgz","fileCount":143,"integrity":"sha512-dbV826TTehQIBIJjh8GDSbwn1Z6+cnkyNbRlpcpdBPH8mROD2zabIUKqWcw9WRdTjjUIm21K+OR4DXWlAyOVTQ==","signatures":[{"sig":"MEUCIFZU38ZYuxAOxvf9p5JzgilfzCpkBZXa+pHBbz8W6WbGAiEA5wMoiUKWszQslWVdK6NoscXiEmJFe+Jupjo+HP3qT3s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6823566}},{"version":"0.3.0","date":{"ts":1692346443008,"rel":"2 years ago"},"dist":{"shasum":"a8b97ba01065fc930de9a3f4dd4a05e862becc6c","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.3.0.tgz","fileCount":143,"integrity":"sha512-ZUcgUH12LN/F6nzN0cYd0F/rJaMLmXr0EHVTyYfaYmK55bdwE4338uue4UiVoRqHVqNW4KDUrJc49iGogHKeWA==","signatures":[{"sig":"MEYCIQCYQyVL8RVIkTUGuvCm6NQTWLbcyNsC0xxu16lx0j35zQIhAMXr4vJzRQcwfORfn35gEcmSn1bRXYrL4QHOErkY3VKH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6772797}},{"version":"0.2.6","date":{"ts":1686580096420,"rel":"2 years ago"},"dist":{"shasum":"9fad1c4a56b01430b407d454817f68bb6ace92b0","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.2.6.tgz","fileCount":143,"integrity":"sha512-NCUqEZSbsy7LVtKlUScd/eTst6djkWauLlzoIPVKCOxalEBdO8lrgNRIm4Xy68JNudNN5faqa2WA12X8m0BVhA==","signatures":[{"sig":"MEUCIDfiZcM5Aq5TylmklN2kZVaeZUBqjzSn4Z6RNIrBS+zzAiEA/PXwuvogQPRAp5KmKu3ClsMnFah1r4yCF07pZykfZ8I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6611872}},{"version":"0.2.5","date":{"ts":1686545096678,"rel":"2 years ago"},"dist":{"shasum":"66b9db31e08e4026b1577dd4bc7e9c40bc8ae986","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.2.5.tgz","fileCount":143,"integrity":"sha512-XWbukCG4mh6aS6E0M5Obl00ZRA7PK5MVuHFih7GDUiv445eWF7/JgycWb+SnLOGhrehr0vsI9HTQZ9h8VoUx0Q==","signatures":[{"sig":"MEYCIQDH70NsqvPywqJDHGOeQxoKiemOYpOvUXAY030UusJaaAIhAOZt5K/hAVup394UkPjP2+6K68ZH5KqCAnEi0LoQeJBz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6611872}},{"version":"0.2.4","date":{"ts":1682484564489,"rel":"2 years ago"},"dist":{"shasum":"b0649d4a8c13587b9a5a95afeae09c58a43c807c","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.2.4.tgz","fileCount":143,"integrity":"sha512-MjzaXcVPNzJIr0x0QzxaVn7j6N0fVjOKELISLrnihFCkoRjXx3fl/7KB1yGk6wqJ/wXRMAw4IHLOi0Ml7ovdyA==","signatures":[{"sig":"MEYCIQClFbw/t9H2DHpWXVYfdT2dGHGwn+XVmCJ1uh9pqu/5zwIhAJ/T8cRIDH/CEob2p+0g/1I/hjG3xPqdQUWgO1L6DHOy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5225172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSK1UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmru/Q//fCLTdrbtXuhPe5pN2/cvU1Q2bG+Pypr6q61WTMZeBQkyzYxU\r\nRORp2C15xFSSjfVyb0PhZ3Dkwt/ZzpTpTbJN4SBjY2TTagIWhvFP6uJtFNTI\r\n/5/GByez3mkuc2Hfe7twFFUzSpLu9oXE2rWZOGqCSwlcx4/nddQmlE8KI19x\r\n6ifzwlpGeyvwZlFap3/tWFuN0JvB8Lo8uGZKy9S4TT2zj2JsF96kO6Vl6yjZ\r\nBqussUu3YzUu9vfsfwklGHgSKm1A/Np40ZcMQpq83kyENnDzUDldjivi0FIK\r\n6Jhmqjd2W3a7rcSOZj9fFj77b72NcKW8Oef+DA7JutIw5nBtMvPVRZbXx2RM\r\nVXIBtpwKQFSROVHjNwYLNQNKWuHZMiVaFFuEdpTKPW5UXK8BINxefAMpC9Zp\r\nIEaHyfh1l6UEz0bsSpmsn88DYxepHzfonP8q9/Avj+gCCu2FCctxwFS/h5W8\r\nvdH9oUFg49iZt4pT9GQfl1aMOb+oLnuCZb0Y/iAQCxv8LbIOqdYg6QgpM3fq\r\nh3Hn41hGeJtX22HvZpzjuZJeZeqWyoOTgunxnLKxD6wnaZOimTRylN2ijFuJ\r\nl1X+/wbM9VuWGatSR26LI72SU/8ZSw7dQ3He2L3M+ffkd4dZ2/o/qpTGrTSS\r\ny1OpXT3n//RNnIj7uJYum4sVYb3Z+EM7kQU=\r\n=rIO/\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"0.2.3","date":{"ts":1682401161264,"rel":"2 years ago"},"dist":{"shasum":"3f8840b7bac4281a2ab50cb23389af706944056f","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.2.3.tgz","fileCount":139,"integrity":"sha512-jPK1GZ0Zgm5C+yw8GXL3aC30BW201R6YCeVNpRbWDHSv1f7HU9QH3SQsMMcS41W66N4mYNW1+Ys2bHBloigdjA==","signatures":[{"sig":"MEUCIHFExXjeU0ufIJrrKbEHNyFTeDvk5hyj3xPoqzC4aUJsAiEAh2lBJPR0RaVB2B0U/4PWzHWKirQhoSCRicivdpkrYPc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5180579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkR2eJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmph8A/+Ow7WqjT/jWoFVUJEma6dbQk4aA8xFapCQPwqre80IVHQenNk\r\nKgLp7reSo8bvEMIblhfGaPJuCi0Y5z3IBO7PT8e7ci3MdVZ6zbSUulbdVsId\r\nqoYsA3oZVOWtKYhFohI0M5W+hNoTtAKh4V6vehZh/U/0g0beLDrNBij/8gso\r\nb/TLT35tfw33wHWFmKkzlTTPPmxAHWc+AJLhazEh5OywnqMfd6eUVxXKW+Md\r\n9EVhyDYBcqvLOqSaB6X2q6chFOtHz4LKZD9kWO1bmXf0JamC690aGvSVJD+0\r\ntFYZnnKAbzgz+shg1vScd9aTJgH1Jrlumx3dVGuoAYFwGs7Y+KSo8if8XDDA\r\n1Se6itWmboOPxKChvHjRS6SP9pkknTfGFJbXc9EA9D8jv+zmFK83PzFDuCLF\r\nYteKaoQrw+ktgb/uW3+mGGVYoA8iNwHWkvOwpqB84+eK1d+QuC/Sz5zQRYDk\r\nwYw82FjDXyMVem49zeE3RhNPw3gR7AQbPtf4rXgA11ND7iuInuFoTHWoK61z\r\npE0K/0bx+TPCpM1hmbpPxyiz+3AABMQRBrWGetJDJ8npqctAi/Ew9SftzX37\r\nhmNJyyDUnUTIjaAMuGb7vgUmMYQM6NFYSp1Q05wP+JxJJQx8SgNqeH0uoNXR\r\nMzCIh8OYIgVxZNFqwitQ9/vSR/xohhgu12Q=\r\n=om/i\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"0.2.2","date":{"ts":1679808142152,"rel":"2 years ago"},"dist":{"shasum":"1857ad9462a714086ed13f9316a448ef7dcae394","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.2.2.tgz","fileCount":139,"integrity":"sha512-4knGlJ+sg427PIuYRdfehxjJ/AcxxOT83T1wdr8ImmVo6gJd379zjJVQwN07XeMhI83m/9UqxEAbwPFWC6dtRQ==","signatures":[{"sig":"MEQCIDJxzs7fb9f5ZiDr4/rtVjXTaApYdwQyNaP27YlY+wWgAiBii3e1mc6sWzAtR96BJGIGplh2IsZ0wqW5vnRgEi1K3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5101192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkH9aOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoPCQ/5AV8kKfORbiDIw+hDqYwDK50OKswnikNmjJgHAsqda6MmWHoH\r\n27gLjiWyWbO2VvR/Hznrz0vWq9rtFYUCCVwpv7q/o0uhYxzdkrgtZIARgbXR\r\nj1SBfEFHrVJELBBXpj9X1QxjmgvAV/riynBM9w9JgfIdH/OcPKStT4e6twxY\r\noVe5Qe48r+TIfYBoCauUIY029+gA+Kt9hVEz3i23vwz6gIaBZkCbtgBfQyNS\r\nLn521Y04XmLb+Ad73aYlxCghG4BLYZAVKzCATAu330OCi/kIa/YczV8cu+jJ\r\nxSfbrbiIUAkQ6V+pyFh6EcIMTrRnPD5hIx2LVqveF+iIom9Bipp5vsrcYds7\r\n28w92hz3SPq+aNK9DVKTdceBFNxXm/SnrivvsMOdoL9K9sJt+ZhxL97Jwq9G\r\nv7Yq7I3oNWseAvu8d499gr50uXLz8nLQGCyfwgnjfioJ7/jS1wqSMhCurB8B\r\n3+FzfxSFO5yC9HHfymUlt/tdWsnJ2SF1qcJByVDm7f2BJVM2ndjN26r3tXCL\r\nv1xAntUQEfwq45VLgIULZiqXlGPWokMsJq4VeV4NYwNHSFDTmRIH74sWeLnK\r\nGWn+G98MCUwdswoV2kBld1I5TRveM/pJsvHydVeJcsoX4QRizxXpSh/AKsK+\r\nk7xlGOs2qPVegCm03Wmw+3iXlupaqE0eJOE=\r\n=GIF2\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"0.2.1","date":{"ts":1677826507011,"rel":"2 years ago"},"dist":{"shasum":"f20f9d325d4052820cdd69bd3441c30ca7564672","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.2.1.tgz","fileCount":63,"integrity":"sha512-aXn1cY+XHvgKpMYCD4oo4n9Zh1xGA2l4SB/9T9QMlqqpg06nBieB6ZdV/cbYrgMi6qmDE57bs/vD8YumcG4MKA==","signatures":[{"sig":"MEUCIQCbSVyROtWzcDDx0HJ7uSC8U5dfR3ZyaUCJLfRyDzeMggIgGaCUsWbQQaqcfwpFVH7rkCAUtLkCcFUIzvdZull0W5c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4148752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkAZnLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtlhAAn3k4Zcriu84ZpVsnlNq5qve7QDWIwSmR2zQAmC1MCyAKR6a7\r\nTySB3ZAHWg3RkMl9XzFxhn6/SToVCv+b3ml3l1Q6hDde573hCtJUhzEj6clW\r\nS4/LvRtuGwJIvzPihicIaiew70ZlShTMcQ0QKUxYyLeGfy+ZhnugEvdcj7A5\r\nGPwyJF5ABoIHxupwHlgfcmcAxudkjpUbkx90Spr1PvIA/L4BPlYZMWFBafLc\r\nbsZY7awwqPS4RXsdTChWkB1XAEwlc+/DZIa7n52RGRNApOPWn1SPZkECq104\r\n33SEGcNWyY7uOyY0I7dJpH2C210Pn0x+RpRfBXBUrsX1t4L2aQ7FaxqlgcEB\r\nucYcbebGObL8M0A07ADEZFFOLfT/5sB6leX9a1RN8XFXdenFdP2y7rrut2zF\r\ntlsZggZU1Rok7rT9d12ftCALk3aMD5RZ88mv9ER6LFJglj0Ei/O5BPI/3rFB\r\nY34y+b3e7Obn6JeCr6up7al9AIOQMYEd6T5mkhgbyVFXBnyAL6X8jhPPwa9P\r\nGnSCM0SYP2nsukvluDggtEjHqruU5S2CxaoA1UQgHfZuaL+Otl8qIZO1NPbZ\r\nyq4yhj7h3/yCqN09bXV9k5QS88tW7e9qqozlQqEp8rwJf4lToIqY7hNS79u9\r\nSg4ilEYlPsaMFhncyDvFsKReHtFZ8oSvk9M=\r\n=9el3\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"0.2.0","date":{"ts":1677472034461,"rel":"2 years ago"},"dist":{"shasum":"f521f5eb613ba665f30777fcc3b7165373c22987","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.2.0.tgz","fileCount":63,"integrity":"sha512-Vg2gJQ5z6ylxIlOJOZbCiH2gIuHczPKTy6AtMbbIyH613EuUzwJWyV76angWxtOualr7gMcT1IYq1ivs2x0+vw==","signatures":[{"sig":"MEQCIHr+c9y1BZBzB+PajDMDeRQYqz1QBN7Yix2LaQC8ZaHdAiBlalap6CUxSswXg/JSbUJ/6VCfvgvyd9uY8iPUmFGuFg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3982691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/DEiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBGw/+P4gD+6AcExB/w2cumS/i5Kco1QqxFbwhqKR9KmgWJMAevjDV\r\nb2hc9QbCkf4md6mq7nZlEBYv9JICm/Mn9l4jJ/3UiRe5rYY0vaCfH2q9jtcN\r\nn/BH7I7Ske/T8l9D1kPdTfUvRIMxjLCJq745VEMx/PR8pkbkr7UmMQjxj3MA\r\nTfNya/xt8B5Ec5F/FDFyYZFyhFbQWnlMJVxcO/JisWX4wttKdBtu0RcdXwA/\r\n53rWpxsE6iXns1GbXB7xwe7T+0HlO9KrbgW5ZQ0n5d8PHHEISdXN6pBgEduR\r\nzXTABKSeQH4v0tA/D79J5BlsiRATYCI5FvN/wt/tc3envvaVkTJLN0eaypJk\r\nPaWWxfjn9IBgPGDbRYCYAo06HVPiOhy3fLkm6fHNeE/pyR0HhTx7K8aqFgvl\r\nK0BkTk0p7+DLxooXhfVIwglxspP5jgM/a5AgbtP5HJ9cMJpHlmH1HNPrUxkj\r\nmYAlSb0FCi0dMT52+8V4M4nweDjTM9wDKbX9IIv3FlkCFzRlPncdftX+fpEG\r\n3byjWPD3snmX0K4zl+1ybcUwasK/Qt1tNIm4sxIuAucYxapQkxAPj73J5Ey1\r\nUaOCbv+lYqZZoTd63ZYAYWCR2ZLYY//ahURz7CdLR1lxIy6XJ4eTu5IKZfhM\r\nYk6gnkK5cQ+q+7a4oT/gVBb2+bY7GZrnBSY=\r\n=fbtP\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"0.1.2","date":{"ts":1676704987562,"rel":"2 years ago"},"dist":{"shasum":"74cc6e8cf96a4583e74f50306e6d67f0f5eec2b1","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.1.2.tgz","fileCount":63,"integrity":"sha512-NCXzmG+HnkvyduMypWjMn1nZcQLMp3b2nZdt3RJuKZgRrcwCI2ZWcNt3XAfTEMiT+FbZx6htTs/JgWu3m0yZAw==","signatures":[{"sig":"MEYCIQCL8iVB3D1pR9UG2sxQEjkmTll23EIYSzOI7CfIyVKqIwIhAIyHonVlCOpNx0N11XaJujQIEOedfNFEsNvhDAEk6a65","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3260698,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8HzbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmprtRAAg8RVpyIF/rEGLT+xrHl65nOmdT3UqlCdO44vShapH5gn/rrQ\r\n5Yzbay9XK9eRCiQIPAPWoBZD9lNioCHayIcGPXviJJO6VOQZMs+Ryrkuw0C5\r\n3sAwW6NVtWeWm+ZzeFUz0k8x4bchZKDCYaeO7cG2wVDvzhazE1h6yE2ecKvY\r\nwXooWDPCy97bir11LD1und3YU3Smj8D7ki4bMzQNkHOaj4w1g++LIN9LjAqx\r\nN5fROKl6yZ1mF4ZfwFxRcGHFfyiYrrtmnaGo8PJwz0hDqUmVrr8ODGkCtPBA\r\nHXrEZ/qp/t6auyknWTd6X7JbVDkRwqZkQkkbvCtXByj+9HLpB6c+27q7jSdj\r\nBmtAhOSdY2CSfTcOHtJueVXgusLceK0mlSkGDpgPq+qmX2BhCZeIECjXadTw\r\nhwrf41MkBrtLWgt9NxBMlMCJZUScxlGZ2PEKySakhdWiGzoTKdVupk6EZ8Pb\r\nXmA8D1Ue9wcwcMFjM/JSY6GhAmCVOv3fpJEkrp5gGoskRF241IhOQM0b2sJ3\r\nyoL+btidphJTjrmn8CttmvT7BZaXuIQo/Y4UDGuFXF0sSAs26z5X1RyYrU8a\r\n/DBQ6xgGyNcqmVF/xif5/i/CmrF8wmJANNbuChLxGwc/wfl4O6MxoBlby3PD\r\nH3S35H/y1riXPK0bOxrWLmaKmDbvFKwTbak=\r\n=UmEi\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"0.1.1","date":{"ts":1675667772977,"rel":"2 years ago"},"dist":{"shasum":"abe871726756b341e80776e03e697d317abff470","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.1.1.tgz","fileCount":138,"integrity":"sha512-NvR4toK+8qGIFvRTB3ZodLhwzSvtoNUcb+bfbY1+vBy1IkbKg9fcZ/5cWQrgL9bwfrQ8kroNbbRPV6mjczB+jw==","signatures":[{"sig":"MEUCIQCUAwR0bs5K6NOkLJyJPU4EXypVW7RtjMCKitRXzIIXQQIgEUrQTCqBlc8akW8icPM7IfCRBsPH9/ro5BIIgSF4fZ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2664792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4Kk9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYcg//WT5eqdfMpP4WyqsYUDHDBR4T2XO4hcOtUMFZXYdUYqaFYqXK\r\nt28ABfzcPIsEjZZ2oq5pfPzVc47g6Zw++mBQfce/6mh6tbAzfrN9fuWV1wo7\r\naK/LAo/czDCQC8Xw+0RnbmlntQwSSAD/9E9Amun2Mfo8QcHf4N81/5HUC4M3\r\nVnW/G9Ug0G3ndpLyMYp2L0tpqKhWxwnPVGS+DtDb+e4JLCiYXKyswNFMfo/d\r\n5zsdqpVJ1J40gv4fySPH7ncWNtDz0nLdJLZyVZYe1alaLkj8II13cdfo8uvb\r\nSl0VtYAcZ9cQe0S0b9kHL2uxRHijCc54r9bFvRg9qGKCBOi5H9nSOPWIJMp1\r\nxNNqUTCHA/7dX+2XGREEC2WZtG9ixF3viYUXVzbKXKC9MQxcZ3/LSd+tNURq\r\n5+9g+BTNY4X3Z/72SgGK/imCiGS0T3TeAXhC161k1IwM2TMLCBwurxHDZG8g\r\nCVeuyp2+AkDktswo55N21WL6uTH+ASyElj0n3bdOm7QiulXQFajrmKXbGVR1\r\nAlMAvpnMfNIUvgOPi/JYp3h+GN4lRsrv3M+CJdmuElUv7AT8SteEOf5ShqH3\r\nwiLBVYbyBoeoPuzeAmjKm5KCX5MiztNl6rpfc/HJDguiMeuVqQUTL7oui3oa\r\ntfCLjE/cWV54AIfhgARmNyOXrRYCM7mf7ec=\r\n=+m+F\r\n-----END PGP SIGNATURE-----\r\n"}},{"version":"0.1.0","date":{"ts":1674375049255,"rel":"2 years ago"},"dist":{"shasum":"68e61a31ec9fb15c38d7fb088ac40300822433de","tarball":"https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.1.0.tgz","fileCount":152,"integrity":"sha512-O8tHb7bl7+QBaPNPQFaFONAxAdPhuAmE4rvjWKxb2VKikAl6h/WlNuXd0F/4jwZx57LdWflUokh8G2cWTRf24Q==","signatures":[{"sig":"MEQCICP3b+GFBDvyJCj0T9XKnnd7xAp0ou9SZpGk6SKy4HgAAiBaggwKNYBbve+8Kl7mm5/ufXk6NpJXqgzZC+vJjShRWw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2763742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjzO+JACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmeQ//Q5owG4muvpSL2uQfEkLfqQJHraMzjJulFs7U3SH70deI3GVs\r\nZ1WdFv2K1EgZ2Z/Q1LTOySXIslUBx54f0tCsYzA899IxUSX3WPSsk9/8pRW1\r\nNs3HpFfuac2BxuL+T72ctm6zoXeuKukuGzHjubGZ8pvZbXQOmtuquUB3uTGq\r\nUYnN5dH8/Nt1nUVCZ2tQXbIgC/r0CMQSEBkxYgT4KGjj+3nwqx+5QZ+BKO2H\r\nQq8R0ux+9o6JTPzeYfz2nQH3o+VoDWO0lshoPRIExaquzUfrY3z97r58/RP7\r\nUwpecwgoffKudFfFWP179lNk+q7eDv0y9ATA7IzzcwSmflzM8RVMAdTW0arH\r\n2FaCpdYj9TWkaphmXRKkajYK9LqKBSewDThYdCMlUNUTdJgdq+3kUH3cIZCq\r\npgoI0quN/BiWz5ysScjnGLQ+UX8rHFN4X+7RreQ/VPDktGryG0s+ZwfP2y9b\r\nMiAKgatg5Z022pLdQnY0btw671wdEVHPOJ5BXMIrRX1Nuln9aTTvDGb4bDuD\r\nZCN+0PKbkiNWj4eSGv+0pZqHN7udqp4Uyw03ZYHb6EAiH1frTKadVKhXbyX3\r\nZUvq3l+567nceluaTZUzuuzYbBhefnIU4JKJbC9WgJGdhKkniXKzdI/X6wz2\r\n771GLcvnJFPVLSGW10BVIyK7FxRPvkv9qNo=\r\n=Ue6F\r\n-----END PGP SIGNATURE-----\r\n"}}],"deprecations":[]},"packageVersion":{"author":{"name":"NevWare21 Solutions LLC","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9hYjdlNjFmNzMwZjA3MGY3M2U5MGFiMTQwZGU0ZGE3Yj9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.KDJdae0sMLQpMhMcsSrgINY3-_zclzeaQM4HNWvYKqQ","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9hYjdlNjFmNzMwZjA3MGY3M2U5MGFiMTQwZGU0ZGE3Yj9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.qMXIWkAVLvE8LHTfpPowtFAL_5QelGkzakMLLbXrzLU","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9hYjdlNjFmNzMwZjA3MGY3M2U5MGFiMTQwZGU0ZGE3Yj9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.60fXIY4buKaapN_PsW2UbKjFYQDF10N1Zs6ZKG9Jvi0"}},"description":"support for asynchronous development with a Promise based task Scheduler, several different Promise implementations (synchronous, idle, asynchronous and native runtime wrappers), await helpers, and aliases all built and tested using TypeScript.","homepage":"https://github.com/nevware21/ts-async","repository":"https://github.com/nevware21/ts-async","keywords":["typescript","javascript","es5","promise","es6.promise","async","asynchronous","async promise","asynchronous promise","sync","synchronous","sync promise","synchronous promise","idle","idle promise","requestIdleCallback","minification","browser","promise polyfill","scheduler","task scheduler"],"dependencies":{"@nevware21/ts-utils":"\u003e= 0.11.6 \u003c 2.x"},"devDependencies":{"@nevware21/ts-preproc":"^0.1.3","@microsoft/api-extractor":"^7.48.1","@istanbuljs/nyc-config-typescript":"^1.0.2","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.0.1","@rollup/plugin-strip":"^3.0.2","@rollup/plugin-typescript":"^12.1.1","@types/chai":"^4.3.1","@types/mocha":"^10.0.1","@types/sinon":"^17.0.3","chai":"4.3.10","chromium":"^3.0.3","cross-env":"^7.0.3","grunt":"^1.5.3","grunt-cli":"^1.4.3","karma":"^6.3.20","karma-chrome-launcher":"^3.1.1","karma-coverage-istanbul-reporter":"^3.0.3","karma-mocha":"^2.0.1","karma-mocha-webworker":"^1.3.0","karma-rollup-preprocessor":"^7.0.8","karma-spec-reporter":"^0.0.36","karma-typescript":"^5.5.3","karma-coverage":"^2.2.0","mocha":"^10.0.0","nyc":"^17.1.0","puppeteer":"^23.4.0","rollup":"^4.26.0","rollup-plugin-minify-es":"^1.1.1","rollup-plugin-istanbul":"^5.0.0","rollup-plugin-cleanup":"^3.2.1","rollup-plugin-sourcemaps":"^0.6.3","sinon":"^15.0.0","ts-mocha":"^10.0.0","typedoc":"^0.26.2","typescript":"^4.9.5","uglify-js":"^3.15.5","copyfiles":"^2.4.1"},"maintainers":[{"name":"nev21","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci8xMjNmNzg4NzY0NzQ1MGY0ZDQ4NTgyNDgxNDkzMDE1Mj9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.cMCgLW2rZP8A__SyrXwdbyxsAdCrDaDbnVZBn9DYq1w","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci8xMjNmNzg4NzY0NzQ1MGY0ZDQ4NTgyNDgxNDkzMDE1Mj9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.53u4FzVKQVCIHsVFhl1PPDNIxHsYrXpXIVp6g2bnN9Y","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci8xMjNmNzg4NzY0NzQ1MGY0ZDQ4NTgyNDgxNDkzMDE1Mj9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.c0vtZcTS_hiDNsiI9oNxUKRVwIvmofGLEphRtcwGmss"}},{"name":"nevware21bot","avatars":{"small":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kNWU0NGZmZmMyMzllNWZjNWFjMjdkM2NmMzhlMDMxMD9zaXplPTUwJmRlZmF1bHQ9cmV0cm8ifQ.1GX6GKHCA_mAozEVMkBqbrQS9HvrbtR6nDxifFj67uw","medium":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kNWU0NGZmZmMyMzllNWZjNWFjMjdkM2NmMzhlMDMxMD9zaXplPTEwMCZkZWZhdWx0PXJldHJvIn0.dtHN28NE6qNYf3QuGx8jwxHuVFN2dAayIFJFI8oACOA","large":"/npm-avatar/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdmF0YXJVUkwiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kNWU0NGZmZmMyMzllNWZjNWFjMjdkM2NmMzhlMDMxMD9zaXplPTQ5NiZkZWZhdWx0PXJldHJvIn0.89Wo7mk9ldvktW4FSH-eU6fVXGTd20l2mXMhM535mLM"}}],"name":"@nevware21/ts-async","license":"MIT","version":"0.5.4","versions":[],"deprecations":[],"types":"dist/types/ts-async.d.ts"},"packageUrl":"/package/@nevware21/ts-async","packageLinkingCallToActionHref":null,"package":"@nevware21/ts-async","linkingAllowedForPackage":false,"isStarred":false,"ghapi":"https://api.github.com/repos/nevware21/ts-async","downloads":[{"downloads":186278,"label":"2024-03-31 to 2024-04-06"},{"downloads":197886,"label":"2024-04-07 to 2024-04-13"},{"downloads":211180,"label":"2024-04-14 to 2024-04-20"},{"downloads":218986,"label":"2024-04-21 to 2024-04-27"},{"downloads":191478,"label":"2024-04-28 to 2024-05-04"},{"downloads":198036,"label":"2024-05-05 to 2024-05-11"},{"downloads":223302,"label":"2024-05-12 to 2024-05-18"},{"downloads":214469,"label":"2024-05-19 to 2024-05-25"},{"downloads":216850,"label":"2024-05-26 to 2024-06-01"},{"downloads":229455,"label":"2024-06-02 to 2024-06-08"},{"downloads":252385,"label":"2024-06-09 to 2024-06-15"},{"downloads":247002,"label":"2024-06-16 to 2024-06-22"},{"downloads":261530,"label":"2024-06-23 to 2024-06-29"},{"downloads":246656,"label":"2024-06-30 to 2024-07-06"},{"downloads":263104,"label":"2024-07-07 to 2024-07-13"},{"downloads":263290,"label":"2024-07-14 to 2024-07-20"},{"downloads":264254,"label":"2024-07-21 to 2024-07-27"},{"downloads":272166,"label":"2024-07-28 to 2024-08-03"},{"downloads":279863,"label":"2024-08-04 to 2024-08-10"},{"downloads":269575,"label":"2024-08-11 to 2024-08-17"},{"downloads":276450,"label":"2024-08-18 to 2024-08-24"},{"downloads":275035,"label":"2024-08-25 to 2024-08-31"},{"downloads":276974,"label":"2024-09-01 to 2024-09-07"},{"downloads":300325,"label":"2024-09-08 to 2024-09-14"},{"downloads":284470,"label":"2024-09-15 to 2024-09-21"},{"downloads":301244,"label":"2024-09-22 to 2024-09-28"},{"downloads":279875,"label":"2024-09-29 to 2024-10-05"},{"downloads":301566,"label":"2024-10-06 to 2024-10-12"},{"downloads":304304,"label":"2024-10-13 to 2024-10-19"},{"downloads":309392,"label":"2024-10-20 to 2024-10-26"},{"downloads":296743,"label":"2024-10-27 to 2024-11-02"},{"downloads":311460,"label":"2024-11-03 to 2024-11-09"},{"downloads":311011,"label":"2024-11-10 to 2024-11-16"},{"downloads":336936,"label":"2024-11-17 to 2024-11-23"},{"downloads":311235,"label":"2024-11-24 to 2024-11-30"},{"downloads":336030,"label":"2024-12-01 to 2024-12-07"},{"downloads":331547,"label":"2024-12-08 to 2024-12-14"},{"downloads":312688,"label":"2024-12-15 to 2024-12-21"},{"downloads":117744,"label":"2024-12-22 to 2024-12-28"},{"downloads":146227,"label":"2024-12-29 to 2025-01-04"},{"downloads":309920,"label":"2025-01-05 to 2025-01-11"},{"downloads":340902,"label":"2025-01-12 to 2025-01-18"},{"downloads":337668,"label":"2025-01-19 to 2025-01-25"},{"downloads":357401,"label":"2025-01-26 to 2025-02-01"},{"downloads":365017,"label":"2025-02-02 to 2025-02-08"},{"downloads":380747,"label":"2025-02-09 to 2025-02-15"},{"downloads":369383,"label":"2025-02-16 to 2025-02-22"},{"downloads":377310,"label":"2025-02-23 to 2025-03-01"},{"downloads":377080,"label":"2025-03-02 to 2025-03-08"},{"downloads":398619,"label":"2025-03-09 to 2025-03-15"},{"downloads":428192,"label":"2025-03-16 to 2025-03-22"},{"downloads":441718,"label":"2025-03-23 to 2025-03-29"}],"dependents":{"dependentsCount":15,"dependentsTruncated":["@microsoft/applicationinsights-teechannel-js","@microsoft/applicationinsights-web","@microsoft/applicationinsights-core-js","@microsoft/applicationinsights-channel-js","@microsoft/applicationinsights-dependencies-js","@microsoft/applicationinsights-web-basic","@microsoft/applicationinsights-cfgsync-js","@microsoft/applicationinsights-offlinechannel-js","@microsoft/applicationinsights-osplugin-js","@microsoft/1ds-core-js","@microsoft/1ds-post-js","@nevware21/grunt-ts-plugin","@nevware21/grunt-eslint-ts","@nevware21/tripwire","@nevware21/tripwire-chai"]},"capsule":{"name":"@nevware21/ts-async","description":"support for asynchronous development with a Promise based task Scheduler, several different Promise implementations (synchronous, idle, asynchronous and native runtime wrappers), await helpers, and aliases all built and tested using TypeScript.","maintainers":["nev21","nevware21bot"],"dist-tags":{"latest":"0.5.4"},"lastPublish":{"maintainer":"nevware21bot","time":"2024-12-15T07:59:09.072Z"},"types":{"typescript":{"bundled":"dist/types/ts-async.d.ts"}}},"canEditPackage":false},"chunks":{"commons":["commons.fd9511df0bca7b0494b0.js","commons.fd9511df0bca7b0494b0.js.map"],"styles":["styles.0c10d02ae8f02a124267.css","minicssextractbug.5e618e91899d8994a6c1.js","styles.0c10d02ae8f02a124267.css.map","minicssextractbug.5e618e91899d8994a6c1.js.map"],"acceptance/acceptance":["acceptance/acceptance.0c8e916d3849837f3761.js","acceptance/acceptance.0c8e916d3849837f3761.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.5bf81ef92b885c903994.js","audit-logs/actions/common/dot.5bf81ef92b885c903994.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.d5d0d5bcf3f7e4f5dbac.js","audit-logs/actions/orgAddUser.d5d0d5bcf3f7e4f5dbac.js.map"],"audit-logs/actions/orgCreateTeam":["audit-logs/actions/orgCreateTeam.f3c8638ae26a5432da0a.js","audit-logs/actions/orgCreateTeam.f3c8638ae26a5432da0a.js.map"],"audit-logs/actions/orgDeleteTeam":["audit-logs/actions/orgDeleteTeam.2073c01d7db1e005936d.js","audit-logs/actions/orgDeleteTeam.2073c01d7db1e005936d.js.map"],"audit-logs/actions/orgRemoveUser":["audit-logs/actions/orgRemoveUser.a463ae17c53c89864fb1.js","audit-logs/actions/orgRemoveUser.a463ae17c53c89864fb1.js.map"],"audit-logs/actions/packageAddDistTag":["audit-logs/actions/packageAddDistTag.b1b4e9ab0c219dfc5f65.js","audit-logs/actions/packageAddDistTag.b1b4e9ab0c219dfc5f65.js.map"],"audit-logs/actions/packageDeprecate":["audit-logs/actions/packageDeprecate.c12cc6f4799d190117e2.js","audit-logs/actions/packageDeprecate.c12cc6f4799d190117e2.js.map"],"audit-logs/actions/packagePublish":["audit-logs/actions/packagePublish.247947174088bf623eae.js","audit-logs/actions/packagePublish.247947174088bf623eae.js.map"],"audit-logs/actions/packageRemoveDistTag":["audit-logs/actions/packageRemoveDistTag.1465c1aa3e3e9e93c041.js","audit-logs/actions/packageRemoveDistTag.1465c1aa3e3e9e93c041.js.map"],"audit-logs/actions/packageUnpublish":["audit-logs/actions/packageUnpublish.0e83f1b81fef4e90ce82.js","audit-logs/actions/packageUnpublish.0e83f1b81fef4e90ce82.js.map"],"audit-logs/actions/packageUpdateAccess":["audit-logs/actions/packageUpdateAccess.1b0a7517cee5ffd6beab.js","audit-logs/actions/packageUpdateAccess.1b0a7517cee5ffd6beab.js.map"],"audit-logs/actions/teamAddPackage":["audit-logs/actions/teamAddPackage.20b541d7f7c95f1b337a.js","audit-logs/actions/teamAddPackage.20b541d7f7c95f1b337a.js.map"],"audit-logs/actions/teamAddUser":["audit-logs/actions/teamAddUser.49bf53d0bbd02dd1c213.js","audit-logs/actions/teamAddUser.49bf53d0bbd02dd1c213.js.map"],"audit-logs/actions/teamRemovePackage":["audit-logs/actions/teamRemovePackage.6a84c5be4cdcd2ab6abd.js","audit-logs/actions/teamRemovePackage.6a84c5be4cdcd2ab6abd.js.map"],"audit-logs/actions/teamRemoveUser":["audit-logs/actions/teamRemoveUser.26501999dfef91f14796.js","audit-logs/actions/teamRemoveUser.26501999dfef91f14796.js.map"],"audit-logs/actions/teamUpdatePackageAccess":["audit-logs/actions/teamUpdatePackageAccess.1aa40c3085010574a6b9.js","audit-logs/actions/teamUpdatePackageAccess.1aa40c3085010574a6b9.js.map"],"audit-logs/audit-logs":["audit-logs/audit-logs.ac10dbe638f6a5896569.js","audit-logs/audit-logs.ac10dbe638f6a5896569.js.map"],"audit-logs/audit-search-input":["audit-logs/audit-search-input.1f4c0979acfeeda2eabd.js","audit-logs/audit-search-input.1f4c0979acfeeda2eabd.js.map"],"audit-logs/list":["audit-logs/list.e423085a49a7ea95f88c.js","audit-logs/list.e423085a49a7ea95f88c.js.map"],"audit-logs/no-logs":["audit-logs/no-logs.097c43676219c095b9c7.js","audit-logs/no-logs.097c43676219c095b9c7.js.map"],"audit-logs/no-logs-with-query":["audit-logs/no-logs-with-query.37a7c9f6da8aace2dc93.js","audit-logs/no-logs-with-query.37a7c9f6da8aace2dc93.js.map"],"auth/account-recovery-message":["auth/account-recovery-message.0d506a438223b8c9a1ff.js","auth/account-recovery-message.0d506a438223b8c9a1ff.js.map"],"auth/authentication-successful":["auth/authentication-successful.4fd43328312cbfaa9ed1.js","auth/authentication-successful.4fd43328312cbfaa9ed1.js.map"],"auth/email-otp":["auth/email-otp.d3e77f241f5cd988e6a4.js","auth/email-otp.d3e77f241f5cd988e6a4.js.map"],"auth/escalate":["auth/escalate.c7b9840c3235c5b2c7e1.js","auth/escalate.c7b9840c3235c5b2c7e1.js.map"],"auth/forgot":["auth/forgot.e0c95ba83f1938bb4fdf.js","auth/forgot.e0c95ba83f1938bb4fdf.js.map"],"auth/forgot-sent":["auth/forgot-sent.f8f6d177f637a5a7e03c.js","auth/forgot-sent.f8f6d177f637a5a7e03c.js.map"],"auth/forgot-sent-anonymized":["auth/forgot-sent-anonymized.f64b98265e9a2b52d53e.js","auth/forgot-sent-anonymized.f64b98265e9a2b52d53e.js.map"],"auth/invite-signup":["auth/invite-signup.e9c4f23f0923194f8419.js","auth/invite-signup.e9c4f23f0923194f8419.js.map"],"auth/liminal-login-footer":["auth/liminal-login-footer.9595439ced5e1639b8c3.js","auth/liminal-login-footer.9595439ced5e1639b8c3.js.map"],"auth/login":["auth/login.c1901468282a54c91a73.js","auth/login.c1901468282a54c91a73.js.map"],"auth/otp":["auth/otp.c70f61c795b64ef188d9.js","auth/otp.c70f61c795b64ef188d9.js.map"],"auth/password":["auth/password.1afae512890ca4228d73.js","auth/password.1afae512890ca4228d73.js.map"],"auth/recovery-code":["auth/recovery-code.b9e64b492d94e406e8dd.js","auth/recovery-code.b9e64b492d94e406e8dd.js.map"],"auth/recovery-email-otp":["auth/recovery-email-otp.fd835adc44c5e1fda126.js","auth/recovery-email-otp.fd835adc44c5e1fda126.js.map"],"auth/reset-password":["auth/reset-password.95379d24efc544ee35a0.js","auth/reset-password.95379d24efc544ee35a0.js.map"],"auth/signup":["auth/signup.27059e13ca2a8e1530c0.js","auth/signup.27059e13ca2a8e1530c0.js.map"],"auth/test/email-otp-test":["auth/test/email-otp-test.ad70427a3af6c0bd3d4d.js","auth/test/email-otp-test.ad70427a3af6c0bd3d4d.js.map"],"auth/test/escalate-test":["auth/test/escalate-test.36b01807b28b0444b8a5.js","auth/test/escalate-test.36b01807b28b0444b8a5.js.map"],"auth/test/otp-test":["auth/test/otp-test.c508c5d7f1f1abc5f05d.js","auth/test/otp-test.c508c5d7f1f1abc5f05d.js.map"],"auth/test/webauthn-login-test":["auth/test/webauthn-login-test.709677f41d612aa8b50c.js","auth/test/webauthn-login-test.709677f41d612aa8b50c.js.map"],"auth/webauthn-cli-login":["auth/webauthn-cli-login.8f7cdef80bb5b00f7097.js","auth/webauthn-cli-login.8f7cdef80bb5b00f7097.js.map"],"auth/webauthn-login":["auth/webauthn-login.e8c5bfac5a15737713dc.js","auth/webauthn-login.e8c5bfac5a15737713dc.js.map"],"billing/delete-org":["billing/delete-org.bee6443fbd3125d790ab.js","billing/delete-org.bee6443fbd3125d790ab.js.map"],"billing/detail":["billing/detail.e9e7312e5a9db069d4a3.js","billing/detail.e9e7312e5a9db069d4a3.js.map"],"billing/downgrade":["billing/downgrade.fed0e01cb9b36e035a9a.js","billing/downgrade.fed0e01cb9b36e035a9a.js.map"],"billing/upgrade":["billing/upgrade.a20df18ca4bdf8b10d3e.js","billing/upgrade.a20df18ca4bdf8b10d3e.js.map"],"contact/contact":["contact/contact.2727d9d6a75a52950af9.js","contact/contact.2727d9d6a75a52950af9.js.map"],"contact/recovery-support-v1":["contact/recovery-support-v1.9f9be9d2ef339a72ffd8.js","contact/recovery-support-v1.9f9be9d2ef339a72ffd8.js.map"],"contact/recovery-support-v2":["contact/recovery-support-v2.a8d4e18d056908323cfd.js","contact/recovery-support-v2.a8d4e18d056908323cfd.js.map"],"contact/sidebar":["contact/sidebar.57617cbe0ed84c53393c.js","contact/sidebar.57617cbe0ed84c53393c.js.map"],"debug/badstatus":["debug/badstatus.72faa169acea19f432b4.js","debug/badstatus.72faa169acea19f432b4.js.map"],"debug/detail":["debug/detail.fae59735003e3d7542b5.js","debug/detail.fae59735003e3d7542b5.js.map"],"debug/failcomponent":["debug/failcomponent.4746b7ac0423c3269442.js","debug/failcomponent.4746b7ac0423c3269442.js.map"],"dev/choose-template":["dev/choose-template.a2580c31bf387413c937.js","dev/choose-template.a2580c31bf387413c937.js.map"],"dsr/dsr-export":["dsr/dsr-export.3c7ba9cb22442e59c4ca.js","dsr/dsr-export.3c7ba9cb22442e59c4ca.js.map"],"egg/egg":["egg/egg.b70ddd833435e1495752.js","egg/egg.b70ddd833435e1495752.js.map"],"errors/bad-request":["errors/bad-request.f32f3e2efea80a0b4071.js","errors/bad-request.f32f3e2efea80a0b4071.js.map"],"errors/not-found":["errors/not-found.d7035efefa4c0dd5d49c.js","errors/not-found.d7035efefa4c0dd5d49c.js.map"],"errors/server":["errors/server.83cd3309633b81a1a32f.js","errors/server.83cd3309633b81a1a32f.js.map"],"errors/tea-pot":["errors/tea-pot.623e6725daa99d349263.js","errors/tea-pot.623e6725daa99d349263.js.map"],"errors/template":["errors/template.caa52f2f2472737f5482.js","errors/template.caa52f2f2472737f5482.js.map"],"flatpage/flatpage":["flatpage/flatpage.b2ea5de3a6147090e6c7.js","flatpage/flatpage.b2ea5de3a6147090e6c7.js.map"],"homepage/homepage":["homepage/homepage.9e1b974cb15a6641fa0f.js","homepage/homepage.9e1b974cb15a6641fa0f.js.map"],"homepage/homepage-logged-in":["homepage/homepage-logged-in.67378c34a99d72aa5f54.js","homepage/homepage-logged-in.67378c34a99d72aa5f54.js.map"],"orgs/create":["orgs/create.35e743f3289f151e7159.js","orgs/create.35e743f3289f151e7159.js.map"],"orgs/detail":["orgs/detail.36f2d11e1fa381258e8c.js","orgs/detail.36f2d11e1fa381258e8c.js.map"],"orgs/invite":["orgs/invite.21441daa26598371f888.js","orgs/invite.21441daa26598371f888.js.map"],"orgs/tfa-enforced":["orgs/tfa-enforced.a9d8d58eac4cddca6bdf.js","orgs/tfa-enforced.a9d8d58eac4cddca6bdf.js.map"],"orgs/upgrade":["orgs/upgrade.d97a234f7f7cd44b8055.js","orgs/upgrade.d97a234f7f7cd44b8055.js.map"],"package-list/package-list":["package-list/package-list.034909898b77fb576afd.js","package-list/package-list.034909898b77fb576afd.js.map"],"package/delete-package":["package/delete-package.b9f1dc1e9fbe50b975b4.js","package/delete-package.b9f1dc1e9fbe50b975b4.js.map"],"package/deprecate-package":["package/deprecate-package.6127c35f556db4223388.js","package/deprecate-package.6127c35f556db4223388.js.map"],"package/error-message-package":["package/error-message-package.e34888da29ef7ec0d9fd.js","package/error-message-package.e34888da29ef7ec0d9fd.js.map"],"package/package":["package/package.0c9f7028bc3c021cbedb.js","package/package.0c9f7028bc3c021cbedb.js.map"],"profile/profile":["profile/profile.5946d4afea98577b9e24.js","profile/profile.5946d4afea98577b9e24.js.map"],"recovery-codes/show":["recovery-codes/show.47474dbc1dde6b02050d.js","recovery-codes/show.47474dbc1dde6b02050d.js.map"],"search/search":["search/search.d82def087c954e1d79bf.js","search/search.d82def087c954e1d79bf.js.map"],"searchv2/search":["searchv2/search.402bde8adf63eafe1b60.js","searchv2/search.402bde8adf63eafe1b60.js.map"],"settings/change-password":["settings/change-password.f45d0ffa8727d53499dc.js","settings/change-password.f45d0ffa8727d53499dc.js.map"],"settings/delete-account":["settings/delete-account.ebed0468fa223bc30e08.js","settings/delete-account.ebed0468fa223bc30e08.js.map"],"settings/email":["settings/email.8fe3fd03f268f4d92384.js","settings/email.8fe3fd03f268f4d92384.js.map"],"settings/memberships":["settings/memberships.ebac238ad8590faa690a.js","settings/memberships.ebac238ad8590faa690a.js.map"],"settings/packages":["settings/packages.4eab4b663ff7af33b4a6.js","settings/packages.4eab4b663ff7af33b4a6.js.map"],"settings/profile":["settings/profile.8e0121b18b9afc8bfd3b.js","settings/profile.8e0121b18b9afc8bfd3b.js.map"],"teams/create":["teams/create.e89c1cc55739d4c8975f.js","teams/create.e89c1cc55739d4c8975f.js.map"],"teams/detail":["teams/detail.19afadb427e87407902b.js","teams/detail.19afadb427e87407902b.js.map"],"teams/list":["teams/list.8757be431b97bd689879.js","teams/list.8757be431b97bd689879.js.map"],"teams/packages":["teams/packages.6718cc7173f9436b8c22.js","teams/packages.6718cc7173f9436b8c22.js.map"],"teams/users":["teams/users.63b0d4f8c4d207a88469.js","teams/users.63b0d4f8c4d207a88469.js.map"],"tfa/additional-options":["tfa/additional-options.dd68ff58e44b096759c8.js","tfa/additional-options.dd68ff58e44b096759c8.js.map"],"tfa/enable":["tfa/enable.43c3731ae666c38a6667.js","tfa/enable.43c3731ae666c38a6667.js.map"],"tfa/list":["tfa/list.1ba77aefa7c17f9f8a40.js","tfa/list.1ba77aefa7c17f9f8a40.js.map"],"tfa/recovery-codes":["tfa/recovery-codes.3c546c80a07d8e31dad9.js","tfa/recovery-codes.3c546c80a07d8e31dad9.js.map"],"tfa/security-key-list":["tfa/security-key-list.bcfccd633042d321919f.js","tfa/security-key-list.bcfccd633042d321919f.js.map"],"tfa/showTFAQRCode":["tfa/showTFAQRCode.b884b4d6aa949f8f29c6.js","tfa/showTFAQRCode.b884b4d6aa949f8f29c6.js.map"],"tfa/showTFASuccess":["tfa/showTFASuccess.7b81db9fe5441cdb0b7d.js","tfa/showTFASuccess.7b81db9fe5441cdb0b7d.js.map"],"tfa/tfa-disable":["tfa/tfa-disable.a2a4f52d2f312c55ee42.js","tfa/tfa-disable.a2a4f52d2f312c55ee42.js.map"],"tfa/tfa-mode-selection":["tfa/tfa-mode-selection.c0b558aeb7d5e69222d9.js","tfa/tfa-mode-selection.c0b558aeb7d5e69222d9.js.map"],"tfa/tfa-password-entry":["tfa/tfa-password-entry.f23b5fab15025214edeb.js","tfa/tfa-password-entry.f23b5fab15025214edeb.js.map"],"tfa/totp":["tfa/totp.4473f4361bb7dfa0ddbd.js","tfa/totp.4473f4361bb7dfa0ddbd.js.map"],"tokens/create":["tokens/create.a8fdc39d20223a4cfe51.js","tokens/create.a8fdc39d20223a4cfe51.js.map"],"tokens/create-gat":["tokens/create-gat.f033a4d16e4ab9ce1de7.js","tokens/create-gat.f033a4d16e4ab9ce1de7.js.map"],"tokens/gat-details":["tokens/gat-details.72271bf6509b02b4f38e.js","tokens/gat-details.72271bf6509b02b4f38e.js.map"],"tokens/gat/allowed-ip-ranges-input":["tokens/gat/allowed-ip-ranges-input.96415ab2996ee209afd4.js","tokens/gat/allowed-ip-ranges-input.96415ab2996ee209afd4.js.map"],"tokens/gat/constants":["tokens/gat/constants.8a392a2d499d6b3ed1cd.js","tokens/gat/constants.8a392a2d499d6b3ed1cd.js.map"],"tokens/gat/divider":["tokens/gat/divider.7007918eace69a2f5577.js","tokens/gat/divider.7007918eace69a2f5577.js.map"],"tokens/gat/expiration-days-input":["tokens/gat/expiration-days-input.9b5f33b7a37c9fae89e2.js","tokens/gat/expiration-days-input.9b5f33b7a37c9fae89e2.js.map"],"tokens/gat/gat-expiration":["tokens/gat/gat-expiration.6c8a78e4492c422ce771.js","tokens/gat/gat-expiration.6c8a78e4492c422ce771.js.map"],"tokens/gat/gat-input":["tokens/gat/gat-input.0a9d6c1b3711db824841.js","tokens/gat/gat-input.0a9d6c1b3711db824841.js.map"],"tokens/gat/organizations-input":["tokens/gat/organizations-input.66af89af72951db1b82f.js","tokens/gat/organizations-input.66af89af72951db1b82f.js.map"],"tokens/gat/organizations-section":["tokens/gat/organizations-section.c0dbb6da2749bb25765b.js","tokens/gat/organizations-section.c0dbb6da2749bb25765b.js.map"],"tokens/gat/packages-and-scopes-input":["tokens/gat/packages-and-scopes-input.e11017d4287762ad8f4e.js","tokens/gat/packages-and-scopes-input.e11017d4287762ad8f4e.js.map"],"tokens/gat/packages-and-scopes-section":["tokens/gat/packages-and-scopes-section.f504706a85d62fd65ac6.js","tokens/gat/packages-and-scopes-section.f504706a85d62fd65ac6.js.map"],"tokens/gat/permissions-input":["tokens/gat/permissions-input.b553cc36608f73bd14b3.js","tokens/gat/permissions-input.b553cc36608f73bd14b3.js.map"],"tokens/gat/section":["tokens/gat/section.4d84e100709265d5335d.js","tokens/gat/section.4d84e100709265d5335d.js.map"],"tokens/gat/section-heading":["tokens/gat/section-heading.d6bc938ad37f09773d93.js","tokens/gat/section-heading.d6bc938ad37f09773d93.js.map"],"tokens/gat/selected-items":["tokens/gat/selected-items.d03d39150b7908ad6418.js","tokens/gat/selected-items.d03d39150b7908ad6418.js.map"],"tokens/gat/utils":["tokens/gat/utils.25178dd41dde2ae2134c.js","tokens/gat/utils.25178dd41dde2ae2134c.js.map"],"tokens/generate-token":["tokens/generate-token.a4af023c73d460b1b68d.js","tokens/generate-token.a4af023c73d460b1b68d.js.map"],"tokens/list":["tokens/list.7a91f8385c5a5b5afb20.js","tokens/list.7a91f8385c5a5b5afb20.js.map"],"vouchers/view":["vouchers/view.1a6f2bd03dc1fdc85f48.js","vouchers/view.1a6f2bd03dc1fdc85f48.js.map"]},"hash":"fd9511df0bca7b0494b0","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.fd9511df0bca7b0494b0.js"></script> <script crossorigin="anonymous" src="https://static-production.npmjs.com/minicssextractbug.5e618e91899d8994a6c1.js"></script> <script crossorigin="anonymous" src="https://static-production.npmjs.com/package/package.0c9f7028bc3c021cbedb.js"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10