{"_id":"@aletso/atom-router","_rev":"2-44976ebf19e96e3e6b06a025d0f46390","name":"@aletso/atom-router","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.2":{"name":"@aletso/atom-router","version":"0.1.2","license":"MIT","_id":"@aletso/atom-router@0.1.2","maintainers":[{"name":"gbartman","email":"g.bartman@aletso.com"}],"dist":{"shasum":"615bb84b01e8c93ed5e8f1b3e5fd77bee61a2dd9","tarball":"https://registry.npmjs.org/@aletso/atom-router/-/atom-router-0.1.2.tgz","fileCount":11,"integrity":"sha512-YfoTE3e1KBMW7h6gXgg86duutaHE2rJFz3O1771zEvFftjhjTfdMCVFoKsPNH7Hz2erBhzU7sp4epF9OWRpJLQ==","signatures":[{"sig":"MEUCIQCihKgn5Nnms7INYzQ0HkZEI2BNuaUJ35mQrh6ZzO47+gIgHL3AGNMIbMshRMsx+z0oDAdmPQ/nujC6TEhxsy2IK6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12712},"type":"module","_from":"file:aletso-atom-router-0.1.2.tgz","exports":{"./hooks":"./dist/hooks/index.js","./hooks/*":"./dist/hooks/*.js","./components/*":"./dist/components/*.js"},"scripts":{"build":"tsc -b tsconfig.json","type-check":"tsc -b tsconfig.json"},"_npmUser":{"name":"gbartman","email":"g.bartman@aletso.com"},"_resolved":"/tmp/ad86d0c25aade4471573589232a4ae04/aletso-atom-router-0.1.2.tgz","_integrity":"sha512-YfoTE3e1KBMW7h6gXgg86duutaHE2rJFz3O1771zEvFftjhjTfdMCVFoKsPNH7Hz2erBhzU7sp4epF9OWRpJLQ==","_npmVersion":"11.12.1","description":"TanStack Router SSR integration for effect-atom","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/react":"^19.0.0","@effect/language-service":"^0.62.3"},"peerDependencies":{"react":">=19.0.0","effect":"^3.19.12","@tanstack/router-core":"^1.162.2","@tanstack/react-router":"^1.143.11","@effect-atom/atom-react":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/atom-router_0.1.2_1776189554404_0.28944153198928735","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@aletso/atom-router","version":"0.1.3","type":"module","description":"TanStack Router SSR integration for effect-atom","license":"MIT","exports":{"./components/*":"./dist/components/*.js","./hooks":"./dist/hooks/index.js","./hooks/*":"./dist/hooks/*.js"},"publishConfig":{"access":"public"},"peerDependencies":{"@effect-atom/atom-react":"^0.5.0","@tanstack/react-router":"^1.143.11","@tanstack/router-core":"^1.162.2","effect":"^3.19.12","react":">=19.0.0"},"devDependencies":{"@effect/language-service":"^0.62.3","@types/react":"^19.0.0","typescript":"^5.9.3"},"scripts":{"build":"tsc -b tsconfig.json","type-check":"tsc -b tsconfig.json"},"_id":"@aletso/atom-router@0.1.3","_integrity":"sha512-Bj3WtscixVVamn55XLlJVp58DN+ndTkaC3eMs7uFtUiOFTYASRYGnogA/zzHc8kI9WO/SX6ZwRRmNYVt0Vnv1Q==","_resolved":"/tmp/cb8aaa71b8d781304cc2ded3b6503b99/aletso-atom-router-0.1.3.tgz","_from":"file:aletso-atom-router-0.1.3.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-Bj3WtscixVVamn55XLlJVp58DN+ndTkaC3eMs7uFtUiOFTYASRYGnogA/zzHc8kI9WO/SX6ZwRRmNYVt0Vnv1Q==","shasum":"fe55152b8289389575baf445b48a7844d34df730","tarball":"https://registry.npmjs.org/@aletso/atom-router/-/atom-router-0.1.3.tgz","fileCount":12,"unpackedSize":14542,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAXMKB83bSbTgCcPkLnt54wq+IoOUqWvckIfvFD0kVBGAiB1b34B0dIMU1HNRYrE1K1SapZw5fn/2SUAZwINEMXQgA=="}]},"_npmUser":{"name":"gbartman","email":"g.bartman@aletso.com"},"directories":{},"maintainers":[{"name":"gbartman","email":"g.bartman@aletso.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/atom-router_0.1.3_1776190711712_0.37309872102937147"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-14T17:59:14.318Z","modified":"2026-04-14T18:18:32.007Z","0.1.2":"2026-04-14T17:59:14.557Z","0.1.3":"2026-04-14T18:18:31.863Z"},"license":"MIT","description":"TanStack Router SSR integration for effect-atom","maintainers":[{"name":"gbartman","email":"g.bartman@aletso.com"}],"readme":"# @aletso/atom-router\n\nTanStack Router SSR integration for `@effect-atom/atom-react` registries.\n\nThis package wires router dehydration and hydration to include atom state and streamed updates.\n\n## Install\n\n```bash\npnpm add @aletso/atom-router @effect-atom/atom-react @tanstack/react-router @tanstack/router-core react effect\n```\n\n## Setup\n\nExample router setup.\n\n```tsx\nimport { Registry } from \"@effect-atom/atom-react\";\nimport { setupRouterSsrAtomIntegration } from \"@aletso/atom-router/components/setup-router-ssr-atom-integration\";\nimport { createRouter } from \"@tanstack/react-router\";\nimport { routeTree } from \"./routeTree.gen\";\n\nexport function getRouter() {\n  const registry = Registry.make({ defaultIdleTTL: 400 });\n\n  const router = createRouter({\n    routeTree,\n    defaultGcTime: 0,\n    defaultStaleTime: 0,\n    context: { registry },\n  });\n\n  setupRouterSsrAtomIntegration({ router, registry });\n\n  return router;\n}\n```\n\n## How it is used with data prefetch\n\nWhen route loaders prefetch atoms on the server, this integration ensures dehydrated atom values are available to the client after hydration.\n\n```ts\nimport { createIsomorphicFn } from \"@tanstack/react-start\";\nimport { surveyFindManyServer } from \"../data/survey/server\";\nimport { serverRuntime } from \"../routes/api/rpc/$\";\n\nexport const prefetchSurveyList = createIsomorphicFn().server((context) =>\n  surveyFindManyServer.prefetch(context.registry, serverRuntime),\n);\n```\n\n## What `setupRouterSsrAtomIntegration` does\n\n- wraps router output with `RegistryContext.Provider`\n- extends router `dehydrate()` result with `atomState` and an `atomStream`\n- hydrates initial atom state on the client\n- keeps reading streamed atom chunks and hydrates them incrementally\n\n## Public entry points\n\n- `@aletso/atom-router/components/setup-router-ssr-atom-integration`\n","readmeFilename":"README.md"}