{"_id":"it-queue","_rev":"4579406","name":"it-queue","description":"A queue implementation that can be iterated over","dist-tags":{"latest":"1.1.3"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"time":{"modified":"2026-04-10T15:54:48.000Z","created":"2025-06-01T09:53:28.632Z","1.1.3":"2026-04-10T15:32:15.142Z","1.1.2":"2026-04-10T12:38:30.363Z","1.1.1":"2025-12-12T11:43:18.245Z","1.1.0":"2025-06-01T11:18:53.666Z","1.0.0":"2025-06-01T10:30:12.545Z","0.0.0":"2025-06-01T09:53:28.632Z"},"users":{},"author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"repository":{"type":"git","url":"git+https://github.com/achingbrain/it.git"},"versions":{"1.1.3":{"name":"it-queue","version":"1.1.3","description":"A queue implementation that can be iterated over","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/it/tree/main/packages/it-queue#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/it.git"},"bugs":{"url":"https://github.com/achingbrain/it/issues"},"publishConfig":{"access":"public","provenance":true},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","module-sync":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"build":"aegir build","lint":"aegir lint","dep-check":"aegir dep-check","doc-check":"aegir doc-check","clean":"aegir clean","test":"aegir test","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:chrome-webworker":"aegir test -t webworker","test:firefox":"aegir test -t browser -- --browser firefox","test:firefox-webworker":"aegir test -t webworker -- --browser firefox","release":"aegir release"},"dependencies":{"abort-error":"^1.0.2","it-pushable":"^3.2.3","main-event":"^1.0.1","race-event":"^1.6.1","race-signal":"^2.0.0"},"devDependencies":{"@types/sinon":"^21.0.1","aegir":"^47.1.1","delay":"^7.0.0","it-all":"^3.0.0","sinon":"^21.1.0"},"gitHead":"4558872ec5cf171d3cb2474aa6cdc301a1a6e736","_id":"it-queue@1.1.3","_nodeVersion":"24.14.1","_npmVersion":"11.12.1","dist":{"shasum":"3d434f209b85c6bd2692d5cc03a1604c1f05415d","size":33894,"noattachment":false,"key":"/it-queue/-/it-queue-1.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/it-queue/download/it-queue-1.1.3.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0588d3dd-847b-4e9f-b241-402464ea758b"}},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/it-queue_1.1.3_1775835135013_0.6852428502977181"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-04-10T15:32:15.142Z","publish_time":1775835135142,"_source_registry_name":"default","_cnpm_publish_time":1775835135142},"1.1.2":{"name":"it-queue","version":"1.1.2","description":"A queue implementation that can be iterated over","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/it/tree/main/packages/it-queue#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/it.git"},"bugs":{"url":"https://github.com/achingbrain/it/issues"},"publishConfig":{"access":"public","provenance":true},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js","module-sync":"./src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"build":"aegir build","lint":"aegir lint","dep-check":"aegir dep-check","doc-check":"aegir doc-check","clean":"aegir clean","test":"aegir test","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:chrome-webworker":"aegir test -t webworker","test:firefox":"aegir test -t browser -- --browser firefox","test:firefox-webworker":"aegir test -t webworker -- --browser firefox","release":"aegir release"},"dependencies":{"abort-error":"^1.0.2","it-pushable":"^3.2.3","main-event":"^1.0.1","race-event":"^1.6.1","race-signal":"^2.0.0"},"devDependencies":{"@types/sinon":"^21.0.1","aegir":"^47.1.1","delay":"^7.0.0","it-all":"^3.0.0","sinon":"^21.1.0"},"gitHead":"1b4ad793aee4051e825d8e34f447bc90893e9122","_id":"it-queue@1.1.2","_nodeVersion":"24.14.1","_npmVersion":"11.12.1","dist":{"shasum":"aa0e1d4d46b2131cfdb2558b80552d44f57d897a","size":33721,"noattachment":false,"key":"/it-queue/-/it-queue-1.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/it-queue/download/it-queue-1.1.2.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0588d3dd-847b-4e9f-b241-402464ea758b"}},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/it-queue_1.1.2_1775824710229_0.7448672282761504"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-04-10T12:38:30.363Z","publish_time":1775824710363,"_source_registry_name":"default","_cnpm_publish_time":1775824710363},"1.1.1":{"name":"it-queue","version":"1.1.1","description":"A queue implementation that can be iterated over","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/it/tree/main/packages/it-queue#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/it.git"},"bugs":{"url":"https://github.com/achingbrain/it/issues"},"publishConfig":{"access":"public","provenance":true},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"build":"aegir build","lint":"aegir lint","dep-check":"aegir dep-check","doc-check":"aegir doc-check","clean":"aegir clean","test":"aegir test","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:chrome-webworker":"aegir test -t webworker","test:firefox":"aegir test -t browser -- --browser firefox","test:firefox-webworker":"aegir test -t webworker -- --browser firefox","release":"aegir release"},"dependencies":{"abort-error":"^1.0.1","it-pushable":"^3.2.3","main-event":"^1.0.0","race-event":"^1.3.0","race-signal":"^2.0.0"},"devDependencies":{"@types/sinon":"^21.0.0","aegir":"^47.0.16","delay":"^7.0.0","it-all":"^3.0.0","sinon":"^21.0.0"},"_id":"it-queue@1.1.1","gitHead":"bdc3872fbab95d23b113245f253a60f553b95371","_nodeVersion":"24.11.1","_npmVersion":"10.9.4","dist":{"shasum":"a3a7ea8eac519eb45d806992b9e228e12e22df2e","size":33711,"noattachment":false,"key":"/it-queue/-/it-queue-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/it-queue/download/it-queue-1.1.1.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/it-queue_1.1.1_1765539798102_0.5288612033834466"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-12T11:43:18.245Z","publish_time":1765539798245,"_source_registry_name":"default","_cnpm_publish_time":1765539798245},"1.1.0":{"name":"it-queue","version":"1.1.0","description":"A queue implementation that can be iterated over","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/it/tree/main/packages/it-queue#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/it.git"},"bugs":{"url":"https://github.com/achingbrain/it/issues"},"publishConfig":{"access":"public","provenance":true},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"build":"aegir build","lint":"aegir lint","dep-check":"aegir dep-check","doc-check":"aegir doc-check","clean":"aegir clean","test":"aegir test","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:chrome-webworker":"aegir test -t webworker","test:firefox":"aegir test -t browser -- --browser firefox","test:firefox-webworker":"aegir test -t webworker -- --browser firefox","release":"aegir release"},"dependencies":{"abort-error":"^1.0.1","it-pushable":"^3.2.3","main-event":"^1.0.0","race-event":"^1.3.0","race-signal":"^1.1.3"},"devDependencies":{"@types/sinon":"^17.0.4","aegir":"^47.0.16","delay":"^6.0.0","it-all":"^3.0.0","sinon":"^20.0.0"},"_id":"it-queue@1.1.0","gitHead":"51cc07cca848f653dee2326a48d8dc023d6c477b","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"shasum":"a26c32b0e0b02e2d30b3d2623f85d2af8fd56a73","size":32909,"noattachment":false,"key":"/it-queue/-/it-queue-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/it-queue/download/it-queue-1.1.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/it-queue_1.1.0_1748776733449_0.1913039196001507"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-01T11:18:53.666Z","publish_time":1748776733666,"_source_registry_name":"default","_cnpm_publish_time":1748776733666},"1.0.0":{"name":"it-queue","version":"1.0.0","description":"A queue implementation that can be iterated over","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/it/tree/main/packages/it-queue#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/it.git"},"bugs":{"url":"https://github.com/achingbrain/it/issues"},"publishConfig":{"access":"public","provenance":true},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"build":"aegir build","lint":"aegir lint","dep-check":"aegir dep-check","doc-check":"aegir doc-check","clean":"aegir clean","test":"aegir test","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:chrome-webworker":"aegir test -t webworker","test:firefox":"aegir test -t browser -- --browser firefox","test:firefox-webworker":"aegir test -t webworker -- --browser firefox","release":"aegir release"},"dependencies":{"abort-error":"^1.0.1","it-pushable":"^3.2.3","main-event":"^1.0.0","race-event":"^1.3.0","race-signal":"^1.1.3"},"devDependencies":{"@types/sinon":"^17.0.4","aegir":"^47.0.16","delay":"^6.0.0","it-all":"^3.0.8","sinon":"^20.0.0"},"_id":"it-queue@1.0.0","gitHead":"14a31e9726e0b53da2512835dd1c8330399bc023","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"shasum":"d306f09a84306658ed72cb8c51d481bae1123665","size":32114,"noattachment":false,"key":"/it-queue/-/it-queue-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/it-queue/download/it-queue-1.0.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/it-queue_1.0.0_1748773812371_0.7570559853779075"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-01T10:30:12.545Z","publish_time":1748773812545,"_source_registry_name":"default","_cnpm_publish_time":1748773812545},"0.0.0":{"name":"it-queue","version":"0.0.0","description":"A queue implementation that can be iterated over","author":{"name":"Alex Potsides","email":"alex@achingbrain.net"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/it/tree/main/packages/it-queue#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/it.git"},"bugs":{"url":"https://github.com/achingbrain/it/issues"},"publishConfig":{"access":"public"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"build":"aegir build","lint":"aegir lint","dep-check":"aegir dep-check","doc-check":"aegir doc-check","clean":"aegir clean","test":"aegir test","test:node":"aegir test -t node --cov","test:chrome":"aegir test -t browser --cov","test:chrome-webworker":"aegir test -t webworker","test:firefox":"aegir test -t browser -- --browser firefox","test:firefox-webworker":"aegir test -t webworker -- --browser firefox","release":"aegir release"},"devDependencies":{"@types/sinon":"^17.0.4","aegir":"^47.0.16","delay":"^6.0.0","it-all":"^3.0.8","sinon":"^20.0.0"},"dependencies":{"abort-error":"^1.0.1","it-pushable":"^3.2.3","main-event":"^1.0.0","race-event":"^1.3.0","race-signal":"^1.1.3"},"_id":"it-queue@0.0.0","gitHead":"ec62ae8ea483afe2435d9a0639a50c6e1eab56f5","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"shasum":"05aa8a0b40572fd89f736abd693ea90812855278","size":32226,"noattachment":false,"key":"/it-queue/-/it-queue-0.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/it-queue/download/it-queue-0.0.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/it-queue_0.0.0_1748771608432_0.9970220243071972"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-01T09:53:28.632Z","publish_time":1748771608632,"_source_registry_name":"default","_cnpm_publish_time":1748771608632}},"readme":"# it-queue\n\n[![codecov](https://img.shields.io/codecov/c/github/achingbrain/it.svg?style=flat-square)](https://codecov.io/gh/achingbrain/it)\n[![CI](https://img.shields.io/github/actions/workflow/status/achingbrain/it/js-test-and-release.yml?branch=main\\&style=flat-square)](https://github.com/achingbrain/it/actions/workflows/js-test-and-release.yml?query=branch%3Amain)\n\n> A queue implementation that can be iterated over\n\n# About\n\n<!--\n\n!IMPORTANT!\n\nEverything in this README between \"# About\" and \"# Install\" is automatically\ngenerated and will be overwritten the next time the doc generator is run.\n\nTo make changes to this section, please update the @packageDocumentation section\nof src/index.js or src/index.ts\n\nTo experiment with formatting, please run \"npm run docs\" from the root of this\nrepo and examine the changes made.\n\n-->\n\nBased on `p-queue` but with access to the underlying queue, aborting a task\nremoves it from the queue and you can iterate over the queue results.\n\n## Example\n\n```ts\nimport all from 'it-all'\nimport { Queue } from 'it-queue'\n\nconst queue = new Queue({\n  concurrency: Infinity\n})\nvoid queue.add(async () => {\n  return 'hello'\n})\nvoid queue.add(async () => {\n  return 'world'\n})\n\nconst results = await all(queue)\n// ['hello', 'world']\n\n// how many items are in the queue (includes running items)\nconsole.info(queue.size)\n\n// how many items are running\nconsole.info(queue.running)\n\n// how many items have not started running yet\nconsole.info(queue.queued)\n```\n\n# Install\n\n```console\n$ npm i it-queue\n```\n\n## Browser `<script>` tag\n\nLoading this module through a script tag will make its exports available as `ItQueue` in the global namespace.\n\n```html\n<script src=\"https://unpkg.com/it-queue/dist/index.min.js\"></script>\n```\n\n# API Docs\n\n- <https://achingbrain.github.io/it/modules/it-queue.html>\n\n# License\n\nLicensed under either of\n\n- Apache 2.0, ([LICENSE-APACHE](https://github.com/achingbrain/it/blob/main/packages/it-queue/LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)\n- MIT ([LICENSE-MIT](https://github.com/achingbrain/it/blob/main/packages/it-queue/LICENSE-MIT) / <http://opensource.org/licenses/MIT>)\n\n# Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n","_attachments":{},"homepage":"https://github.com/achingbrain/it/tree/main/packages/it-queue#readme","bugs":{"url":"https://github.com/achingbrain/it/issues"},"license":"Apache-2.0 OR MIT"}