{"_id":"@caffeinebounce/identity","_rev":"5-1f601b2352e4bbc7787ff5dc1d3c6f45","name":"@caffeinebounce/identity","dist-tags":{"latest":"0.12.5"},"versions":{"0.12.1":{"name":"@caffeinebounce/identity","version":"0.12.1","license":"MIT","_id":"@caffeinebounce/identity@0.12.1","maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"homepage":"https://github.com/caffeinebounce/shared-packages#readme","bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"dist":{"shasum":"3760efe4e13bee5a21a5e14afe97eb34c9466900","tarball":"https://registry.npmjs.org/@caffeinebounce/identity/-/identity-0.12.1.tgz","fileCount":11,"integrity":"sha512-wxVIua7+cTbqsDc/dkw0swQJkT9luira6DPDOA7lROfROFenZlVuN/5llUI+evyu8uDIFuc0LPAiFU4+MSQhIg==","signatures":[{"sig":"MEUCIQCH70xuwZsqiq6vFXafQMkjykXnP9+Ul6u4bpFCf33lmQIgdVd/1g1xZQAhPKrTBlIteD6L/IiXVjulaqz01MaHkvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":533527},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"gitHead":"5dfd175bac29e205d94e90538793c926e80b97b1","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"yarn run -T vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","test:watch":"yarn run -T vitest"},"_npmUser":{"name":"caffienebounce","email":"doug@douglasebanks.com"},"repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/identity"},"_npmVersion":"11.12.1","description":"Authentication components and handlers for Caffeine Bounce projects","directories":{},"_nodeVersion":"25.9.0","dependencies":{"sonner":"^2.0.7","input-otp":"^1.4.2","validator":"^13.15.26","lucide-react":"^0.577.0","@supabase/ssr":"^0.8.0","@caffeinebounce/ui":"^0.62.2","@supabase/supabase-js":"^2.49.4","@caffeinebounce/logger":"^0.10.0","@caffeinebounce/shared-utils":"^0.7.136"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.5.1","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^25.5.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/validator":"^13.15.10"},"peerDependencies":{"next":">=14.0.0","react":"^18 || ^19","react-dom":"^18 || ^19"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/identity_0.12.1_1782941934625_0.6597659155491196","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"@caffeinebounce/identity","version":"0.12.2","license":"MIT","_id":"@caffeinebounce/identity@0.12.2","maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"homepage":"https://github.com/caffeinebounce/shared-packages#readme","bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"dist":{"shasum":"a4dec3f868fd5a9c25257aa0000ebe2e73424047","tarball":"https://registry.npmjs.org/@caffeinebounce/identity/-/identity-0.12.2.tgz","fileCount":11,"integrity":"sha512-4TMK68OwhEGqozoGyhZucNYmM0dd8R6Y9p7cZifawFSvOzx22PyC1rcKb3zT6TLQR29og2L1xFZ2quM+ldxCZQ==","signatures":[{"sig":"MEYCIQDYzSgvo/o0KOUcGBP4MOMYr6EnEXAYbIA56z8tU8WZ1AIhAJA4baMLwT2FMjV+bUj6kTjdvUERL0cMDZNGuI7VXOSV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":540023},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"gitHead":"4371481d62fb7174d61131fabf1beeb1c745268a","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"yarn run -T vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","test:watch":"yarn run -T vitest"},"_npmUser":{"name":"caffienebounce","email":"doug@douglasebanks.com"},"repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/identity"},"_npmVersion":"11.12.1","description":"Authentication components and handlers for Caffeine Bounce projects","directories":{},"_nodeVersion":"25.9.0","dependencies":{"sonner":"^2.0.7","input-otp":"^1.4.2","validator":"^13.15.26","lucide-react":"^0.577.0","@supabase/ssr":"^0.8.0","@caffeinebounce/ui":"^0.62.3","@supabase/supabase-js":"^2.49.4","@caffeinebounce/logger":"^0.10.0","@caffeinebounce/shared-utils":"^0.7.136"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.5.1","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^25.5.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/validator":"^13.15.10"},"peerDependencies":{"next":">=14.0.0","react":"^18 || ^19","react-dom":"^18 || ^19"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/identity_0.12.2_1783693119116_0.8374134361527321","host":"s3://npm-registry-packages-npm-production"}},"0.12.3":{"name":"@caffeinebounce/identity","version":"0.12.3","license":"MIT","_id":"@caffeinebounce/identity@0.12.3","maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"homepage":"https://github.com/caffeinebounce/shared-packages#readme","bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"dist":{"shasum":"832ec44b07449613cbf6655984ae74ce648ef389","tarball":"https://registry.npmjs.org/@caffeinebounce/identity/-/identity-0.12.3.tgz","fileCount":11,"integrity":"sha512-sledu2FWS7zNXZfPZTivv7+QlxHkCS2k046EjYfUkM5GNdUOyKSbx6gzt+f6pUB89KtQ4wncVgHh2wk1vcyEzQ==","signatures":[{"sig":"MEQCIFM+20PpQk0RCgXQ86Lb6DDpDhbJxZEe/Xu5frY//3uuAiAcDsR0S0OHsi3wfhZoo101XGyfrJvLtYzNDPBAUbv1rA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":541943},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"gitHead":"6b728d69b69600304b4da5f2dfe93a2254eb9122","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"yarn run -T vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","test:watch":"yarn run -T vitest"},"_npmUser":{"name":"caffienebounce","email":"doug@douglasebanks.com"},"repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/identity"},"_npmVersion":"11.12.1","description":"Authentication components and handlers for Caffeine Bounce projects","directories":{},"_nodeVersion":"25.9.0","dependencies":{"sonner":"^2.0.7","input-otp":"^1.4.2","validator":"^13.15.26","lucide-react":"^0.577.0","@supabase/ssr":"^0.8.0","@caffeinebounce/ui":"^0.62.3","@supabase/supabase-js":"^2.49.4","@caffeinebounce/logger":"^0.10.0","@caffeinebounce/shared-utils":"^0.7.136"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.5.1","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^25.5.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/validator":"^13.15.10"},"peerDependencies":{"next":">=14.0.0","react":"^18 || ^19","react-dom":"^18 || ^19"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/identity_0.12.3_1784429359663_0.5187331193161031","host":"s3://npm-registry-packages-npm-production"}},"0.12.4":{"name":"@caffeinebounce/identity","version":"0.12.4","license":"MIT","_id":"@caffeinebounce/identity@0.12.4","maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"homepage":"https://github.com/caffeinebounce/shared-packages#readme","bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"dist":{"shasum":"2a8d85306f6c9665f0d07632fae44ce96b6d8ec6","tarball":"https://registry.npmjs.org/@caffeinebounce/identity/-/identity-0.12.4.tgz","fileCount":11,"integrity":"sha512-Ffo/oNU7N4oYdl3soWg1AMDFGmd0xVot7Gxwk6e5PPHWKeLoqGQQYn69TK/17xXZsaE0tLNKc9XE0UD/+NZ0tg==","signatures":[{"sig":"MEUCIDTqiG7ebu06B2Xn9SgzpXIK6HDe/qrBrzWyZF/ju4XIAiEArv7s3OUvg+xLaqPw3qlXZlxxarrf7f4k3ZvMDe3wYsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":541989},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"gitHead":"1fe05266ef3810a6f76d9320bd8e0fa658864191","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"yarn run -T vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","test:watch":"yarn run -T vitest"},"_npmUser":{"name":"caffienebounce","email":"doug@douglasebanks.com"},"repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/identity"},"_npmVersion":"11.12.1","description":"Authentication components and handlers for Caffeine Bounce projects","directories":{},"_nodeVersion":"25.9.0","dependencies":{"sonner":"^2.0.7","input-otp":"^1.4.2","validator":"^13.15.26","lucide-react":"^0.577.0","@supabase/ssr":"^0.8.0","@caffeinebounce/ui":"^0.62.3","@supabase/supabase-js":"^2.49.4","@caffeinebounce/logger":"^0.10.0","@caffeinebounce/shared-utils":"^0.7.136"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.5.1","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^25.5.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/validator":"^13.15.10"},"peerDependencies":{"next":">=14.0.0","react":"^18 || ^19","react-dom":"^18 || ^19"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/identity_0.12.4_1784431058602_0.8590140566657631","host":"s3://npm-registry-packages-npm-production"}},"0.12.5":{"_id":"@caffeinebounce/identity@0.12.5","bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"dist":{"shasum":"ee62b1b679f24006a92a667e81b38324784ddb52","tarball":"https://registry.npmjs.org/@caffeinebounce/identity/-/identity-0.12.5.tgz","fileCount":11,"integrity":"sha512-nq3SZNePJcs6bM9n7kfSCMNWj//k74QD/9/0cbYA70/2J7TRZDqFSIOTEOi8mRUwQkHmg0iyEWjWwLirtcfobA==","signatures":[{"sig":"MEQCIGHHbh3Q0h8bZWvW6TN0pHf0CyScvDeSCqb7xyVFKSWYAiAYc/2eXVKVNfNV4WzO3hdhndTtkNTPQ71aLa/aOLWpSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCzyDWH4yOgpDAtT35ekSOMvP4npr8zDo84hxunkSyvGgIhALlDDAXW1ZqV74mVXXVeBGTPMREN44E1EO6PLgTZjwRD"}],"unpackedSize":541989},"main":"./dist/index.js","name":"@caffeinebounce/identity","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./server":{"import":{"types":"./dist/server.d.mts","default":"./dist/server.mjs"},"require":{"types":"./dist/server.d.ts","default":"./dist/server.js"}}},"gitHead":"e1f57e3ac4204a6e92064f089e22e24723973187","license":"MIT","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"yarn run -T vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","test:watch":"yarn run -T vitest"},"version":"0.12.5","_npmUser":{"name":"caffienebounce","email":"doug@douglasebanks.com"},"homepage":"https://github.com/caffeinebounce/shared-packages#readme","repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/identity"},"_npmVersion":"11.12.1","description":"Authentication components and handlers for Caffeine Bounce projects","directories":{},"maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"_nodeVersion":"25.9.0","dependencies":{"sonner":"^2.0.7","input-otp":"^1.4.2","validator":"^13.15.26","lucide-react":"^0.577.0","@supabase/ssr":"^0.8.0","@caffeinebounce/ui":"^0.63.0","@supabase/supabase-js":"^2.49.4","@caffeinebounce/logger":"^0.10.0","@caffeinebounce/shared-utils":"^0.7.136"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.5.1","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^25.5.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@types/validator":"^13.15.10"},"peerDependencies":{"next":">=14.0.0","react":"^18 || ^19","react-dom":"^18 || ^19"},"peerDependenciesMeta":{"next":{"optional":false}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/identity_0.12.5_1789863850045_0.6606244788139806"}}},"time":{"created":"2026-07-01T21:38:54.421Z","modified":"2026-09-20T00:24:10.430Z","0.12.1":"2026-07-01T21:38:54.812Z","0.12.2":"2026-07-10T14:18:39.282Z","0.12.3":"2026-07-19T02:49:19.797Z","0.12.4":"2026-07-19T03:17:38.747Z","0.12.5":"2026-09-20T00:24:10.156Z"},"bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"license":"MIT","homepage":"https://github.com/caffeinebounce/shared-packages#readme","repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/identity"},"description":"Authentication components and handlers for Caffeine Bounce projects","maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"readme":"# @caffeinebounce/identity\n\nReusable auth UI, Supabase auth helpers, callback handler contracts, and\nidentity utilities.\n\n## Public Entrypoints\n\n- `@caffeinebounce/identity` exports auth UI, client-facing hooks, callback\n  handler types, and shared identity utilities.\n- `@caffeinebounce/identity/server` exports server-safe callback handlers and\n  utilities without client component directives.\n\n## Auth Callback Policy\n\n`createAuthCallbackHandler` owns reusable OAuth and OTP callback mechanics:\nsafe redirect parsing, Supabase exchange/verification, authenticated user\nlookup, post-auth hooks, and error redirects.\n\nConsumers own product-specific policy. Use `postAuthHook` for app-local setup,\n`resolveSuccessRedirect` for role or approval routing, `isLinkingFlow` for\nconsumer account-linking routes, and `resolveLinkingErrorMessage` for branded\nlinking-error copy.\n\n## Belongs Here\n\n- Shared sign-in, sign-up, password reset, MFA, account settings, callback, and\n  redirect behavior.\n- Typed auth contracts that multiple apps can wire to their own routes.\n\n## Does Not Belong Here\n\n- App-specific authorization policy, private route structure, branded auth copy,\n  database migrations, or org-specific business rules.\n\n## Focused Commands\n\n```bash\ncorepack yarn turbo run lint typecheck test build --filter=@caffeinebounce/identity\n```\n\n## Gotchas\n\n- Keep client and server surfaces separate.\n- Do not import browser-only code from `@caffeinebounce/identity/server`.\n- Preserve callback and redirect behavior as public contracts.\n- Add a changeset for published behavior, source, manifest, or export changes.\n","readmeFilename":"README.md"}