{"_id":"@authdog/sveltekit","_rev":"2-4537884812d51f79021abe99012579a8","name":"@authdog/sveltekit","dist-tags":{"latest":"0.2.1"},"versions":{"0.2.0":{"name":"@authdog/sveltekit","version":"0.2.0","_id":"@authdog/sveltekit@0.2.0","maintainers":[{"name":"dbrrt","email":"david@barrat.io"}],"homepage":"https://github.com/authdog-labs/web-sdk/tree/main/packages/sveltekit#readme","bugs":{"url":"https://github.com/authdog-labs/web-sdk/issues"},"dist":{"shasum":"56cab27b35d4c3d587c0657e8fa727348e235a6b","tarball":"https://registry.npmjs.org/@authdog/sveltekit/-/sveltekit-0.2.0.tgz","fileCount":20,"integrity":"sha512-HrCb8953ScY3FHcqkp3CgsI1CSSWSPfH7xycyLbm+fgLJl71NYrlGiZkBBEFJ0mNuZOGnkWQ0+JfPMV4LTnwnw==","signatures":[{"sig":"MEUCIB4D9BYUKdM2keU/FYRyKRvB6EoVpZUB87c36NxsokIPAiEAjFCtczYaZIWpK9XsfP+S1XRGQMG0eyqT1ILW+X8PiTg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89912},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","source":"src/index.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.js"}},"gitHead":"2e28588df3a56d3b3128ff96b57a575c6c44f0b9","scripts":{"ship":"bun run build && bun publish --access public","build":"bun run clean && tsup","clean":"rm -rf dist","format":"prettier --config .prettierrc.json --write \"**/*.{ts,md}\"","type-check":"tsc"},"_npmUser":{"name":"dbrrt","email":"david@barrat.io"},"repository":{"url":"git+https://github.com/authdog-labs/web-sdk.git","type":"git","directory":"packages/sveltekit"},"_npmVersion":"10.9.8","description":"Authdog SvelteKit SDK","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"@authdog/node-commons":"workspace:*"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","dotenv":"^16.4.7","svelte":"^5.0.0","vitest":"^3.2.6","prettier":"^3.4.2","typescript":"^5.7.2","@types/node":"^24.0.0","@sveltejs/kit":"^2.15.0"},"peerDependencies":{"@sveltejs/kit":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit_0.2.0_1782650466296_0.8274400655756662","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@authdog/sveltekit","version":"0.2.1","description":"Authdog SvelteKit SDK","source":"src/index.ts","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","import":"./dist/client.mjs","require":"./dist/client.js"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.js"}},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/authdog-labs/web-sdk.git","directory":"packages/sveltekit"},"homepage":"https://github.com/authdog-labs/web-sdk/tree/main/packages/sveltekit#readme","bugs":{"url":"https://github.com/authdog-labs/web-sdk/issues"},"scripts":{"format":"prettier --config .prettierrc.json --write \"**/*.{ts,md}\"","type-check":"tsc","clean":"rm -rf dist","build":"bun run clean && tsup","test":"vitest run","ship":"bun run build && bun publish --access public"},"dependencies":{"@authdog/node-commons":"workspace:*"},"peerDependencies":{"@sveltejs/kit":"^2.0.0"},"devDependencies":{"@sveltejs/kit":"^2.15.0","@types/node":"^26.0.0","dotenv":"^17.0.0","prettier":"^3.4.2","svelte":"^5.0.0","tsup":"^8.3.5","typescript":"^5.7.2","vitest":"^3.2.6"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"_id":"@authdog/sveltekit@0.2.1","gitHead":"8fc45848451bd383934b3dcccbad1cae7ba15fe8","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-UkNAT/cIhxMvuRMUqqPDDC8weHMxkdGBTNtuPxWKU6oq6e/WYzuyFwtv/uGdFuy5wqeocdYpo+gaS+uyI0f2Ug==","shasum":"f73f4f2b5e24cdd779a5f90970772edd2a799810","tarball":"https://registry.npmjs.org/@authdog/sveltekit/-/sveltekit-0.2.1.tgz","fileCount":20,"unpackedSize":89942,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFmC5u3SCE8tXAlnDYbyL4Ltz82uWF27oz+Yjpw+V+0BAiBJI5txiQQXed61p65m4bt0hGYkoycIiZg1cyd9KM23Jw=="}]},"_npmUser":{"name":"dbrrt","email":"david@barrat.io"},"directories":{},"maintainers":[{"name":"dbrrt","email":"david@barrat.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sveltekit_0.2.1_1783871987555_0.030045564631775656"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-28T12:41:06.060Z","modified":"2026-07-12T15:59:47.820Z","0.2.0":"2026-06-28T12:41:06.449Z","0.2.1":"2026-07-12T15:59:47.692Z"},"bugs":{"url":"https://github.com/authdog-labs/web-sdk/issues"},"homepage":"https://github.com/authdog-labs/web-sdk/tree/main/packages/sveltekit#readme","repository":{"type":"git","url":"git+https://github.com/authdog-labs/web-sdk.git","directory":"packages/sveltekit"},"description":"Authdog SvelteKit SDK","maintainers":[{"name":"dbrrt","email":"david@barrat.io"}],"readme":"# @authdog/sveltekit\n\nAuthdog SvelteKit SDK for authentication and user management.\n\nBuilt for SvelteKit's server model: a `handle` hook + framework-agnostic server\nhelpers manage sessions on the server, and a tiny vanilla client bootstrap\nhandles the login redirect — no UI peer dependency beyond SvelteKit itself.\n\n## Installation\n\n```bash\nbun add @authdog/sveltekit\n```\n\n## Usage\n\n### Server hook\n\nWire the hook once so every request gets `event.locals.authdog`:\n\n```ts\n// src/hooks.server.ts\nimport { createAuthdogHandle } from \"@authdog/sveltekit/server\";\n\nexport const handle = createAuthdogHandle({\n  publicKey: import.meta.env.PUBLIC_AUTHDOG_PUBLIC_KEY,\n});\n```\n\nComposing with other hooks? Use `sequence`:\n\n```ts\nimport { sequence } from \"@sveltejs/kit/hooks\";\nimport { createAuthdogHandle } from \"@authdog/sveltekit/server\";\n\nexport const handle = sequence(\n  createAuthdogHandle({ publicKey: import.meta.env.PUBLIC_AUTHDOG_PUBLIC_KEY }),\n  myOtherHandle,\n);\n```\n\nAugment `App.Locals` for typed access:\n\n```ts\n// src/app.d.ts\ndeclare global {\n  namespace App {\n    interface Locals {\n      authdog: import(\"@authdog/sveltekit/server\").AuthdogLocals;\n    }\n  }\n}\n\nexport {};\n```\n\n### Server-side (`load`, actions, `+server.ts`)\n\n```ts\n// src/routes/profile/+page.server.ts\nimport { createAuthdogServer } from \"@authdog/sveltekit/server\";\nimport type { PageServerLoad } from \"./$types\";\n\nconst authdog = createAuthdogServer({\n  publicKey: import.meta.env.PUBLIC_AUTHDOG_PUBLIC_KEY,\n});\n\nexport const load: PageServerLoad = async ({ request, locals }) => {\n  const user = locals.authdog.isAuthenticated\n    ? await authdog.getUser(request).catch(() => null)\n    : null;\n\n  return { user: user?.user ?? null };\n};\n```\n\n### Logout endpoint\n\n```ts\n// src/routes/logout/+server.ts\nimport { createAuthdogServer } from \"@authdog/sveltekit/server\";\nimport type { RequestHandler } from \"./$types\";\n\nconst authdog = createAuthdogServer({\n  publicKey: import.meta.env.PUBLIC_AUTHDOG_PUBLIC_KEY,\n});\n\n// Clears the session cookie and redirects (honors a sanitized ?redirect_uri).\nexport const GET: RequestHandler = ({ request }) => authdog.logout(request);\n```\n\n### Client-side bootstrap\n\n```svelte\n<!-- src/routes/+layout.svelte -->\n<script>\n  import { onMount } from \"svelte\";\n  import { initAuthdog } from \"@authdog/sveltekit/client\";\n\n  // Consume ?token=… from the login redirect, persist it, then reload.\n  onMount(() => initAuthdog());\n</script>\n```\n\n## API Reference\n\n### Server\n\n- `createAuthdogHandle(config)` — SvelteKit `handle` hook that populates `event.locals.authdog`\n- `createAuthdogServer(config)` — server instance (`getSession`, `getUser`, `getPublicKey`, `logout`)\n- `getSessionCookie(request, cookieName?)` — read the raw session token\n- `logoutHandler(request, cookieName?)` — build a cookie-clearing redirect response\n- `getServerSidePayloadPublicKey(publicKey)` — validate the public key\n\n### Client\n\n- `initAuthdog()` — handle the `?token=…` login redirect and persist the token\n- `clearAuthdogToken()` — client-side sign-out (clears localStorage)\n- `fetchUserData(publicKey, token)` — fetch the user profile from the identity host\n- `getTokenFromUri(url)`, `validatePublicKey(publicKey)`, `browserCookiesOptions`\n","readmeFilename":"README.md"}