{"_id":"@alesha-nov/auth-react","_rev":"4-29c7dfca23d293411c29b1e6b6b1a4b8","name":"@alesha-nov/auth-react","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"@alesha-nov/auth-react","version":"0.1.0","keywords":["alesha","auth","react","hooks","context","auth-guard"],"author":{"name":"JuniYadi"},"license":"MIT","_id":"@alesha-nov/auth-react@0.1.0","maintainers":[{"name":"juniyadi","email":"juniyadi94@gmail.com"}],"homepage":"https://github.com/JuniYadi/alesha-nov#readme","bugs":{"url":"https://github.com/JuniYadi/alesha-nov/issues"},"dist":{"shasum":"592141743494f38770f1cca13ce9fa9dd2451f75","tarball":"https://registry.npmjs.org/@alesha-nov/auth-react/-/auth-react-0.1.0.tgz","fileCount":11,"integrity":"sha512-zgOw3B7bNw2zzOSxoEN9TY3TvLuesk5GYO36ZkI1PQdYN5BNGv+5HUaXaDK+2Vv/6U4UsmGLia3LFZlPjgoSdA==","signatures":[{"sig":"MEUCIQCkH0EXIXzKeXCfLQj5ChZmvLPTZInFsNwpHdXkMbG2nwIgNiojqZqBwT/EkyvSokI7xkEES0oAqjlAgUDePRMkBXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14438},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./hooks":{"types":"./dist/hooks.d.ts","import":"./dist/hooks.js"},"./context":{"types":"./dist/context.d.ts","import":"./dist/context.js"}},"gitHead":"0e1c562bb4308bfa44d54bf8c2a389fb26cc0ede","scripts":{"lint":"eslint src --ext .ts,.tsx","test":"bun test --preload ./src/test-setup.ts","build":"tsup src/index.ts src/context.tsx src/hooks.ts --format esm --dts --clean --minify","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"juniyadi","email":"juniyadi94@gmail.com"},"repository":{"url":"git+https://github.com/JuniYadi/alesha-nov.git","type":"git","directory":"packages/auth-react"},"_npmVersion":"10.9.4","description":"React client toolkit for authentication state, hooks, and route guarding.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.2","react":"^19.0.0","react-dom":"^19.2.4","@types/react":"^19.0.0","@types/react-dom":"^19.2.3","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auth-react_0.1.0_1775759901339_0.551051427596762","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alesha-nov/auth-react","version":"0.2.0","keywords":["alesha","auth","react","hooks","context","auth-guard"],"author":{"name":"JuniYadi"},"license":"MIT","_id":"@alesha-nov/auth-react@0.2.0","maintainers":[{"name":"juniyadi","email":"juniyadi94@gmail.com"}],"homepage":"https://github.com/JuniYadi/alesha-nov#readme","bugs":{"url":"https://github.com/JuniYadi/alesha-nov/issues"},"dist":{"shasum":"69cb3bc3913dbf14705991640506626b58a37693","tarball":"https://registry.npmjs.org/@alesha-nov/auth-react/-/auth-react-0.2.0.tgz","fileCount":11,"integrity":"sha512-JPRPxTTxcqK4KkIJSZvSnMtodWZOGSqI9unVetefIEYHcc88TjdW6FjMCa92A5/rio7klLhDwlSFuoltS7+SsA==","signatures":[{"sig":"MEUCIQDXubvbElqQmJ1RB/cgzLPaJVZF+YtuIoGinX0pLFoFewIgaUodQ0dMWwfP9SHNcGkEvtSeVChVUk8hNV8+88siu0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alesha-nov%2fauth-react@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19717},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./hooks":{"types":"./dist/hooks.d.ts","import":"./dist/hooks.js"},"./context":{"types":"./dist/context.d.ts","import":"./dist/context.js"}},"gitHead":"69121aac3dfd5e332d6c54f9fd27162d99245343","scripts":{"lint":"eslint src --ext .ts,.tsx","test":"bun test --preload ./src/test-setup.ts --max-concurrency 1","build":"tsup src/index.ts src/context.tsx src/hooks.ts --format esm --dts --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e6698c15-3a1f-4f28-a45f-faf9c8db6e4f"}},"repository":{"url":"git+https://github.com/JuniYadi/alesha-nov.git","type":"git","directory":"packages/auth-react"},"_npmVersion":"11.11.0","description":"React client toolkit for authentication state, hooks, and route guarding.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.2","react":"^19.0.0","react-dom":"^19.2.4","@types/react":"^19.0.0","@types/react-dom":"^19.2.3","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auth-react_0.2.0_1775899672080_0.7960313071400149","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@alesha-nov/auth-react","version":"0.3.0","keywords":["alesha","auth","react","hooks","context","auth-guard"],"author":{"name":"JuniYadi"},"license":"MIT","_id":"@alesha-nov/auth-react@0.3.0","maintainers":[{"name":"juniyadi","email":"juniyadi94@gmail.com"}],"homepage":"https://github.com/JuniYadi/alesha-nov#readme","bugs":{"url":"https://github.com/JuniYadi/alesha-nov/issues"},"dist":{"shasum":"cc231376daadb66f67fc3edea01c077e50c8a598","tarball":"https://registry.npmjs.org/@alesha-nov/auth-react/-/auth-react-0.3.0.tgz","fileCount":11,"integrity":"sha512-06pyTpVaiEL/48/ObgpeSkjaI4I/46ENwpYAHa+2ifaaLMxChwIpLSpFztcghlCejk4ShZ8PXt5q5yJFfZkF8A==","signatures":[{"sig":"MEQCICAZHdFvZkq17lh7bhrPpJPTIfZe40PkdVyZJUrcliAHAiBccikYuKYBV8oDnEo2+48zpTCkCIqRhN+J9upnp2oyog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alesha-nov%2fauth-react@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22216},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./hooks":{"types":"./dist/hooks.d.ts","import":"./dist/hooks.js"},"./context":{"types":"./dist/context.d.ts","import":"./dist/context.js"}},"gitHead":"8aa0beab644671db784f130104e9f447b8f1edf4","scripts":{"lint":"eslint src --ext .ts,.tsx","test":"bun test --preload ./src/test-setup.ts --max-concurrency 1","build":"tsup src/index.ts src/context.tsx src/hooks.ts --format esm --dts --clean","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e6698c15-3a1f-4f28-a45f-faf9c8db6e4f"}},"repository":{"url":"git+https://github.com/JuniYadi/alesha-nov.git","type":"git","directory":"packages/auth-react"},"_npmVersion":"11.11.0","description":"React client toolkit for authentication state, hooks, and route guarding.","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.0.2","react":"^19.0.0","react-dom":"^19.2.4","@types/react":"^19.0.0","@types/react-dom":"^19.2.3","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/auth-react_0.3.0_1776317199771_0.8313631926529161","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@alesha-nov/auth-react","version":"0.3.1","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./context":{"types":"./dist/context.d.ts","import":"./dist/context.js"},"./hooks":{"types":"./dist/hooks.d.ts","import":"./dist/hooks.js"}},"scripts":{"build":"tsup src/index.ts src/context.tsx src/hooks.ts --format esm --dts --clean","typecheck":"tsc -p tsconfig.json --noEmit","lint":"eslint src --ext .ts,.tsx","test":"bun test --preload ./src/test-setup.ts --max-concurrency 1"},"peerDependencies":{"react":">=18.0.0"},"devDependencies":{"@testing-library/react":"^16.3.2","@types/react":"^19.0.0","@types/react-dom":"^19.2.3","jsdom":"^29.0.2","react":"^19.0.0","react-dom":"^19.2.4"},"repository":{"type":"git","url":"git+https://github.com/JuniYadi/alesha-nov.git","directory":"packages/auth-react"},"license":"MIT","author":{"name":"JuniYadi"},"keywords":["alesha","auth","react","hooks","context","auth-guard"],"homepage":"https://github.com/JuniYadi/alesha-nov#readme","bugs":{"url":"https://github.com/JuniYadi/alesha-nov/issues"},"engines":{"node":">=22.12.0","bun":">=1.3.0"},"publishConfig":{"access":"public"},"gitHead":"c86cb010072f05dd615cc3ff449850ac4a20b7c0","_id":"@alesha-nov/auth-react@0.3.1","description":"React client toolkit for authentication state, hooks, and route guarding.","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-RI8ZVAeuHDEDCE/Q+amwCXsdL3J1BzBwSlaPQlrdN6FC5rYZXaqgJ+aBNsDGhMa3QK3ZZhbhOs8fJ7gq8xNV4w==","shasum":"e87314ebd7075adbf2b2b2794b899b947c4d33f7","tarball":"https://registry.npmjs.org/@alesha-nov/auth-react/-/auth-react-0.3.1.tgz","fileCount":11,"unpackedSize":22216,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alesha-nov%2fauth-react@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAfb1jP+QUVE9T4TZCoNJ8rgZwIPMOCJh2Yha8RS9JrAAiEA98a37aBfXYMoyoIBvzXT2olRSGLtuAzdfrUPsluX+JE="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e6698c15-3a1f-4f28-a45f-faf9c8db6e4f"}},"directories":{},"maintainers":[{"name":"juniyadi","email":"juniyadi94@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/auth-react_0.3.1_1776622029808_0.25690941754693597"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-09T18:38:21.211Z","modified":"2026-04-19T18:07:10.258Z","0.1.0":"2026-04-09T18:38:21.514Z","0.2.0":"2026-04-11T09:27:52.231Z","0.3.0":"2026-04-16T05:26:39.902Z","0.3.1":"2026-04-19T18:07:09.951Z"},"bugs":{"url":"https://github.com/JuniYadi/alesha-nov/issues"},"author":{"name":"JuniYadi"},"license":"MIT","homepage":"https://github.com/JuniYadi/alesha-nov#readme","keywords":["alesha","auth","react","hooks","context","auth-guard"],"repository":{"type":"git","url":"git+https://github.com/JuniYadi/alesha-nov.git","directory":"packages/auth-react"},"description":"React client toolkit for authentication state, hooks, and route guarding.","maintainers":[{"name":"juniyadi","email":"juniyadi94@gmail.com"}],"readme":"# @alesha-nov/auth-react\n\nReact client toolkit for authentication state, hooks, and route guarding.\n\n## Implemented Features\n\n- `AuthProvider` to fetch `/session` + `/me`\n- `useAuth()` state hook\n- `useLogin()`, `useSignup()`, `useLogout()` mutation hooks\n- `usePasswordResetRequest()`, `useResetPassword()` hooks\n- `useMagicLinkRequest()`, `useMagicLinkVerify()` hooks\n- `useOAuthLogin()` hook for provider authorize redirect\n- `useOAuthLink()` hook to link provider account credentials to authenticated users\n- `useAuthGuard()` and `AuthGuard` component\n- Session-expiry-aware refresh scheduling in provider\n- Navigation adapter support for route guards (`push`/`replace`)\n- Configurable `baseUrl` + `basePath`\n\n## Required for Target Auth (Email/Password, Magic Link, Google/GitHub)\n\n- Consume auth-web endpoints consistently\n- Keep client auth state synchronized with cookie session\n- Provide route protection UX for protected views\n\n## Remaining / Follow-up\n\n- Recommended: add SSR-first guard patterns in app router (outside this package)\n\n## Usage: useOAuthLink\n\n```ts\nimport { useOAuthLink, useOAuthLogin } from \"@alesha-nov/auth-react\";\nimport type { OAuthAccountLinkInput } from \"@alesha-nov/auth-react\";\n\nfunction LinkGoogleAccount() {\n  const { link, data, loading, error } = useOAuthLink();\n\n  const handleSubmit = async () => {\n    try {\n      const input: OAuthAccountLinkInput = {\n        providerAccountId: \"google-oauth-account-id\",\n        providerEmail: \"user@gmail.com\",\n      };\n      await link(\"google\", input);\n    } catch {\n      // handle error\n    }\n  };\n\n  return {\n    loading,\n    error,\n    linkedProvider: data?.provider,\n    providerAccountId: data?.providerAccountId,\n  };\n}\n```\n\nNotes:\n- This hook requires an authenticated `AuthProvider` context.\n- The request targets `POST /oauth/:provider/link` and returns the created/linked account.\n\n## Tracking Issues\n\nCreate/update issues for any new gaps discovered. Historical issues #12/#38/#39/#40 are closed.\n","readmeFilename":"README.md"}