(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.ItParallel = factory()}(typeof self !== 'undefined' ? self : this, function () { "use strict";var ItParallel=(()=>{var h=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var x=(t,r)=>{for(var n in r)h(t,n,{get:r[n],enumerable:!0})},C=(t,r,n,c)=>{if(r&&typeof r=="object"||typeof r=="function")for(let l of g(r))!A.call(t,l)&&l!==n&&h(t,l,{get:()=>r[l],enumerable:!(c=b(r,l))||c.enumerable});return t};var I=t=>C(h({},"__esModule",{value:!0}),t);var O={};x(O,{default:()=>y});function a(){let t={};return t.promise=new Promise((r,n)=>{t.resolve=r,t.reject=n}),t}var f=globalThis.CustomEvent??Event;async function*y(t,r={}){let n=r.concurrency??1/0;n<1&&(n=1/0);let c=r.ordered??!1,l=new EventTarget,o=[],s=a(),u=a(),w=!1,d,v=!1;l.addEventListener("task-complete",()=>{u.resolve()}),Promise.resolve().then(async()=>{try{for await(let e of t){if(o.length===n&&(s=a(),await s.promise),v)break;let i={done:!1};o.push(i),e().then(p=>{i.done=!0,i.ok=!0,i.value=p,l.dispatchEvent(new f("task-complete"))},p=>{i.done=!0,i.err=p,l.dispatchEvent(new f("task-complete"))})}w=!0,l.dispatchEvent(new f("task-complete"))}catch(e){d=e,l.dispatchEvent(new f("task-complete"))}});function m(){return c?o[0]?.done:!!o.find(e=>e.done)}function*k(){for(;o.length>0&&o[0].done;){let e=o[0];if(o.shift(),e.ok)yield e.value;else throw v=!0,s.resolve(),e.err;s.resolve()}}function*E(){for(;m();)for(let e=0;e