{"id":16982519,"url":"https://github.com/kopach/lockfix","last_synced_at":"2025-04-09T12:06:41.728Z","repository":{"id":37057692,"uuid":"269025043","full_name":"kopach/lockfix","owner":"kopach","description":"Tool for smart revert of integrity changes for npm lock file","archived":false,"fork":false,"pushed_at":"2024-10-29T01:53:50.000Z","size":620,"stargazers_count":23,"open_issues_count":12,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-01T05:12:18.663Z","etag":null,"topics":["hacktoberfest","integrity","lockfile","npm","npm-shrinkwrap","package-lock","shrinkwrap"],"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/kopach.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/funding.yml","license":"LICENSE","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},"funding":{"custom":"https://paypal.me/ikopach"}},"created_at":"2020-06-03T07:54:40.000Z","updated_at":"2024-03-20T16:40:18.000Z","dependencies_parsed_at":"2023-12-30T05:24:08.147Z","dependency_job_id":"9756d40d-33be-4d7e-88fa-f4a3aedfedf1","html_url":"https://github.com/kopach/lockfix","commit_stats":{"total_commits":291,"total_committers":6,"mean_commits":48.5,"dds":0.3161512027491409,"last_synced_commit":"6385df9006516230f383779293eaea41edf11167"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kopach%2Flockfix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kopach%2Flockfix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kopach%2Flockfix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kopach%2Flockfix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kopach","download_url":"https://codeload.github.com/kopach/lockfix/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248036063,"owners_count":21037092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["hacktoberfest","integrity","lockfile","npm","npm-shrinkwrap","package-lock","shrinkwrap"],"created_at":"2024-10-14T02:08:35.267Z","updated_at":"2025-04-09T12:06:41.696Z","avatar_url":"https://github.com/kopach.png","language":"TypeScript","funding_links":["https://paypal.me/ikopach"],"categories":[],"sub_categories":[],"readme":"[![#StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://github.com/vshymanskyy/StandWithUkraine#readme)\n\n\u003cdiv align=\"center\"\u003e\u003cpre\u003e\n  _               _    _____ _      \n | |    ___   ___| | _|  ___(_)_  __\n | |   / _ \\ / __| |/ / |_  | \\ \\/ /\n | |__| (_) | (__|   \u003c|  _| | |\u003e  \u003c \n |_____\\___/ \\___|_|\\_\\_|   |_/_/\\_\\\n\u003c/pre\u003e\u003c/div\u003e\n\n[lockfix](https://github.com/kopach/lockfix)\n\n\u003cdiv align=\"center\"\u003e\n\n[![Snyk Vulnerabilities badge](https://snyk.io/test/github/kopach/lockfix/badge.svg)](https://snyk.io/test/github/kopach/lockfix)\n[![Maintainability](https://api.codeclimate.com/v1/badges/f7e2f85327eeb6b52439/maintainability)](https://codeclimate.com/github/kopach/lockfix/maintainability)\n[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/kopach/lockfix.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/kopach/lockfix/context:javascript)\n\n[![NPM badge](https://nodei.co/npm/lockfix.png?compact=true)](https://www.npmjs.com/package/lockfix)\n\n\u003c/div\u003e\n\n⭐️ Please, star me on GitHub — it helps!\n\n[lockfix](https://github.com/kopach/lockfix) – is a [git](https://git-scm.com/) based CLI tool, which helps to revert `sha1` integrity changes of npm lock file\n\n\u003ch1 align=\"center\"\u003e\n\nBefore\n![screenshot before](./assets/before.png)\n\nAfter\n![screenshot after](./assets/after.png)\n\n\u003c/h1\u003e\n\n## 🧬 Table of Contents\n\n- [❓ Why?](#-why-)\n- [✨ Features](#-features-)\n- [💾 Install](#-install-)\n- [🔨 Usage](#-usage-)\n- [📄 License](#-license-)\n\n## ❓ Why? [🔝](#-table-of-contents)\n\n[NPM](https://npmjs.org/) has known issue of constantly changing `integrity` property of its lock file. Integrity may change due to plenty of reasons. Some of them are:\n\n- `npm install` done on machine with different OS from one where lock file generated\n- some package version updated\n- another version of `npm` used\n\nIntention of this tool is to prevent such changes and make `integrity` property secure and reliable.\n\n## ✨ Features [🔝](#-table-of-contents)\n\n- Reverts changes from `sha512` to `sha1`. Keeps untouched changes from `sha1` to `sha512`. `sha512` algorithm is more secure.\n- Works well with both `package-lock.json` and `npm-shrinkwrap.json`\n- Possibility to revert any changes done by **this tool**\n\n## 💾 Install [🔝](#-table-of-contents)\n\nInstall per project with [NPM](https://npmjs.org/)\n\n```bash\nnpm install --save-dev lockfix\n```\n\nor to install globally\n\n```bash\nnpm install -g lockfix\n```\n\n## 🔨 Usage [🔝](#-table-of-contents)\n\n### Add to `package.json`\n\n```json\n\"scripts\": {\n    \"postshrinkwrap\": \"lockfix\",\n},\n```\n\n### Manually from terminal\n\n```bash\nlockfix\n```\n\nor (without install)\n\n```bash\nnpx lockfix\n```\n\n#### Options\n\n```bash\nUsage: lockfix [options]\n\nOptions:\n  -V, --version  output the version number\n  -c, --commit   make backup commit with revert instruction before applying changes\n  -f, --force    bypass Git root directory check\n  -q, --quiet    suppress output\n  -h, --help     display help for command\n```\n\n## 📄 License [🔝](#-table-of-contents)\n\nThis software licensed under the [MIT](https://github.com/kopach/lockfix/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkopach%2Flockfix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkopach%2Flockfix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkopach%2Flockfix/lists"}