{"_id":"@achrekarom/github-contribution-chart","_rev":"2-242be79379c9e56250398cdc2be74e61","name":"@achrekarom/github-contribution-chart","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@achrekarom/github-contribution-chart","version":"1.0.0","keywords":["github","contributions","calendar","heatmap","react"],"author":{"name":"Om Achrekar"},"license":"MIT","_id":"@achrekarom/github-contribution-chart@1.0.0","maintainers":[{"name":"achrekarom","email":"achrekarom@gmail.com"}],"homepage":"https://github.com/achrekarom12/git-contribution-chart#readme","bugs":{"url":"https://github.com/achrekarom12/git-contribution-chart/issues"},"dist":{"shasum":"879d7b7c39915a207127cbf43801bb64495f9466","tarball":"https://registry.npmjs.org/@achrekarom/github-contribution-chart/-/github-contribution-chart-1.0.0.tgz","fileCount":8,"integrity":"sha512-BNDpef9wvX0t+ZmeYOfvHddsFAuLwNDpcTcLxRMyeSX65pBdVQ/b+sffdMX8diHxhp8X5Hgm5Sq9aIdxu7xBqA==","signatures":[{"sig":"MEUCIDDP+b302i5beBUsPAL4hgBeUa3gHqZH/awOpfbP1CmzAiEA2ayUzY4bbT8iYbVymaBO4+vkNhRXcZHX/Kqnk1N9lPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53028},"main":"./dist/index.cjs","type":"commonjs","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3034c6f258857a041bb80657b29e4c17fad87066","scripts":{"dev":"tsup --watch","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"achrekarom","email":"achrekarom@gmail.com"},"repository":{"url":"git+https://github.com/achrekarom12/git-contribution-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"Headless GitHub contribution calendar: data fetcher + zero-dep React chart component","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ms":"^2.1.3","mz":"^2.7.0","cac":"^6.7.14","ufo":"^1.6.3","fdir":"^6.5.0","mlly":"^1.8.2","acorn":"^8.16.0","debug":"^4.4.3","pathe":"^2.0.3","joycon":"^3.1.1","rollup":"^4.60.2","confbox":"^0.1.8","consola":"^3.4.2","csstype":"^3.2.3","esbuild":"^0.27.7","pirates":"^4.0.7","sucrase":"^3.35.1","thenify":"^3.3.1","chokidar":"^4.0.3","fsevents":"^2.3.3","readdirp":"^4.1.2","tinyexec":"^0.3.2","commander":"^4.1.1","lilconfig":"^3.1.3","picomatch":"^4.0.4","pkg-types":"^1.3.1","tree-kill":"^1.2.2","picocolors":"^1.1.1","source-map":"^0.7.6","tinyglobby":"^0.2.16","any-promise":"^1.3.0","thenify-all":"^1.6.0","magic-string":"^0.30.21","resolve-from":"^5.0.0","undici-types":"^7.19.2","load-tsconfig":"^0.2.5","object-assign":"^4.1.1","bundle-require":"^5.1.0","lines-and-columns":"^1.2.4","postcss-load-config":"^6.0.1","ts-interface-checker":"^0.1.13","fix-dts-default-cjs-exports":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","dotenv":"^16.0.0","typescript":"^5","@types/node":"^25.6.0","@types/react":"^19"},"peerDependencies":{"react":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/github-contribution-chart_1.0.0_1776842385666_0.3514529879929442","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@achrekarom/github-contribution-chart","version":"1.0.1","description":"Headless GitHub contribution calendar: data fetcher + zero-dep React chart component","keywords":["github","contributions","calendar","heatmap","react"],"publishConfig":{"access":"public"},"homepage":"https://github.com/achrekarom12/git-contribution-chart#readme","bugs":{"url":"https://github.com/achrekarom12/git-contribution-chart/issues"},"repository":{"type":"git","url":"git+https://github.com/achrekarom12/git-contribution-chart.git"},"license":"MIT","author":{"name":"Om Achrekar"},"type":"commonjs","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs","types":"./dist/index.d.ts"}},"main":"./dist/index.cjs","types":"./dist/index.d.ts","scripts":{"build":"tsup","dev":"tsup --watch","prepublishOnly":"npm run build"},"dependencies":{"acorn":"^8.16.0","any-promise":"^1.3.0","bundle-require":"^5.1.0","cac":"^6.7.14","chokidar":"^4.0.3","commander":"^4.1.1","confbox":"^0.1.8","consola":"^3.4.2","csstype":"^3.2.3","debug":"^4.4.3","esbuild":"^0.27.7","fdir":"^6.5.0","fix-dts-default-cjs-exports":"^1.0.1","joycon":"^3.1.1","lilconfig":"^3.1.3","lines-and-columns":"^1.2.4","load-tsconfig":"^0.2.5","magic-string":"^0.30.21","mlly":"^1.8.2","ms":"^2.1.3","mz":"^2.7.0","object-assign":"^4.1.1","pathe":"^2.0.3","picocolors":"^1.1.1","picomatch":"^4.0.4","pirates":"^4.0.7","pkg-types":"^1.3.1","postcss-load-config":"^6.0.1","readdirp":"^4.1.2","resolve-from":"^5.0.0","rollup":"^4.60.2","source-map":"^0.7.6","sucrase":"^3.35.1","thenify":"^3.3.1","thenify-all":"^1.6.0","tinyexec":"^0.3.2","tinyglobby":"^0.2.16","tree-kill":"^1.2.2","ts-interface-checker":"^0.1.13","ufo":"^1.6.3","undici-types":"^7.19.2"},"devDependencies":{"@types/node":"^25.6.0","@types/react":"^19","dotenv":"^16.0.0","tsup":"^8.0.0","typescript":"^5"},"peerDependencies":{"react":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true}},"module":"./dist/index.js","gitHead":"f28806ac29b2c8d8089ba223ff233c50c84b6c0d","_id":"@achrekarom/github-contribution-chart@1.0.1","_nodeVersion":"22.18.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-6GsIyDp7CUkQSjLNOAQd/dU6lB7HDN655QxtktnDSpLq1RE6X1fTfWCwtGFPGNFP2F3GkzekhufpyjmfRbSOjg==","shasum":"c10d65ca27e4e3128351a30c63d91f6afb2c3af9","tarball":"https://registry.npmjs.org/@achrekarom/github-contribution-chart/-/github-contribution-chart-1.0.1.tgz","fileCount":8,"unpackedSize":53002,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFI4npdBcJ9BppxPWe9U8BdrkdZol+104PGe2WV14PF6AiEAwM6m56GBcue7+GMRsAsOCR9RXFCR4mCxyI2klts1IAw="}]},"_npmUser":{"name":"achrekarom","email":"achrekarom@gmail.com"},"directories":{},"maintainers":[{"name":"achrekarom","email":"achrekarom@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/github-contribution-chart_1.0.1_1776844431491_0.9180687249903079"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-22T07:19:45.519Z","modified":"2026-04-22T07:53:51.768Z","1.0.0":"2026-04-22T07:19:45.798Z","1.0.1":"2026-04-22T07:53:51.651Z"},"bugs":{"url":"https://github.com/achrekarom12/git-contribution-chart/issues"},"author":{"name":"Om Achrekar"},"license":"MIT","homepage":"https://github.com/achrekarom12/git-contribution-chart#readme","keywords":["github","contributions","calendar","heatmap","react"],"repository":{"type":"git","url":"git+https://github.com/achrekarom12/git-contribution-chart.git"},"description":"Headless GitHub contribution calendar: data fetcher + zero-dep React chart component","maintainers":[{"name":"achrekarom","email":"achrekarom@gmail.com"}],"readme":"# github-contribution-chart\n\nA tiny, headless npm package that:\n1. **Fetches** your GitHub contribution data via the GraphQL API.\n2. **Renders** it as a heatmap grid using a zero-dependency React component.\n\nNo third-party chart library required. Full TypeScript support.\n\n---\n\n> **Peer dependency:** React ≥ 17 is required only if you use the `<GitHubContributionChart>` component.\n\n---\n\n## Usage\n\n### 1. Fetch data (server-side / Node.js)\n\n```ts\nimport { fetchGitHubContributions } from 'github-contribution-chart';\n\n// Token is read from options.token, or process.env.GITHUB_TOKEN\nconst calendar = await fetchGitHubContributions('your-github-username', {\n    token: process.env.GITHUB_TOKEN,\n});\n```\n\n### 2. Render the chart (React)\n\n```tsx\nimport { GitHubContributionChart } from 'github-contribution-chart';\n\nexport default function MyPage() {\n    return (\n        <GitHubContributionChart\n            calendar={calendar}\n            colorScheme=\"dark\"  // 'dark' | 'light'\n            months={6}          // how many recent months to show\n        />\n    );\n}\n```\n\n### 3. Next.js Server Component example\n\n```tsx\n// app/page.tsx\nimport { fetchGitHubContributions, GitHubContributionChart } from 'github-contribution-chart';\n\nexport default async function Page() {\n    const calendar = await fetchGitHubContributions('achrekarom');\n\n    return (\n        <div style={{ width: '100%', height: 120 }}>\n            <GitHubContributionChart calendar={calendar} colorScheme=\"dark\" />\n        </div>\n    );\n}\n```\n\n---\n\n## API Reference\n\n### `fetchGitHubContributions(username, options?)`\n\n| Parameter | Type | Description |\n|---|---|---|\n| `username` | `string` | GitHub username |\n| `options.token` | `string` | GitHub PAT (`read:user` scope). Falls back to `process.env.GITHUB_TOKEN`. |\n| `options.fetchFn` | `typeof fetch` | Custom fetch implementation (for Node < 18 or testing). |\n\n**Returns:** `Promise<ContributionCalendar | null>`\n\n---\n\n### `<GitHubContributionChart>` Props\n\n| Prop | Type | Default | Description |\n|---|---|---|---|\n| `calendar` | `ContributionCalendar \\| null` | — | Data from `fetchGitHubContributions` |\n| `colorScheme` | `'dark' \\| 'light'` | `'dark'` | Built-in color palette |\n| `months` | `number` | `6` | Recent months to display |\n| `colors` | `Partial<Record<0\\|1\\|2\\|3\\|4, string>>` | — | Override per-level colors |\n| `gap` | `number` | `4` | Cell gap in pixels |\n| `cellRadius` | `number` | `3` | Cell border-radius in pixels |\n| `className` | `string` | — | Wrapper CSS class |\n| `style` | `CSSProperties` | — | Wrapper inline styles |\n\n---\n\n## GitHub Token\n\nCreate a fine-grained token at [github.com/settings/tokens](https://github.com/settings/tokens) with **read-only** access to your public data. Set it as `GITHUB_TOKEN` in your environment.\n\n---\n\n## License\n\nMIT © Om Achrekar\n","readmeFilename":"README.md"}