A small monorepo of SvelteKit add‑ons maintained by Escendit. Each package lives under packages/ with its own README, build, and release setup.
- Monorepo tooling: npm Workspaces + Lerna
- Runtime targets: Svelte 5 and SvelteKit 2 or 3-next (see each package for details)
- Session middleware:
@escendit/sveltekit-session- README: packages/session/README.md
- Auth (Keycloak):
@escendit/sveltekit-auth-keycloak- README: packages/auth/keycloak/README.md
- OIDC Authorization Code + PKCE, transparent token refresh, RP-Initiated Logout, client-side Session Management 1.0, and server-side Back-Channel Logout 1.0
Install the package(s) you need in your SvelteKit app:
# Session middleware only
npm i @escendit/sveltekit-session
# Keycloak auth (composes with the session middleware, so both are needed)
npm i @escendit/sveltekit-auth-keycloak @escendit/sveltekit-sessionThen follow the corresponding package README for setup and APIs.
packages/…— individual publishable packagespackages/auth/keycloak— Keycloak integration for SvelteKit authpackages/session— session middleware + stores (in‑memory, Redis)
Publishing a GitHub Release triggers the Release workflow (build), which on success fans out to npm and GitHub workflows that version and publish every non-private package via lerna publish from-package.
- npm (
registry.npmjs.org): authenticated via npm Trusted Publishing (OIDC) - the workflow requests a short-lived GitHub Actions identity token instead of using a storedNPM_TOKENsecret. Lerna (v9+) has this built in; no extra config is needed in the workflow beyond theid-token: writepermission. Each published package must be configured with this repo'snpm-registry.ymlworkflow as its Trusted Publisher in that package's Settings on npmjs.com before its first OIDC-authenticated release. - GitHub Packages (
npm.pkg.github.com): authenticated via the workflow's ownGITHUB_TOKEN, scoped to this repository.
For anything else (build, scripts), see the package READMEs.