# Entry points (https://session-kit.pages.dev/docs/reference)

Session kit publishes one entry point for each part of the package. This page
lists them, with what each one exports. Each entry point's page documents its
exports, with their options and types.

## Entry points

Internal `dist` paths aren't part of the public API. Import from these paths
only:

| Import                                                                                  | Exports                                                                                                                                           |
| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`@monarcode/session-kit`](https://session-kit.pages.dev/docs/reference/core)                                        | `createAuth`, `createMirrorAuth`, `fromAccessToken`, `webStorage`, `memoryStorage`, `isSignedIn`, `safeReturnTo`, `loginHref`, `AuthError`, types |
| [`@monarcode/session-kit/react`](https://session-kit.pages.dev/docs/reference/react)                                 | `AuthProvider`, `useAuth`, `useAuthClient`, `createAuthHooks`, `useMirrorAuth`, types                                                             |
| [`@monarcode/session-kit/tanstack-router`](https://session-kit.pages.dev/docs/reference/tanstack-router)             | `connectAuth`, `requireSession`, `redirectIfSignedIn`, `SessionOutlet`, `useAuth`, `useAuthClient`, types                                         |
| [`@monarcode/session-kit/react-router`](https://session-kit.pages.dev/docs/reference/react-router)                   | `requireSession`, `requireSessionLoader`, `redirectIfSignedIn`, `redirectIfSignedInLoader`, `SessionOutlet`, `useAuthRevalidation`, types         |
| [`@monarcode/session-kit/react-router/server`](https://session-kit.pages.dev/docs/reference/react-router-server)     | `sessionMiddleware`, `requireSession`, `redirectIfSignedIn`, `sessionRoute`, `routerAuth`, `cookieJarMiddleware`, `routerJar`, types              |
| [`@monarcode/session-kit/http`](https://session-kit.pages.dev/docs/reference/http)                                   | `createAuthFetch`, types                                                                                                                          |
| [`@monarcode/session-kit/server`](https://session-kit.pages.dev/docs/reference/server)                               | `createServerAuth`, `sessionHandler`, types                                                                                                       |
| [`@monarcode/session-kit/tanstack-start`](https://session-kit.pages.dev/docs/reference/tanstack-start)               | `connectSession`, `loadSession`                                                                                                                   |
| [`@monarcode/session-kit/tanstack-start/server`](https://session-kit.pages.dev/docs/reference/tanstack-start-server) | `startAuth`, `refreshSession`, `sessionRoute`, `startJar`, types                                                                                  |
| [`@monarcode/session-kit/next`](https://session-kit.pages.dev/docs/reference/next)                                   | `nextSession`, `sessionRoute`, `nextJar`, `proxyJar`, types                                                                                       |
| [`@monarcode/session-kit/expo`](https://session-kit.pages.dev/docs/reference/expo)                                   | `secureStorage`, `SessionGate`, `deepLinkHandler`, `rememberDeepLink`, types                                                                      |
| [`@monarcode/session-kit/effect`](https://session-kit.pages.dev/docs/reference/effect)                               | `Auth`, `AuthFailure`, types                                                                                                                      |
| [`@monarcode/session-kit/effetch`](https://session-kit.pages.dev/docs/reference/effetch)                             | `sessionBearer`, types                                                                                                                            |

## Bundle size

The package is tree-shakeable, so a bundle holds only what you import. An
entry point you don't import adds nothing.

## Errors

Errors from Session kit's own logic are `AuthError`s. In `./effect` and
`./effetch`, Effects fail with `AuthFailure`, which carries the same code.
The exception is `INVALID_OPTIONS`: it's misuse, so the Effect dies with the
`AuthError` instead. See [Error codes](https://session-kit.pages.dev/docs/reference/error-codes) for every
`AuthErrorCode`.