{"_id":"lsofi","_rev":"5-78795e4c3a27725c4dec6dd0ce8876d4","name":"lsofi","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"lsofi","version":"1.0.0","keywords":["tool","cli","ports","lsof","netstat"],"author":{"name":"Mario Nebl","email":"hello@mario-nebl.de"},"license":"MIT","_id":"lsofi@1.0.0","maintainers":[{"name":"marionebl","email":"root@mario-nebl.de"}],"homepage":"https://github.com/marionebl/lsofi#readme","bugs":{"url":"https://github.com/marionebl/lsofi/issues"},"dist":{"shasum":"ed65a9d1d811b835b8c51b61762cefa64eb96a8d","tarball":"https://registry.npmjs.org/lsofi/-/lsofi-1.0.0.tgz","integrity":"sha512-MKr9vM1MSm+TSKfI05IYxpKV1NCxpJaBLnELyIf784zYJ5KV9lGCE1EvpA2DtXDNM3fCuFeCwXUzim/fyQRi+A==","signatures":[{"sig":"MEUCIBzEAK+uRS0dTTNDCwMUHKfT1Z0KAfZ6RRMoBGuGHcwQAiEAokhn9rbXaBmDCOGPi99HvtpqpXuznJFWh71hLDOfLpU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"ed65a9d1d811b835b8c51b61762cefa64eb96a8d","gitHead":"cb76b4318d1978b8ae136fcdae20d74343deb73e","scripts":{"deps":"dependency-check . && dependency-check . --extra --no-dev","lint":"standard","test":"standard && npm run deps && ava","start":"ava --watch"},"_npmUser":{"name":"marionebl","email":"root@mario-nebl.de"},"standard":{"parser":"babel-eslint"},"repository":{"url":"git+ssh://git@github.com/marionebl/lsofi.git","type":"git"},"_npmVersion":"3.10.3","description":"Find processes occupying a given port","_nodeVersion":"6.3.0","dependencies":{"through2":"^2.0.1","is-number":"^2.1.0"},"devDependencies":{"ava":"^0.16.0","get-port":"^2.1.0","standard":"^8.0.0","unexpected":"^10.17.0","babel-eslint":"^6.1.2","get-server-port":"^1.0.0","dependency-check":"^2.6.0"},"_npmOperationalInternal":{"tmp":"tmp/lsofi-1.0.0.tgz_1473082526065_0.0016365768387913704","host":"packages-16-east.internal.npmjs.com"},"directories":{}},"2.0.0":{"name":"lsofi","version":"2.0.0","type":"module","description":"Find processes occupying a given port","main":"./index.cjs","exports":{".":{"import":"./index.js","require":"./index.cjs"}},"scripts":{"lint":"oxlint .","start":"node --test --watch","test":"npm run lint && node --test"},"keywords":["tool","cli","ports","lsof","netstat"],"author":{"name":"Mario Nebl","email":"hello@mario-nebl.de"},"license":"MIT","repository":{"type":"git","url":"git+ssh://git@github.com/marionebl/lsofi.git"},"engines":{"node":">=20.0.0"},"dependencies":{},"devDependencies":{"get-port":"7.1.0","oxlint":"1.50.0"},"_id":"lsofi@2.0.0","gitHead":"cd11e063811a7c54494324ba17de44d4ff29a4b1","bugs":{"url":"https://github.com/marionebl/lsofi/issues"},"homepage":"https://github.com/marionebl/lsofi#readme","_nodeVersion":"20.18.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-XTFlOBHeuXnUGuUQI0kBb4O4oQW7qCV7MRGQja1xNpxgrI/jptlly+/5126RiRold1zgyxY520qOZUZ31V0I2A==","shasum":"7709753957651e6681d9ff5a7ee748978151218d","tarball":"https://registry.npmjs.org/lsofi/-/lsofi-2.0.0.tgz","fileCount":5,"unpackedSize":6990,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC7JVbIxrvu9ACT9/gtzrNG1Kb748UmpZpv86zjKIvFgAiEApc4ebZGwOompf1h/1chvRuGKbUmQ1L0oNXPg8LqrVKM="}]},"_npmUser":{"name":"marionebl","email":"hello@mario-nebl.de"},"directories":{},"maintainers":[{"name":"marionebl","email":"hello@mario-nebl.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lsofi_2.0.0_1773373062262_0.6899606703783348"},"_hasShrinkwrap":false}},"time":{"created":"2016-09-05T13:35:28.480Z","modified":"2026-03-13T03:37:42.820Z","1.0.0":"2016-09-05T13:35:28.480Z","2.0.0":"2026-03-13T03:37:42.416Z"},"bugs":{"url":"https://github.com/marionebl/lsofi/issues"},"author":{"name":"Mario Nebl","email":"hello@mario-nebl.de"},"license":"MIT","homepage":"https://github.com/marionebl/lsofi#readme","keywords":["tool","cli","ports","lsof","netstat"],"repository":{"type":"git","url":"git+ssh://git@github.com/marionebl/lsofi.git"},"description":"Find processes occupying a given port","maintainers":[{"name":"marionebl","email":"hello@mario-nebl.de"}],"readme":"> Find processes occupying a given port\n\n# lsofi [![stability][0]][1]\n\n[![npm version][6]][7] [![CI][8]][9]\n\n## Rationale\n\n- `lsof -i :<port>` for unix, darwin and win32 alike\n\n## Installation\n\n```bash\nnpm install --save lsofi\n```\n\n## Usage\n\n### ESM\n\n```js\nimport lsofi from 'lsofi'\n\nconst occupied = await lsofi(1337)\nconst free = await lsofi(1338)\n\nconsole.log(occupied, free)\n// => 9834 null\n```\n\n### CommonJS\n\n```js\nconst lsofi = require('lsofi')\n\nconst occupied = await lsofi(1337)\nconst free = await lsofi(1338)\n\nconsole.log(occupied, free)\n// => 9834 null\n```\n\n## Migration Notes\n\n- Minimum supported Node.js version is now `20.0.0`.\n- Package now ships dual entry points using `exports`:\n  - `import lsofi from 'lsofi'` (ESM)\n  - `require('lsofi')` (CommonJS compatibility)\n- Runtime dependencies removed:\n  - `is-number`: replaced with native `Number()` and `Number.isFinite()` validation.\n  - `through2`: replaced with native stream parsing via `readline`.\n\n## See also\n\n- [krampus](https://github.com/marionebl/krampus) - Kill processes occupying a given port\n\n---\nlsofi is built by [marionebl](https://github.com/marionebl) and [contributors](https://github.com/marionebl/lsofi/graphs/contributors). It is released under the [MIT](https://github.com/marionebl/lsofi/blob/master/LICENSE) license.\n\n[0]: https://img.shields.io/badge/stability-experimental-orange.svg?style=flat-square\n[1]: https://nodejs.org/api/documentation.html#documentation_stability_index\n[6]: https://img.shields.io/npm/v/lsofi.svg?style=flat-square\n[7]: https://npmjs.org/package/lsofi\n[8]: https://img.shields.io/github/actions/workflow/status/marionebl/lsofi/ci.yml?branch=master&style=flat-square\n[9]: https://github.com/marionebl/lsofi/actions/workflows/ci.yml\n","readmeFilename":"README.md"}