{"_id":"@api-hooks/packagist","_rev":"2-1a37b023f8dd3897d15fc378d4a62e44","name":"@api-hooks/packagist","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@api-hooks/packagist","version":"1.0.0","keywords":["react","hooks","packagist","composer","php","packages","api","react-query","tanstack"],"author":{"url":"https://github.com/ElJijuna","name":"pilmee","email":"pilmee@gmail.com"},"license":"MIT","_id":"@api-hooks/packagist@1.0.0","maintainers":[{"name":"pilmee","email":"pilmee@gmail.com"}],"homepage":"https://github.com/ElJijuna/api-hooks#readme","bugs":{"url":"https://github.com/ElJijuna/api-hooks/issues"},"dist":{"shasum":"944b7487f0fbfb9e2c65a9193f9c14b9eab01bb8","tarball":"https://registry.npmjs.org/@api-hooks/packagist/-/packagist-1.0.0.tgz","fileCount":71,"integrity":"sha512-iKLbWmZAYZbDPYo+B7Ma22/1ylmqW4+R7qpAoOr2ABGyDeTc1y06lllh0MWxcYuQit9r+VugrVVa75Oxmn98HA==","signatures":[{"sig":"MEUCIGm0RHVy2crqdmHxZ10q/3U5/b8+rVbRrh45IjZxpsMrAiEAxXNf5IW4VPLicUjDQApuM6dxXOwxB6xLyLDiSlF1hSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59683},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"}},"gitHead":"86e8a73ee258bf48cd561cf0439a51bb5df2fe64","scripts":{"dev":"vite build --watch","docs":"typedoc","test":"jest --passWithNoTests","build":"vite build && tsc --emitDeclarationOnly --declarationMap","typecheck":"tsc --noEmit","test:coverage":"jest --coverage --passWithNoTests"},"_npmUser":{"name":"pilmee","email":"pilmee@gmail.com"},"repository":{"url":"git+https://github.com/ElJijuna/api-hooks.git","type":"git","directory":"packages/packagist"},"_npmVersion":"11.14.1","description":"React hooks for the Packagist API, built on @tanstack/react-query","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"php-packagist-api-client":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","vite":"^8.0.16","react":"^19.2.7","typedoc":"^0.28.19","react-dom":"^19.2.7","@tanstack/react-query":"^5.101.0","@testing-library/react":"^16.3.2","jest-environment-jsdom":"^30.4.1","vite-magic-tree-shaking":"^1.0.0"},"peerDependencies":{"react":">=19.0.0","@tanstack/react-query":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/packagist_1.0.0_1780939149802_0.555389365487083","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@api-hooks/packagist","version":"1.1.0","description":"React hooks for the Packagist API, built on @tanstack/react-query","keywords":["react","hooks","packagist","composer","php","packages","api","react-query","tanstack"],"license":"MIT","homepage":"https://github.com/ElJijuna/api-hooks#readme","repository":{"type":"git","url":"git+https://github.com/ElJijuna/api-hooks.git","directory":"packages/packagist"},"bugs":{"url":"https://github.com/ElJijuna/api-hooks/issues"},"publishConfig":{"access":"public"},"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts","import":"./dist/types.js"}},"sideEffects":false,"scripts":{"build":"vite build && tsc --emitDeclarationOnly --declarationMap","dev":"vite build --watch","test":"jest --passWithNoTests","test:coverage":"jest --coverage --passWithNoTests","typecheck":"tsc --noEmit","docs":"typedoc"},"peerDependencies":{"@tanstack/react-query":"^5.0.0","react":">=19.0.0"},"dependencies":{"php-packagist-api-client":"^1.0.0"},"devDependencies":{"@tanstack/react-query":"^5.101.0","@testing-library/react":"^16.3.2","jest":"^30.4.2","jest-environment-jsdom":"^30.4.1","react":"^19.2.7","react-dom":"^19.2.7","typedoc":"^0.28.19","vite":"^8.0.16","vite-magic-tree-shaking":"^1.0.0"},"author":{"name":"pilmee","email":"pilmee@gmail.com","url":"https://github.com/ElJijuna"},"gitHead":"9a44d786b65357afd0f887257b24d59a0e823b1e","_id":"@api-hooks/packagist@1.1.0","_nodeVersion":"22.23.1","_npmVersion":"11.18.0","dist":{"integrity":"sha512-Q3qFwbdRu2LhOUzJZBvoOmCFXc7PAG7KbmDD/HVd2IOKyzDE4ztRzJ1GeTxzQMgfJTrmOWV1dCwmmZhFbW5hwQ==","shasum":"c74cdc71cd83539ff4cae1eb5c43419c613996bc","tarball":"https://registry.npmjs.org/@api-hooks/packagist/-/packagist-1.1.0.tgz","fileCount":71,"unpackedSize":64380,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDqBHoYkEWd5vlAjMJw4W6x1ggLHVaQ46HlRBUWbFYNewIgQ523/x3RyYhP/Qb8GaEkdnVQMc9cHzC2gNVl+m75f/0="}]},"_npmUser":{"name":"pilmee","email":"pilmee@gmail.com"},"directories":{},"maintainers":[{"name":"pilmee","email":"pilmee@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/packagist_1.1.0_1782996348457_0.11634195899245281"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-08T17:19:09.595Z","modified":"2026-07-02T12:45:48.761Z","1.0.0":"2026-06-08T17:19:09.948Z","1.1.0":"2026-07-02T12:45:48.589Z"},"bugs":{"url":"https://github.com/ElJijuna/api-hooks/issues"},"author":{"name":"pilmee","email":"pilmee@gmail.com","url":"https://github.com/ElJijuna"},"license":"MIT","homepage":"https://github.com/ElJijuna/api-hooks#readme","keywords":["react","hooks","packagist","composer","php","packages","api","react-query","tanstack"],"repository":{"type":"git","url":"git+https://github.com/ElJijuna/api-hooks.git","directory":"packages/packagist"},"description":"React hooks for the Packagist API, built on @tanstack/react-query","maintainers":[{"name":"pilmee","email":"pilmee@gmail.com"}],"readme":"# @api-hooks/packagist\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/ElJijuna/api-hooks/main/public/assets/api-hooks.png\" alt=\"api-hooks logo\" width=\"240\" />\n</p>\n\nReact hooks for the Packagist API, built on [`php-packagist-api-client`](https://www.npmjs.com/package/php-packagist-api-client) and [`@tanstack/react-query`](https://tanstack.com/query).\n\n## Installation\n\n```bash\nnpm install @api-hooks/packagist php-packagist-api-client @tanstack/react-query\n```\n\n## Setup\n\nWrap your app with `QueryClientProvider`. Add `PackagistClientProvider` when you need client options such as auth credentials or a custom user agent.\n\n```tsx\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { PackagistClientProvider } from '@api-hooks/packagist';\n\nconst queryClient = new QueryClient();\n\nexport default function App() {\n  return (\n    <QueryClientProvider client={queryClient}>\n      <PackagistClientProvider options={{ userAgent: 'my-app (mailto:me@example.com)' }}>\n        <YourApp />\n      </PackagistClientProvider>\n    </QueryClientProvider>\n  );\n}\n```\n\nAuthenticated package mutations require `username` and `apiToken`:\n\n```tsx\n<PackagistClientProvider options={{ username: 'user', apiToken: process.env.PACKAGIST_TOKEN }}>\n  <YourApp />\n</PackagistClientProvider>\n```\n\n## Hooks\n\n| Hook | Description |\n| ---- | ----------- |\n| `usePackagistListPackages(params?, options?)` | List package names, optionally filtered by vendor/type |\n| `usePackagistPopular(params?, options?)` | Popular packages |\n| `usePackagistSearch(params, options?)` | Search packages by query, tags, or type |\n| `usePackagistPackage(name, options?)` | Full package metadata |\n| `usePackagistPackageMetadata(name, params?, options?)` | Composer v2 metadata |\n| `usePackagistPackageStats(name, options?)` | Package download stats |\n| `usePackagistPackageSecurityAdvisories(name, options?)` | Advisories for one package |\n| `usePackagistMetadataChanges(params?, options?)` | Metadata change polling |\n| `usePackagistStatistics(options?)` | Global Packagist statistics |\n| `usePackagistSecurityAdvisories(params, options?)` | Advisories by packages or update timestamp |\n| `usePackagistCreatePackage()` | Create package mutation |\n| `usePackagistEditPackage()` | Edit package repository mutation |\n| `usePackagistUpdatePackage()` | Trigger package update mutation |\n\nAll query hooks return TanStack Query `UseQueryResult` and accept `{ enabled?: boolean }`.\nMutation hooks return `UseMutationResult`.\n\n```tsx\nimport { usePackagistSearch } from '@api-hooks/packagist';\n\nfunction PackageSearch() {\n  const { data, isLoading } = usePackagistSearch({ query: 'monolog', perPage: 5 });\n\n  if (isLoading) return <p>Loading...</p>;\n\n  return (\n    <ul>\n      {data?.results.map(pkg => (\n        <li key={pkg.name}>{pkg.name}</li>\n      ))}\n    </ul>\n  );\n}\n```\n\n## License\n\nMIT © [ElJijuna](https://github.com/ElJijuna)\n","readmeFilename":"README.md"}