{"id":13495706,"url":"https://github.com/nadeesha/ts-prune","last_synced_at":"2026-10-19T09:12:43.447Z","repository":{"id":34943833,"uuid":"183702632","full_name":"nadeesha/ts-prune","owner":"nadeesha","description":"Find unused exports in a typescript project. 🛀","archived":false,"fork":false,"pushed_at":"2026-09-21T18:41:32.000Z","size":1228,"stargazers_count":2065,"open_issues_count":0,"forks_count":67,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-10-04T19:55:49.412Z","etag":null,"topics":["typescript","utility"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nadeesha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-04-26T22:46:36.000Z","updated_at":"2026-09-19T11:49:06.000Z","dependencies_parsed_at":"2023-12-08T08:06:27.073Z","dependency_job_id":"87319ad8-f8f4-4d6e-b0ed-4277e21b76f7","html_url":"https://github.com/nadeesha/ts-prune","commit_stats":{"total_commits":163,"total_committers":30,"mean_commits":5.433333333333334,"dds":0.4233128834355828,"last_synced_commit":"568132c6785ebb6ffeea5b13f2aa8196b82d72a2"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/nadeesha/ts-prune","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nadeesha%2Fts-prune","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nadeesha%2Fts-prune/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nadeesha%2Fts-prune/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nadeesha%2Fts-prune/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nadeesha","download_url":"https://codeload.github.com/nadeesha/ts-prune/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nadeesha%2Fts-prune/sbom","scorecard":{"id":672696,"data":{"date":"2025-08-11","repo":{"name":"github.com/nadeesha/ts-prune","commit":"568132c6785ebb6ffeea5b13f2aa8196b82d72a2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":4,"reason":"Found 11/27 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/contributors.yml:1","Warn: no topLevel permission defined: .github/workflows/stale.yml:1","Warn: no topLevel permission defined: .github/workflows/test-and-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/contributors.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/nadeesha/ts-prune/contributors.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/contributors.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/nadeesha/ts-prune/contributors.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/nadeesha/ts-prune/stale.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/nadeesha/ts-prune/test-and-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/nadeesha/ts-prune/test-and-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/nadeesha/ts-prune/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/nadeesha/ts-prune/test.yml/master?enable=pin","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 15 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"29 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-h5c3-5r3r-rr8q","Warn: Project is vulnerable to: GHSA-rmvr-2pp2-xj38","Warn: Project is vulnerable to: GHSA-xx4v-prfh-6cgc","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T20:41:52.049Z","repository_id":34943833,"created_at":"2025-08-21T20:41:52.049Z","updated_at":"2025-08-21T20:41:52.049Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38352880,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-19T02:00:06.414Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["typescript","utility"],"created_at":"2024-07-31T19:01:37.354Z","updated_at":"2026-10-19T09:12:43.440Z","avatar_url":"https://github.com/nadeesha.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","目录","Packages"],"sub_categories":["TypeScript","Email"],"readme":"# ts-prune\n\n[![CI](https://github.com/nadeesha/ts-prune/actions/workflows/test.yml/badge.svg)](https://github.com/nadeesha/ts-prune/actions/workflows/test.yml)\n[![npm version](https://img.shields.io/npm/v/ts-prune)](https://www.npmjs.com/package/ts-prune)\n[![Monthly downloads](https://img.shields.io/npm/dm/ts-prune)](https://www.npmjs.com/package/ts-prune)\n[![Node.js requirement](https://img.shields.io/badge/node-%3E%3D22.18.0-339933)](#requirements)\n[![License: MIT](https://img.shields.io/npm/l/ts-prune)](package.json)\n\nFind potentially unused exports in your TypeScript project. ts-prune reads your `tsconfig.json` and reports exports with no detected use elsewhere in the project. It reports findings without changing your files.\n\n## Requirements\n\nNode.js 22.18 or newer and a TypeScript project with a `tsconfig.json`. JavaScript files are supported when `allowJs` is enabled in that configuration.\n\n## Quick start\n\nInstall with your package manager:\n\n```sh\nnpm install --save-dev ts-prune\n# or\nyarn add --dev ts-prune\n# or\npnpm add --save-dev ts-prune\n```\n\nRun from your project root:\n\n```sh\nnpx ts-prune\n```\n\nFor a different TypeScript configuration:\n\n```sh\nnpx ts-prune --project tsconfig.build.json\n```\n\n## Example\n\nGiven `src/math.ts`:\n\n```typescript\nexport const add = (a: number, b: number) =\u003e a + b;\nexport const subtract = (a: number, b: number) =\u003e a - b;\nexport const multiply = (a: number, b: number) =\u003e a * b;\n```\n\nAnd `src/app.ts`:\n\n```typescript\nimport { add } from './math';\nconsole.log(add(2, 3));\n```\n\nts-prune reports:\n\n```text\nsrc/math.ts:2 - subtract\nsrc/math.ts:3 - multiply\n```\n\nEach line is `file:line - exportName`. Exports referenced within their own file are marked `(used in module)`; use `--unusedInModule` to hide them. Re-exports may show `undefined` as the line number when the declaration is in another file.\n\n## CLI options\n\n| Option | Description | Example |\n| --- | --- | --- |\n| `-p, --project [path]` | TypeScript configuration; defaults to `tsconfig.json` | `ts-prune -p tsconfig.build.json` |\n| `-i, --ignore [regexp]` | Hide matching output lines | `ts-prune -i 'test\\|spec'` |\n| `-s, --skip [regexp]` | Exclude matching files from analysis and from references counted as uses | `ts-prune -s '\\.test\\.ts$'` |\n| `-e, --error` | Exit with status 1 if any findings remain after filtering | `ts-prune -e` |\n| `-u, --unusedInModule` | Hide exports marked `(used in module)` | `ts-prune -u` |\n| `-h, --help` | Show help | `ts-prune -h` |\n\n`--ignore` filters the report; `--skip` changes the analysis. For example, skipping tests allows exports used only by tests to appear as unused. Patterns are JavaScript regular expressions, not globs.\n\nWithout `--error`, findings do not cause a nonzero exit status. Configuration and execution errors still fail the command.\n\n## Configuration\n\nCreate `.ts-prunerc.json`:\n\n```json\n{\n  \"project\": \"tsconfig.build.json\",\n  \"ignore\": \"components/(Button|Input)\",\n  \"skip\": \"\\\\.test\\\\.|test/\",\n  \"unusedInModule\": false\n}\n```\n\nOr use the `ts-prune` property in `package.json`:\n\n```json\n{\n  \"ts-prune\": {\n    \"project\": \"tsconfig.build.json\",\n    \"error\": true\n  }\n}\n```\n\nConfiguration discovery also supports `.ts-prunerc` (JSON or YAML), `.ts-prunerc.yaml`, `.ts-prunerc.yml`, and JS, CJS, or TS configuration files such as `.ts-prunerc.cjs`:\n\n```javascript\nmodule.exports = {\n  project: 'tsconfig.build.json',\n  unusedInModule: true,\n};\n```\n\nUse `export default` in TypeScript configuration files. Discovery starts in the working directory and searches parent directories until it reaches the home directory or filesystem root. Within a directory, the `ts-prune` property in `package.json` takes precedence over the standard configuration files. Project paths are resolved from the working directory.\n\nOptions are applied in this order: defaults, discovered configuration, explicitly supplied CLI options. In configuration files, use booleans for `error` and `unusedInModule`; `false` disables them. Legacy string values remain accepted, but the string `\"false\"` does not disable a flag.\n\n## Ignoring an export\n\nPlace `// ts-prune-ignore-next` immediately before its declaration:\n\n```typescript\n// ts-prune-ignore-next\nexport interface PublicApi {\n  name: string;\n}\n```\n\nFiles explicitly listed in the selected tsconfig's `files` array are treated as public entrypoints: their exports are excluded from the report. Files selected through `include` are analyzed normally.\n\n## Using ts-prune in CI\n\nAdd a script to `package.json`:\n\n```json\n{\n  \"scripts\": {\n    \"deadcode\": \"ts-prune --error\"\n  }\n}\n```\n\nRun `npm run deadcode` in CI to fail when findings remain. Add `--unusedInModule` if you only want exports without detected local uses.\n\n## Limitations\n\nReview findings before deleting code:\n\n- Frameworks and build tools may consume exports through conventions or reflection that ts-prune cannot detect.\n- Imports with computed paths cannot reliably be resolved. Resolved literal dynamic imports, such as `import('./module')`, conservatively mark all exports in that module as used.\n- Namespace uses that cannot be tracked, side-effect imports, and wildcard re-exports can keep unused exports out of the report.\n- Uses outside the configured project are not visible. Mark public entrypoints or ignore exports consumed elsewhere.\n\n## Development\n\nUse the Node version in `.nvmrc`:\n\n```sh\nnvm install\nnvm use\nnpm ci\nnpm run check           # lint, strict type checks, build, all tests\nnpm run test:unit\nnpm run test:integration\nnpm run test:coverage   # Node's built-in coverage report\nnpm run test:package    # install a tarball and check its CLI and API\nnpm run lint:fix        # apply lint fixes\n```\n\nTests use `node:test` and `node:assert/strict`. Test compilation goes into `.test-build/`; the published CLI and CommonJS library are built into `lib/`. Integration tests run in temporary directories without global npm links. Coverage measures compiled source in test workers; CLI subprocess behavior is checked separately. The package smoke test installs production dependencies from npm into a temporary consumer project.\n\nDevelopment uses Node 26. CI tests Node 22, 24, and 26 on Linux and Node 26 on macOS and Windows. It runs on pull requests, pushes to `master` and `codex/**`, and version tags. Publishing is manual: choose **Actions → Release → Run workflow** and enter an existing version tag. The release reruns the full matrix before publishing; pushes and tags alone do not publish. See [PUBLISHING.md](PUBLISHING.md) for setup and release steps.\n\nThe build uses TypeScript 6.0.3 while the TypeScript ESLint parser requires a compiler version below 6.1. TypeScript 7 is deferred until the parser supports it. The analyzer uses the compiler bundled with ts-morph independently. Runtime dependencies are ts-morph and cosmiconfig. See [MODERNIZATION.md](MODERNIZATION.md) for dependency counts and verification results.\n\n## Acknowledgements\n\nBuilt with [ts-morph](https://github.com/dsherret/ts-morph) and inspired by [@dsherret's approach](https://gist.github.com/dsherret/0bae87310ce24866ae22425af80a9864).\n\n### Contributors\n\n\u003ctable\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/nadeesha\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/2942312?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Nadeesha Cabral/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eNadeesha Cabral\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/snyk-bot\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/19733683?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Snyk bot/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eSnyk bot\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/danvk\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/98301?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Dan Vanderkam/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eDan Vanderkam\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/JoshuaKGoldberg\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/3335181?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Josh Ghoulberg 👻/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eJosh Ghoulberg 👻\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/vitalyiegorov\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/586558?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Vitaly Iegorov/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eVitaly Iegorov\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/SimonJang\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/10977475?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Simon Jang/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eSimon Jang\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/gitter-badger\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/8518239?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=The Gitter Badger/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eThe Gitter Badger\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/timbodeit\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/4222754?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Tim Bodeit/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eTim Bodeit\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/sauntimo\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/2720466?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Tim Saunders/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eTim Saunders\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/torkelrogstad\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/16610775?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Torkel Rogstad/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eTorkel Rogstad\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/felladrin\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/418083?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Victor Nogueira/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eVictor Nogueira\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/wcandillon\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/306134?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=William Candillon/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eWilliam Candillon\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/curtvict\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/96080054?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=curtvict/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003ecurtvict\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/phiresky\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/2303841?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=phiresky/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003ephiresky\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/rubengmurray\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/31162373?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Reece Daniels/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eReece Daniels\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/mqqza\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/9381249?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Mikhail Belyaev/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eMikhail Belyaev\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/jtbandes\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/14237?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Jacob Bandes-Storch/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eJacob Bandes-Storch\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/ivosh\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/1327828?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Ivo Raisr/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eIvo Raisr\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/hduprat\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/3397791?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Hugo Duprat/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eHugo Duprat\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/daviseford\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/9663863?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Davis Ford/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eDavis Ford\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/dgraham\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/122102?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=David Graham/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eDavid Graham\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/calebpeterson\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/18555288?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Caleb Peterson/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eCaleb Peterson\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/ashokdelphia\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/48444234?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Ashok Argent-Katwala/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eAshok Argent-Katwala\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 150.0; height: 150.0\"\u003e\n        \u003ca href=https://github.com/amir-arad\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/6019373?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt=Amir Arad/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eAmir Arad\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Project status\n\nThis project has been resurrected after a long hiatus. Many projects still depend on ts-prune, and by now it seems to be encoded in AI model weights too. It needs to keep working.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnadeesha%2Fts-prune","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnadeesha%2Fts-prune","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnadeesha%2Fts-prune/lists"}