{"_id":"js-queue","_rev":"17-fc6059438d801353e855055a3ec336da","name":"js-queue","dist-tags":{"latest":"3.1.1"},"versions":{"0.0.1":{"name":"js-queue","version":"0.0.1","keywords":["queue","node","js","auto","run","execute","browser","react"],"author":{"name":"Brandon Nozaki Miller"},"license":"UNLICENSED","_id":"js-queue@0.0.1","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-queue#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"2adf11934177b33bb97285bcd771ba21e94caf36","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-0.0.1.tgz","integrity":"sha512-TANs7rssgNBZ91zym1dVN+5pzt5skJJgW8XMXs+g3MpRKkCxZgdn+vrnDU5mIyKEVjigI3L+WlmcLyi4DpoNig==","signatures":[{"sig":"MEUCIQClmKq/uSg5+TPDnpR3c+LeMmaP/yrU8kvL6ATxQtNPAQIgTkOiJMQxbfYgeoDWSV4y5oFkJ8y0v6ZD5wgHKfW26eM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"queue.js","_from":".","_shasum":"2adf11934177b33bb97285bcd771ba21e94caf36","gitHead":"be6afb02d1ad671db188e418ba85c5a91934f5f8","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"2.14.7","description":"Simple JS queue with auto run for node and browsers","directories":{},"_nodeVersion":"4.2.2"},"0.1.0":{"name":"js-queue","version":"0.1.0","keywords":["queue","node","js","auto","run","execute","browser","react"],"author":{"name":"Brandon Nozaki Miller"},"license":"UNLICENSED","_id":"js-queue@0.1.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-queue#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"b484489356670197e1ef01112342ea618ca6451f","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-0.1.0.tgz","integrity":"sha512-1coUgY8wPDNbSLagbWCuExUa1VzNuhb545WF2dhYhjC6r92mqIzumtX4J9W/BPbP4awVxwLla4zpOz+Sdnwk3g==","signatures":[{"sig":"MEUCIQD+1t+BSx12pwiuIIdOkMSbOdZ1RxQYcKp1lsBA5+yimAIgUQDl9jDyV1q7K2YgxBZj5/3EP3QUEg2ND/nI/yZSfjo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"queue.js","_from":".","_shasum":"b484489356670197e1ef01112342ea618ca6451f","gitHead":"de1d680a57df2aa794816053df15fab275570892","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"2.14.7","description":"Simple JS queue with auto run for node and browsers","directories":{},"_nodeVersion":"4.2.2"},"0.1.1":{"name":"js-queue","version":"0.1.1","keywords":["queue","node","js","auto","run","execute","browser","react"],"author":{"name":"Brandon Nozaki Miller"},"license":"DBAD","_id":"js-queue@0.1.1","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-queue#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"bc14a755b5c7e9544273a7232ccaaa6c29fde4ed","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-0.1.1.tgz","integrity":"sha512-pL++dESBRHtmgPk0FBnbNajg7LkcB1r2c3v+YvbSw3qOFU6kri0XyV3KkiTSe/Nes2HVYGbMD8KUeCQnVQcXTQ==","signatures":[{"sig":"MEUCIQDvHfvQiLV4+OouDY0IKneSKolORWQnXZYvBrMp8B+BMwIgPOEReQmTZGN6bke3CNL4ae6rPaRRWwEFZscdQTWG1ZY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"queue.js","_from":".","_shasum":"bc14a755b5c7e9544273a7232ccaaa6c29fde4ed","engines":{"node":">=0.13.0"},"gitHead":"0dd73622380ff6ff5076e5ce9102ba3becf0bfb1","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"2.14.7","description":"Simple JS queue with auto run for node and browsers","directories":{},"_nodeVersion":"4.2.2"},"0.1.2":{"name":"js-queue","version":"0.1.2","keywords":["queue","node","js","auto","run","execute","browser","react"],"author":{"name":"Brandon Nozaki Miller"},"license":"DBAD","_id":"js-queue@0.1.2","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-queue#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"d97831b477b0d4f70b1ca9cdc7d9e4db056cbd49","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-0.1.2.tgz","integrity":"sha512-EYzwR8olHZ9ut7XBxm/kiDjTgsfUV0VGVQpoC5H/r99kaQJ+wDgaCshGzBHUA40nQZBX637KOTySVXoqyfsCIg==","signatures":[{"sig":"MEUCIQDXkdFWCxbN9YJUC4PzMtCHuZnZ2f0OAl4dZEnGmAf/uAIgSix2zi46Z7eXMFCUoD6/4bZhDNI75RDO1TkxmOJjAno=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"queue.js","_from":".","_shasum":"d97831b477b0d4f70b1ca9cdc7d9e4db056cbd49","engines":{"node":">=1.0.0"},"gitHead":"192936e29ac020f010c7f843dfe1cd4fa3660e20","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"2.14.7","description":"Simple JS queue with auto run for node and browsers","directories":{},"_nodeVersion":"4.2.2"},"1.0.0":{"name":"js-queue","version":"1.0.0","keywords":["queue","node","js","auto","run","execute","browser","react"],"author":{"name":"Brandon Nozaki Miller"},"license":"DBAD","_id":"js-queue@1.0.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-queue#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"bab2e22621fef2b24a34b80ce02b726941c3ba00","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-1.0.0.tgz","integrity":"sha512-IaGvU1TVBAvrINBR6lBWaGDk36Jvh8oabY3vtGx0D5htfIQo7OSpEkcPIaXRjwPttCnOTk+Pgs5Q59TJl/Dv+Q==","signatures":[{"sig":"MEUCIATLYRpW2oLozD8dy9ie1ZQXfEzLRKTLC75Zxxd+ox67AiEAvtocoV49VOcZgqOu0oooAYLPWGgkvV4Sj5pt82FKFp0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"queue.js","_from":".","_shasum":"bab2e22621fef2b24a34b80ce02b726941c3ba00","engines":{"node":">=1.0.0"},"gitHead":"03fe326ebd73f0965c618595432396a32f6217a5","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"2.14.7","description":"Simple JS queue with auto run for node and browsers","directories":{},"_nodeVersion":"4.2.3"},"2.0.0":{"name":"js-queue","version":"2.0.0","keywords":["queue","node","js","auto","run","execute","browser","react"],"author":{"name":"Brandon Nozaki Miller"},"license":"DBAD","_id":"js-queue@2.0.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-queue#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"362213cf860f468f0125fc6c96abc1742531f948","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz","integrity":"sha512-SW0rTTG+TBPVD1Kp6HtnOr9kX3//EWA6qMlP2Y/WxbKsSNCBuJbWv3EDB5noKJBEkHYi2mDY+xqMn4Y0QHyjyg==","signatures":[{"sig":"MEUCIC4h30oX26UP3WMYghPo1BjAOkEuvB8KJ+BWE4U8IxJvAiEA81Q0QJ/IJd3QKhUSwkMvc26+3LQcHRmozix5xPCc9SA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"queue.js","_from":".","_shasum":"362213cf860f468f0125fc6c96abc1742531f948","engines":{"node":">=1.0.0"},"gitHead":"996afe7e4d5fc9d63c19d7fb3c4674d38495a1d9","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"3.5.2","description":"Simple JS queue with auto run for node and browsers","directories":{},"_nodeVersion":"4.2.6","dependencies":{"easy-stack":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/js-queue-2.0.0.tgz_1482204330012_0.6546877773944288","host":"packages-18-east.internal.npmjs.com"}},"2.0.1":{"name":"js-queue","version":"2.0.1","keywords":["queue","node","js","auto","run","execute","browser","react"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-queue@2.0.1","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-queue#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"dfd7901ba0b9e7895c0a2907f704638d9aadb3f8","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-2.0.1.tgz","fileCount":6,"integrity":"sha512-TjDrOuyiIKCA93SVXlh8UnDsDC7eSDWkS+q079NvtIP+w/hgO3CFsld/RGwguwU0AOtURW6ZqbCXYLfFH/O7/Q==","signatures":[{"sig":"MEYCIQDm45f/vOBxNPCUgCrSoaQewk6Ljr4sGS6zXRj/x0s2xAIhAJ8iXbmUgMLe6iQhlDIJXWxH1faIO2dTHy7c0QGRdN1z","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrFCOCRA9TVsSAnZWagAAL8gP/2vQSJbMEvyw5Xcsn2Fl\nJvyYOdvjWt8OrwzHuJcI/Js8zGLKMlkIS8xjiH5FGN3M8x+K5fUUvnI8U2YF\nrHSIljz7qPpgP1f30e0gTagv5cRqP92zDvpAtSzxCHXNh+fi0SGlybAnslCU\nN2T1C9CHioHbH0/Ex0ENZ6OVlnSEZilpiyeo5tfxOXajtD5fBwZsr0MZ9rIi\nhjXLM+n8hMexEUSnGQJnDsScktUUSQyhALZuRdNsViUd5YU7Ck4Um0sCTqql\n+odd3EIw6h7M88JCK0pHxtbvjDY5QX9zt2bE6o6vJAVU2MAS/Hs1nPqljUwH\nM/FB+5Iis4C+n8X+gUWSK73EWfjo9W8YttmInWw0e2vJVru6qznpkWS7E/Ng\nkz3ZL9/+wuyYuURb/8hCvjVEmEn6iKci/rfpPhOWO6jimgYozDXHC7gwReLP\ngzJWE70Xh3N45qAEqxGjveujMUJz2AhhXouu939L/mHUyGkT72V0tNCrW7C4\nnZ2h3IukjvnghxkWE9hjtHbAYJy2H+bIm4Ue3TjLYj3NW0qElPUv4kv7D9uC\nFFvhS4F2JgN6akDA9jS87cY3zFf6COMhUPum0qUsdyVooYY+4j1lrRp/rgTQ\nftQggxiYKUZVxa8fQHAUa+TB3yKrQQdmVTbVfmzKSxtZ3lewuiHeD/5GmoX8\nAlSB\r\n=nE4L\r\n-----END PGP SIGNATURE-----\r\n"},"main":"queue.js","engines":{"node":">=1.0.0"},"gitHead":"3d869f72b5099587d071b985736730a1609a7619","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"6.14.8","description":"Simple JS queue with auto run for node and browsers","directories":{},"_nodeVersion":"14.11.0","dependencies":{"easy-stack":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/js-queue_2.0.1_1605128334303_0.4894294637354657","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"js-queue","version":"2.0.2","keywords":["queue","node","js","auto","run","execute","browser","react"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-queue@2.0.2","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://github.com/RIAEvangelist/js-queue#readme","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"0be590338f903b36c73d33c31883a821412cd482","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-2.0.2.tgz","fileCount":6,"integrity":"sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==","signatures":[{"sig":"MEQCIGepuYV8Nl5NDP4g4as9UMioV/M9k5J9CEeEGMHDb5KSAiBzGd4khtyuxt6EDFbpdB3eqC5HSHhfnjaUbGctJpEJqw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrFOECRA9TVsSAnZWagAA4PMP/jJeS95sqvsuAZq9faOc\newjHC3F0tTEJDZqfmIWB4BxwTiItIkZBuTcBVmFYJr5oO3pzg1YcEQidIsJQ\n4A0tPZgXWeRf3znG+QlMmigJjfI+wLE7UtAf8FblqR9j+WQDTszdWnzV43Bg\nOXDsvPqp7vyNc7aXGFO3UBHnXk8xrVaAE3IhDeJ3pnRqBOWKWDk9iDNMPBr+\n0lmI8wzJeFl++WuM0v9euMqVdW6S7vw781AkUIVcin49e1FeIQ5654zILiYo\nkL6w3KWiqLtWHYgD+gT5Qr8O4LWTzIe3QJezWzeIAG6gA1L9JobDNa5SjaTv\nl3w8UHg/hjVNSor3V4yomL/BUCghiKiZdvKHolVd/b7+qA5jHItwyS1q9ZS0\nr9v/3bho10T03Nlm8RPPst1/llN9brB3IpN668IN/E3opLkndzkVaXvQNd8j\n5cqSPyzxlkdywiKn+vpyH7cAX/T3u+dKtUHvdLccs4o2uU0AnT0zh/MGJ9Eg\nucpzVLntxUxpUMmLD2gwHVIF28kpfP9m+KdNjMEbJg9Ay3VF1tfgBRWooGuV\n1vEJQRtOQRv7DKObR6+BzQ6ZYkgAob5pdLWJfA5HrCsLkLlUAKwCdmNKN+wF\nvSBopaBvxP+he8vM/k56CyddiO5taERT/ivwXTt1IEmAKUgoQZQUq7zChd/W\nz2yk\r\n=Qj/a\r\n-----END PGP SIGNATURE-----\r\n"},"main":"queue.js","engines":{"node":">=1.0.0"},"gitHead":"78b31b864b2b9db931911d605c1f68efecdd3b63","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"riaevangelist","email":"brandon@diginow.it"},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"6.14.8","description":"Simple JS queue with auto run for node and browsers","directories":{},"_nodeVersion":"14.11.0","dependencies":{"easy-stack":"^1.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/js-queue_2.0.2_1605129092526_0.14122412238015603","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"js-queue","version":"3.0.0","keywords":["queue","fifo","task-queue","flow-control","async","browser","node","esm","commonjs"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-queue@3.0.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://riaevangelist.github.io/js-queue/","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"36b6da74bc28a11324470d0094d59bbb7e79c418","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-3.0.0.tgz","fileCount":11,"integrity":"sha512-LrudN9nzY5MjsysnhKE/Tp0MO8M5BHPeaEwNVBzYyrIJir2AkbrhNpun8SWQo6XpHPPO2DVESRAg1a4VlF8/hw==","signatures":[{"sig":"MEUCIEtGDGKhvwDDeAcsdMmC1mMU5WZfvXNp8TwrdoStEiZ8AiEA2QZlgzF5v+xz2cIQBfAGth9ccpLWhtu7wv+b+lsIv5g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/js-queue@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1466578},"main":"./queue.cjs","type":"module","module":"./queue.js","browser":"./queue.js","engines":{"node":">=12.22.0"},"exports":{".":{"import":"./queue.js","default":"./queue.js","require":"./queue.cjs"},"./queue":{"import":"./queue.js","require":"./queue.cjs"},"./stack":{"import":"./stack.js","require":"./stack.cjs"},"./queue.js":{"import":"./queue.js","require":"./queue.cjs"},"./stack.js":{"import":"./stack.js","require":"./stack.cjs"},"./package.json":"./package.json","./queue-vanilla.js":"./queue-vanilla.js"},"gitHead":"4fdb2bf9e40d35f9d5c2524ed4c4b1c1bffdc0a9","scripts":{"test":"node ./scripts/test.js","check":"npm test && npm run coverage:node","start":"node ./scripts/serve.js","coverage":"vanilla-test coverage","test:core":"node ./scripts/test.js core","test:docs":"node ./scripts/test.js docs","test:legacy":"node ./scripts/test.js legacy","test:server":"node ./scripts/test.js server","test:package":"node ./scripts/test.js package","coverage:node":"vanilla-test coverage node","coverage:chrome":"vanilla-test coverage chrome"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b236f4be-1e04-444e-a7f8-92fa73c5581a"}},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"11.17.0","description":"A tiny FIFO task queue with explicit flow control for Node and browsers","directories":{},"sideEffects":["./queue-vanilla.js"],"_nodeVersion":"24.19.0","dependencies":{"easy-stack":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vanilla-test":"2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/js-queue_3.0.0_1786899085869_0.8101566725709264","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"js-queue","version":"3.1.0","keywords":["queue","fifo","task-queue","flow-control","async","browser","node","esm","commonjs"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","_id":"js-queue@3.1.0","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"homepage":"https://riaevangelist.github.io/js-queue/","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"dist":{"shasum":"6f6fc432c27b863470880fb86e21ca0a8ce9c5f0","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-3.1.0.tgz","fileCount":12,"integrity":"sha512-qENB7XiNpXyxg6132Bwz08uq8GQyaVhD53O41d1F45aCHbKD82bkgZYHWqBGsWggDy8KuY5mPzG7oDnUV7Mn8A==","signatures":[{"sig":"MEUCIQDno8T8MQ+3cqF7AiOUIyZRaMruoxfDDRSFeCjU9yyWTQIgLofXuNMm1FffnpqHm5IQkn7I7cqfaZ/nkB6rC466CmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/js-queue@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3003352},"main":"./queue.js","type":"module","module":"./queue.js","browser":"./queue.js","engines":{"node":">=22.13.0"},"exports":{".":{"import":"./queue.js","default":"./queue.js","require":"./queue.js"},"./queue":{"import":"./queue.js","require":"./queue.js"},"./stack":{"import":"./stack.js","require":"./stack.js"},"./queue.js":{"import":"./queue.js","require":"./queue.js"},"./stack.js":{"import":"./stack.js","require":"./stack.js"},"./package.json":"./package.json","./queue-vanilla.js":"./queue-vanilla.js"},"gitHead":"a988867aaa9db906add8a775da05aa2905cc38dc","scripts":{"test":"node ./scripts/test.js","check":"npm test && npm run coverage:node","start":"node ./scripts/serve.js","coverage":"vanilla-test coverage","benchmark":"node --expose-gc ./scripts/benchmark.js","test:core":"node ./scripts/test.js core","test:docs":"node ./scripts/test.js docs","test:unit":"node ./scripts/test.js unit","test:server":"node ./scripts/test.js server","test:package":"node ./scripts/test.js package","coverage:node":"vanilla-test coverage node","coverage:chrome":"vanilla-test coverage chrome","test:functional":"node ./scripts/test.js functional","test:playground":"node ./scripts/test.js playground","test:regression":"node ./scripts/test.js regression","test:integration":"node ./scripts/test.js integration"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b236f4be-1e04-444e-a7f8-92fa73c5581a"}},"repository":{"url":"git+https://github.com/RIAEvangelist/js-queue.git","type":"git"},"_npmVersion":"11.17.0","description":"A tiny FIFO task queue with explicit flow control for Node and browsers","directories":{},"sideEffects":["./queue-vanilla.js"],"_nodeVersion":"24.19.0","dependencies":{"easy-stack":"2.1.0"},"_hasShrinkwrap":false,"devDependencies":{"vanilla-test":"2.1.1"},"_npmOperationalInternal":{"tmp":"tmp/js-queue_3.1.0_1787370515700_0.284939573164942","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"js-queue","version":"3.1.1","description":"A tiny FIFO task queue with explicit flow control for Node and browsers","type":"module","main":"./queue.js","module":"./queue.js","browser":"./queue.js","exports":{".":{"import":"./queue.js","require":"./queue.js","default":"./queue.js"},"./queue":{"import":"./queue.js","require":"./queue.js"},"./queue.js":{"import":"./queue.js","require":"./queue.js"},"./queue-vanilla.js":"./queue-vanilla.js","./stack":{"import":"./stack.js","require":"./stack.js"},"./stack.js":{"import":"./stack.js","require":"./stack.js"},"./package.json":"./package.json"},"sideEffects":["./queue-vanilla.js"],"engines":{"node":">=22.13.0"},"scripts":{"test":"node ./scripts/test.js","test:unit":"node ./scripts/test.js unit","test:functional":"node ./scripts/test.js functional","test:behavioral":"node ./scripts/test.js behavioral","test:integration":"node ./scripts/test.js integration","test:regression":"node ./scripts/test.js regression","test:core":"node ./scripts/test.js core","test:playground":"node ./scripts/test.js playground","test:package":"node ./scripts/test.js package","test:consumer":"node ./scripts/test.js consumer","test:server":"node ./scripts/test.js server","test:docs":"node ./scripts/test.js docs","coverage":"vanilla-test coverage","coverage:node":"vanilla-test coverage node","coverage:chrome":"vanilla-test coverage chrome","benchmark":"node --expose-gc ./scripts/benchmark.js","start":"node ./scripts/serve.js","check":"npm test && npm run coverage:node"},"repository":{"type":"git","url":"git+https://github.com/RIAEvangelist/js-queue.git"},"keywords":["queue","fifo","task-queue","flow-control","async","browser","node","esm","commonjs"],"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"homepage":"https://riaevangelist.github.io/js-queue/","dependencies":{"easy-stack":"2.1.0"},"devDependencies":{"vanilla-test":"2.1.1"},"gitHead":"510d13a813ae933b9d8f906dddeedae539f71605","_id":"js-queue@3.1.1","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-7nIcfO025kJ9rlV9aB23CzogV7mHzReAMQO/R77f2eRZmZ60a2LUf3GFNxoazJU6T6nCsjFtGGExZIUIpUKl+w==","shasum":"c15564ce32ee4e8d0bd353824b9a33c1736a5af7","tarball":"https://registry.npmjs.org/js-queue/-/js-queue-3.1.1.tgz","fileCount":12,"unpackedSize":3007611,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/js-queue@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDz794wD9hDv847MyMfPQHmfxJbXwLaQwWw5cbDOF06ngIhAO8sqpkQKmoZUCXgEiIFmXJelqRJoE/oziAYqljbh9+l"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b236f4be-1e04-444e-a7f8-92fa73c5581a"}},"directories":{},"maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/js-queue_3.1.1_1787543304930_0.4530476336969167"},"_hasShrinkwrap":false}},"time":{"created":"2015-12-04T01:49:26.664Z","modified":"2026-08-24T03:48:25.442Z","0.0.1":"2015-12-04T01:49:26.664Z","0.1.0":"2015-12-04T19:57:03.009Z","0.1.1":"2015-12-04T20:21:54.349Z","0.1.2":"2015-12-04T22:33:06.466Z","1.0.0":"2016-01-06T16:10:04.784Z","2.0.0":"2016-12-20T03:25:31.842Z","2.0.1":"2020-11-11T20:58:54.531Z","2.0.2":"2020-11-11T21:11:32.629Z","3.0.0":"2026-08-16T16:51:26.101Z","3.1.0":"2026-08-22T03:48:35.944Z","3.1.1":"2026-08-24T03:48:25.150Z"},"bugs":{"url":"https://github.com/RIAEvangelist/js-queue/issues"},"author":{"name":"Brandon Nozaki Miller"},"license":"MIT","homepage":"https://riaevangelist.github.io/js-queue/","keywords":["queue","fifo","task-queue","flow-control","async","browser","node","esm","commonjs"],"repository":{"type":"git","url":"git+https://github.com/RIAEvangelist/js-queue.git"},"description":"A tiny FIFO task queue with explicit flow control for Node and browsers","maintainers":[{"name":"riaevangelist","email":"brandon@diginow.it"}],"readme":"![js-queue — explicit FIFO flow control for JavaScript](./assets/js-queue-header.png)\n\n# js-queue\n\nA tiny first-in-first-out task queue with explicit flow control. Add functions, let the queue start automatically, and call `this.next()` when each task is ready to release the next one.\n\n[Documentation](https://riaevangelist.github.io/js-queue/) · [Quick start](https://riaevangelist.github.io/js-queue/guide/) · [API](https://riaevangelist.github.io/js-queue/api/) · [Patterns](https://riaevangelist.github.io/js-queue/patterns/) · [Browser use](https://riaevangelist.github.io/js-queue/browser/) · [Examples](https://riaevangelist.github.io/js-queue/examples/) · [Playground](https://riaevangelist.github.io/js-queue/playground/) · [Performance](https://riaevangelist.github.io/js-queue/performance/) · [Testing](https://riaevangelist.github.io/js-queue/testing/)\n\n[![CI](https://github.com/RIAEvangelist/js-queue/actions/workflows/ci.yml/badge.svg)](https://github.com/RIAEvangelist/js-queue/actions/workflows/ci.yml)\n[![Pages](https://github.com/RIAEvangelist/js-queue/actions/workflows/pages.yml/badge.svg)](https://github.com/RIAEvangelist/js-queue/actions/workflows/pages.yml)\n[![npm version](https://img.shields.io/npm/v/js-queue.svg)](https://www.npmjs.com/package/js-queue)\n[![npm downloads](https://img.shields.io/npm/dm/js-queue.svg)](https://www.npmjs.com/package/js-queue)\n[![license](https://img.shields.io/github/license/RIAEvangelist/js-queue.svg)](./licence.md)\n\n## Install\n\n```sh\nnpm install js-queue\n```\n\nNative ES modules:\n\n```js\nimport Queue from 'js-queue';\n\nconst queue=new Queue;\n\nqueue.add(\n    function(){\n        console.log('first');\n        this.next();\n    },\n    function(){\n        console.log('second');\n        this.next();\n    }\n);\n```\n\nCommonJS remains supported:\n\n```js\nconst Queue=require('js-queue');\n```\n\n## Browser ESM: bundler or no bundler\n\n`js-queue` works with bundlers and without a bundler. Bundlers resolve the bare package imports normally. Native browser ESM uses a standard import map and runs the same JavaScript directly, with no build or transpilation step.\n\nFor a normal npm layout where `easy-stack` is hoisted, place this complete import map before the module script:\n\n```html\n<script type=\"importmap\">\n{\n  \"imports\": {\n    \"js-queue\": \"./node_modules/js-queue/queue.js\",\n    \"js-queue/\": \"./node_modules/js-queue/\",\n    \"js-queue/stack\": \"./node_modules/js-queue/stack.js\",\n    \"js-queue/stack.js\": \"./node_modules/js-queue/stack.js\",\n    \"easy-stack\": \"./node_modules/easy-stack/stack.js\"\n  }\n}\n</script>\n<script type=\"module\">\n  import Queue from 'js-queue';\n  import Stack from 'js-queue/stack';\n\n  const queue=new Queue;\n  const stack=new Stack;\n</script>\n```\n\nIf npm nests `easy-stack` because the application installs a conflicting root version, use this complete scoped map instead. Its scope preserves the dependency boundary that Node and bundlers apply to imports originating inside `js-queue`:\n\n```html\n<script type=\"importmap\">\n{\n  \"imports\": {\n    \"js-queue\": \"./node_modules/js-queue/queue.js\",\n    \"js-queue/\": \"./node_modules/js-queue/\",\n    \"js-queue/stack\": \"./node_modules/js-queue/stack.js\",\n    \"js-queue/stack.js\": \"./node_modules/js-queue/stack.js\",\n    \"easy-stack\": \"./node_modules/easy-stack/stack.js\"\n  },\n  \"scopes\": {\n    \"./node_modules/js-queue/\": {\n      \"easy-stack\": \"./node_modules/js-queue/node_modules/easy-stack/stack.js\"\n    }\n  }\n}\n</script>\n<script type=\"module\">\n  import Stack from 'js-queue/stack';\n\n  const stack=new Stack;\n</script>\n```\n\nEvery import-map URL is relative to the HTML document. Serve the application over HTTP(S), and configure that server to expose the mapped `node_modules` files. `file://` is not a supported loading path. See the [browser guide](https://riaevangelist.github.io/js-queue/browser/) for the classic-script option and live no-bundler examples.\n\n## The flow contract\n\n`js-queue` does not guess when a task is complete. A task releases the next item by calling `this.next()`—immediately, from a callback, or after an awaited operation.\n\n```js\nqueue.add(function(){\n    fetch('/work')\n        .then(handleResponse)\n        .finally(()=>this.next());\n});\n```\n\nThat explicit hand-off makes the same queue useful for synchronous steps, callback APIs, network work, connection gates, and manually controlled pipelines.\n\n## Performance\n\n**The fastest js-queue yet. Install it. Don’t rebuild it.**\n\n![Constructing 100,000 queues: js-queue 3.1.0 is 19.86 times faster than 3.0.0](./assets/benchmark-construct.svg)\n\n![Scheduling and draining 100,000 tasks: js-queue 3.1.0 is 1.41 times faster than 3.0.0](./assets/benchmark-tasks.svg)\n\nNode 24.18, 100,000 operations, median of 21 alternating samples. [Method and results](https://riaevangelist.github.io/js-queue/performance/). CI reruns the tagged comparison.\n\n## Public surface\n\n| Member | Type | Purpose |\n| --- | --- | --- |\n| `add(...tasks)` | method | Validate and append functions; auto-start when idle. |\n| `next()` | method | Run the next FIFO task when the queue is not stopped. |\n| `clear()` | method | Remove pending tasks and return the new empty array. |\n| `contents` | getter/setter | Read or replace the pending function array. |\n| `size` | getter | Number of pending tasks. |\n| `running` | getter | Whether a task currently owns the queue. |\n| `autoRun` | boolean | Start automatically after `add()`; defaults to `true`. |\n| `stop` | boolean | Hold execution without discarding pending work. |\n\nEvery task receives the queue as `this`. Invalid tasks are rejected before any item from the same `add()` call is appended. If a task throws synchronously, the queue returns to an idle, recoverable state and preserves the remaining work.\n\n## Entry points\n\n| Import | Format | Use |\n| --- | --- | --- |\n| `js-queue` | ESM or CommonJS | Conditional primary entry. |\n| `js-queue/queue.js` | ESM or CommonJS | Compatibility path to the queue. |\n| `js-queue/queue-vanilla.js` | classic browser script | Publishes `globalThis.Queue`. |\n| `js-queue/stack` | ESM or CommonJS | The modernized `easy-stack` 2.1 LIFO entry. |\n\nThe runtime supports Node.js 22.13 and newer. Native ESM and CommonJS both load the same synchronous source files; no duplicate Node build is shipped.\n\n## Test and coverage evidence\n\n**Tested with [vanilla-test](https://riaevangelist.github.io/vanilla-test/).** The repository has 102 focused checks organized into five non-overlapping layers: [Unit](https://riaevangelist.github.io/js-queue/testing/unit/), [Functional](https://riaevangelist.github.io/js-queue/testing/functional/), [Behavioral](https://riaevangelist.github.io/js-queue/testing/behavioral/), [Integration](https://riaevangelist.github.io/js-queue/testing/integration/), and [Regression](https://riaevangelist.github.io/js-queue/testing/regression/). Forty-two shared checks import the package by its bare name and run unchanged in Node and real Google Chrome; Chrome resolves those imports through the checked-in import-map configuration.\n\n<a href=\"https://riaevangelist.github.io/vanilla-test/\"><img src=\"./assets/vanilla-test-header.png\" width=\"520\" alt=\"vanilla-test — native JavaScript testing for Node.js and browsers\"></a>\n\n```sh\nnpm test\nnpm run test:unit\nnpm run test:functional\nnpm run test:behavioral\nnpm run test:integration\nnpm run test:regression\nnpm run test:consumer\nnpm run coverage\n```\n\nThe 10 Unit checks isolate API facts. The 30 Functional checks cover queue workflows and Playground behavior. The 9 Behavioral checks verify complete consumer outcomes across explicit hand-offs, gates, recovery policies, stale-reference isolation, independent queues, reprioritization, and native no-bundler loading. The 28 Integration checks cover interacting queue operations, package formats, a poisoned packed-consumer dependency conflict, benchmark evidence, stack compatibility, and local HTTP delivery. The 25 Regression checks protect validation, recovery, the no-WeakMap performance contract, import maps, documentation, artwork, and deployment wiring. Both native V8 collectors continue to enforce 100% statement, branch, function, and line coverage for the shipped ESM queue.\n\n[Node coverage report](https://riaevangelist.github.io/js-queue/reports/node/) · [Chrome coverage report](https://riaevangelist.github.io/js-queue/reports/chrome/)\n\n## Version 3.1\n\nVersion 3.1 replaces WeakMap lookups with private instance fields, shares one Node source between `import` and `require`, and moves the runtime floor to Node 22.13. Existing `require('js-queue')` and `require('js-queue/stack.js')` syntax remains supported on that Node floor; `queue-vanilla.js` remains available to current browsers with native private fields.\n\nRead the [migration guide](./MIGRATION.md) and [changelog](./CHANGELOG.md) before upgrading an application on Node versions older than 22.13.\n\n## License\n\n[MIT](./licence.md)\n","readmeFilename":"README.md","users":{"lexon":true,"rahulraghavankklm":true}}