{"id":11396471,"name":"@apiratorjs/locking","ecosystem":"npm","description":"A lightweight library providing both local and distributed locking primitives (mutexes, semaphores, and read-write locks) for managing concurrency in Node.js.","homepage":null,"licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/apiratorjs/locking","keywords_array":["locking","mutex","semaphore","read-write-lock","concurrency","synchronization","distributed-locking","distributed-mutex","distributed-semaphore","distributed-read-write-lock","critical-section","race-condition","resource-sharing","thread-safety","concurrent-access"],"namespace":"apiratorjs","versions_count":20,"first_release_published_at":"2025-03-02T14:37:14.773Z","latest_release_published_at":"2026-07-26T13:31:16.671Z","latest_release_number":"5.0.0","last_synced_at":"2026-09-27T15:00:40.377Z","created_at":"2025-03-02T14:37:48.599Z","updated_at":"2026-09-27T19:46:08.050Z","registry_url":"https://www.npmjs.com/package/@apiratorjs/locking","install_command":"npm install @apiratorjs/locking","documentation_url":null,"metadata":{"funding":null,"dist-tags":{"latest":"5.0.0"},"contentPolicy":null},"repo_metadata":{"id":280289281,"uuid":"941076781","full_name":"apiratorjs/locking","owner":"apiratorjs","description":null,"archived":false,"fork":false,"pushed_at":"2026-09-27T16:33:30.000Z","size":99,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-09-27T16:49:54.099Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/apiratorjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-01T12:35:03.000Z","updated_at":"2026-09-27T16:33:29.000Z","dependencies_parsed_at":"2026-02-25T23:02:31.253Z","dependency_job_id":null,"html_url":"https://github.com/apiratorjs/locking","commit_stats":null,"previous_names":["apiratorjs/locking"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/apiratorjs/locking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apiratorjs","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":341189360,"owners_count":37769578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-09-27T02:00:07.257Z","response_time":91,"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"},"owner_record":{"login":"apiratorjs","name":null,"uuid":"198249619","kind":"user","description":null,"email":"","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/198249619?u=173738e79f584881b0963d7589a6cc9c37881452\u0026v=4","repositories_count":1,"last_synced_at":"2025-02-08T12:18:53.077Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/apiratorjs","funding_links":[],"total_stars":0,"followers":0,"following":0,"created_at":"2025-02-08T12:18:53.101Z","updated_at":"2025-02-08T12:18:53.101Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apiratorjs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apiratorjs/repositories"},"tags":[{"name":"v4.0.3","sha":"8eeffd5ef37a8b8aa0580906dff679b571c26350","kind":"tag","published_at":"2026-01-20T09:58:43.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v4.0.3","html_url":"https://github.com/apiratorjs/locking/releases/tag/v4.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v4.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v4.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v4.0.3/manifests"},{"name":"v4.0.2","sha":"4fd77daccdb7ececf3b0397d3ef531e74df0e0ea","kind":"tag","published_at":"2025-06-02T10:34:11.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v4.0.2","html_url":"https://github.com/apiratorjs/locking/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v4.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"10fa34312c8e6d85a1008e8983c158806466e90c","kind":"tag","published_at":"2025-04-17T13:43:54.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v4.0.1","html_url":"https://github.com/apiratorjs/locking/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v4.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v4.0.1/manifests"},{"name":"v4.01","sha":"10fa34312c8e6d85a1008e8983c158806466e90c","kind":"tag","published_at":"2025-04-17T11:45:26.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v4.01","html_url":"https://github.com/apiratorjs/locking/releases/tag/v4.01","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v4.01","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v4.01","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v4.01/manifests"},{"name":"v3.0.2","sha":"d0e81049066346c554897cb7470b202dd833ca44","kind":"tag","published_at":"2025-03-22T16:51:35.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v3.0.2","html_url":"https://github.com/apiratorjs/locking/releases/tag/v3.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v3.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v3.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v3.0.2/manifests"},{"name":"v3.0.1","sha":"eda781821b03c308dc6266f5bb319badf9303d36","kind":"tag","published_at":"2025-03-22T16:44:39.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v3.0.1","html_url":"https://github.com/apiratorjs/locking/releases/tag/v3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v3.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v3.0.1/manifests"},{"name":"v3.0.0","sha":"511e5804733dc7b3e2b1255049e4bca43bc1d9b1","kind":"tag","published_at":"2025-03-15T14:25:21.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v3.0.0","html_url":"https://github.com/apiratorjs/locking/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v3.0.0/manifests"},{"name":"v2.0.3","sha":"96adc9aff661625d694a6e19c88025d615807090","kind":"tag","published_at":"2025-03-06T13:24:20.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v2.0.3","html_url":"https://github.com/apiratorjs/locking/releases/tag/v2.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v2.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v2.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v2.0.3/manifests"},{"name":"v2.0.2","sha":"3aa167afa26a1c33d12c8e316fc743f89252d0e1","kind":"tag","published_at":"2025-03-06T13:20:14.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v2.0.2","html_url":"https://github.com/apiratorjs/locking/releases/tag/v2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v2.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v2.0.2/manifests"},{"name":"v2.0.1","sha":"cb119c915d8bc598d9ed11abcbc46814e8bee6ff","kind":"tag","published_at":"2025-03-06T13:12:45.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v2.0.1","html_url":"https://github.com/apiratorjs/locking/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v2.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"0475ebf12276a7e8b85b3923564d5040f43414ba","kind":"tag","published_at":"2025-03-05T06:46:10.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v2.0.0","html_url":"https://github.com/apiratorjs/locking/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v2.0.0/manifests"},{"name":"v1.3.1","sha":"f2eac33d49b08074866a8076346abbcffb64d3f1","kind":"tag","published_at":"2025-03-04T20:43:09.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v1.3.1","html_url":"https://github.com/apiratorjs/locking/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v1.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"4ac7da46cea40b0efcc36db11357bb2d2d17cf3f","kind":"tag","published_at":"2025-03-04T20:18:41.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v1.3.0","html_url":"https://github.com/apiratorjs/locking/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.3.0/manifests"},{"name":"v1.2.1","sha":"aa1be7ffa200f79d86c9fbcd7f835ffc54c0acee","kind":"tag","published_at":"2025-03-04T06:47:57.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v1.2.1","html_url":"https://github.com/apiratorjs/locking/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v1.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"f56b3db223028a9139ca93b3f743c210937bc83a","kind":"tag","published_at":"2025-03-03T15:23:01.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v1.2.0","html_url":"https://github.com/apiratorjs/locking/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.2.0/manifests"},{"name":"v1.1.3","sha":"d0d677c3ac57c3cdcd4e70fc84799c1e6f044606","kind":"tag","published_at":"2025-03-02T17:44:37.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v1.1.3","html_url":"https://github.com/apiratorjs/locking/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v1.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"62ed125c2bf770ddeda0255de3f49e3eb68cfd2d","kind":"tag","published_at":"2025-03-02T15:26:43.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v1.1.2","html_url":"https://github.com/apiratorjs/locking/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v1.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"505a8241777a153fd2f6fe24ca4957bc3a1fb98f","kind":"tag","published_at":"2025-03-02T15:04:50.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v1.1.1","html_url":"https://github.com/apiratorjs/locking/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v1.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.1.1/manifests"},{"name":"v1.0.0","sha":"8bf0bfd4f498c8496ba9d909cc740e45d0c02e19","kind":"tag","published_at":"2025-03-02T14:35:42.000Z","download_url":"https://codeload.github.com/apiratorjs/locking/tar.gz/v1.0.0","html_url":"https://github.com/apiratorjs/locking/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/apiratorjs/locking@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2026-09-27T19:46:08.049Z","dependent_packages_count":0,"downloads":186,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":24.931592808528446,"dependent_packages_count":36.0573762110116,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":30.494484509770025},"purl":"pkg:npm/%40apiratorjs/locking","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/npm/@apiratorjs/locking","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/npm/@apiratorjs/locking","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/npm/@apiratorjs/locking/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-09-27T15:00:40.921Z","issues_count":0,"pull_requests_count":0,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":0,"pull_requests_closed_count":0,"pull_request_authors_count":0,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/apiratorjs%2Flocking/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@apiratorjs%2Flocking/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@apiratorjs%2Flocking/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@apiratorjs%2Flocking/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@apiratorjs%2Flocking/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@apiratorjs%2Flocking/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/packages/@apiratorjs%2Flocking/codemeta","maintainers":[{"uuid":"apiratorjs","login":"apiratorjs","name":null,"email":"apirator.framework@gmail.com","url":null,"packages_count":6,"html_url":"https://www.npmjs.com/~apiratorjs","role":null,"created_at":"2025-03-02T14:37:49.404Z","updated_at":"2025-03-02T14:37:49.404Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/npmjs.org/maintainers/apiratorjs/packages"}]}