immich/open-api/typescript-sdk
Tin Pecirep b7a0cf2470 feat: add oauth2 code verifier
* fix: ensure oauth state param matches before finishing oauth flow

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* chore: upgrade openid-client to v6

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* feat: use PKCE for oauth2 on supported clients

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* feat: use state and PKCE in mobile app

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: remove obsolete oauth repository init

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: rewrite callback url if mobile redirect url is enabled

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: propagate oidc client error cause when oauth callback fails

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: adapt auth service tests to required state and PKCE params

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: update sdk types

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: adapt oauth e2e test to work with PKCE

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

* fix: allow insecure (http) oauth clients

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>

---------

Signed-off-by: Tin Pecirep <tin.pecirep@gmail.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-04-23 15:08:11 +01:00
..
src feat: add oauth2 code verifier 2025-04-23 15:08:11 +01:00
.npmignore chore: publish sdk on release () 2024-03-12 12:01:12 -04:00
.nvmrc chore(deps): update node.js to v22.14.0 () 2025-02-15 21:29:33 -06:00
package-lock.json chore(deps): update dependency @types/node to ^22.14.1 () 2025-04-22 10:18:44 +00:00
package.json chore(deps): update dependency @types/node to ^22.14.1 () 2025-04-22 10:18:44 +00:00
README.md feat(server): user preferences () 2024-05-28 09:16:53 +07:00
tsconfig.json chore: publish sdk on release () 2024-03-12 12:01:12 -04:00

@immich/sdk

A TypeScript SDK for interfacing with the Immich API.

Install

npm i --save @immich/sdk

Usage

For a more detailed example, check out the @immich/cli.

import { getAllAlbums, getMyUser, init } from "@immich/sdk";

const API_KEY = "<API_KEY>"; // process.env.IMMICH_API_KEY

init({ baseUrl: "https://demo.immich.app/api", apiKey: API_KEY });

const user = await getMyUser();
const albums = await getAllAlbums({});

console.log({ user, albums });