@elogroup-sereduc/ser-front-core-client 4.0.1 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -128,6 +128,7 @@ type SerOAuthConfig = {
128
128
  realm: string; // nome-do-realm
129
129
  clientId: string; // seu-client-id
130
130
  idp?: string; // hint para IDP específico
131
+ enableSsoLogout?: boolean; // se true, logout redireciona ao end_session_endpoint do IDP
131
132
  };
132
133
 
133
134
  type InitOptions = {
@@ -1,12 +1,8 @@
1
1
  import { SerOAuth, SerOAuthConfig } from "./ser-oauth-js";
2
2
  import { OidcConfig } from "./store";
3
3
  export declare function createSerOAuth(config: SerOAuthConfig): SerOAuth;
4
- export type CreateKeycloakAuthOptions = {
5
- authorizationEndpoint: string;
6
- clientId: string;
7
- idp?: string;
8
- };
9
- export declare function createKeycloakAuthFromUrl({ authorizationEndpoint, clientId, idp, }: CreateKeycloakAuthOptions): SerOAuth;
4
+ export type CreateKeycloakAuthOptions = OidcConfig;
5
+ export declare function createKeycloakAuthFromUrl({ authorizationEndpoint, clientId, idp, enableSsoLogout, }: CreateKeycloakAuthOptions): SerOAuth;
10
6
  export type InitAuthOptions = {
11
7
  authClient: SerOAuth;
12
8
  basePath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/auth/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAgB,UAAU,EAAE,MAAM,SAAS,CAAC;AAKnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAS/D;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACxC,qBAAqB,EACrB,QAAQ,EACR,GAAG,GACJ,EAAE,yBAAyB,GAAG,QAAQ,CActC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,QAAQ,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,EAC7B,UAAU,EACV,QAAa,EACb,eAAe,EACf,KAAK,EACL,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBpC;AAMD,wBAAgB,aAAa,IAAI,QAAQ,CAexC"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/auth/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAgB,UAAU,EAAE,MAAM,SAAS,CAAC;AAKnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAS/D;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC;AAEnD,wBAAgB,yBAAyB,CAAC,EACxC,qBAAqB,EACrB,QAAQ,EACR,GAAG,EACH,eAAe,GAChB,EAAE,yBAAyB,GAAG,QAAQ,CAetC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,QAAQ,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,EAC7B,UAAU,EACV,QAAa,EACb,eAAe,EACf,KAAK,EACL,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBpC;AAMD,wBAAgB,aAAa,IAAI,QAAQ,CAexC"}
@@ -8,7 +8,7 @@ export function createSerOAuth(config) {
8
8
  };
9
9
  return kc;
10
10
  }
11
- export function createKeycloakAuthFromUrl({ authorizationEndpoint, clientId, idp, }) {
11
+ export function createKeycloakAuthFromUrl({ authorizationEndpoint, clientId, idp, enableSsoLogout, }) {
12
12
  const url = authorizationEndpoint
13
13
  .replace(/\/protocol\/openid-connect\/auth$/, "")
14
14
  .replace(/\/realms\/[^\/]+$/, "");
@@ -18,6 +18,7 @@ export function createKeycloakAuthFromUrl({ authorizationEndpoint, clientId, idp
18
18
  realm,
19
19
  clientId,
20
20
  idp,
21
+ enableSsoLogout,
21
22
  });
22
23
  }
23
24
  export async function initAuth({ authClient, basePath = "", authProviderUrl, realm, oidcConfig, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/auth/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAGnD,IAAI,kBAAkB,GAAoB,IAAI,CAAC;AAE/C,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAGhC,EAAE,CAAC,cAAc,GAAG,GAAG,EAAE;QACvB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,EAAE,CAAC;AACZ,CAAC;AAQD,MAAM,UAAU,yBAAyB,CAAC,EACxC,qBAAqB,EACrB,QAAQ,EACR,GAAG,GACuB;IAC1B,MAAM,GAAG,GAAG,qBAAqB;SAC9B,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC;SAChD,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAEpC,MAAM,KAAK,GACT,qBAAqB,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAErE,OAAO,cAAc,CAAC;QACpB,GAAG;QACH,KAAK;QACL,QAAQ;QACR,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,UAAU,EACV,QAAQ,GAAG,EAAE,EACb,eAAe,EACf,KAAK,EACL,UAAU,GACM;IAEhB,kBAAkB,GAAG,UAAU,CAAC;IAGhC,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;QAC7B,YAAY,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAGD,IAAI,UAAU,EAAE,CAAC;QACf,YAAY,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;QAC3B,MAAM,EAAE,WAAW;QACnB,yBAAyB,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,wBAAwB;QACvF,UAAU,EAAE,MAAM;KACnB,CAAC,CAAC;AACL,CAAC;AAMD,MAAM,UAAU,aAAa;IAC3B,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAGD,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;IACJ,CAAC;IAED,kBAAkB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC3D,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/auth/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAGnD,IAAI,kBAAkB,GAAoB,IAAI,CAAC;AAE/C,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAGhC,EAAE,CAAC,cAAc,GAAG,GAAG,EAAE;QACvB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,EAAE,CAAC;AACZ,CAAC;AAID,MAAM,UAAU,yBAAyB,CAAC,EACxC,qBAAqB,EACrB,QAAQ,EACR,GAAG,EACH,eAAe,GACW;IAC1B,MAAM,GAAG,GAAG,qBAAqB;SAC9B,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC;SAChD,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAEpC,MAAM,KAAK,GACT,qBAAqB,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAErE,OAAO,cAAc,CAAC;QACpB,GAAG;QACH,KAAK;QACL,QAAQ;QACR,GAAG;QACH,eAAe;KAChB,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,UAAU,EACV,QAAQ,GAAG,EAAE,EACb,eAAe,EACf,KAAK,EACL,UAAU,GACM;IAEhB,kBAAkB,GAAG,UAAU,CAAC;IAGhC,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;QAC7B,YAAY,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAGD,IAAI,UAAU,EAAE,CAAC;QACf,YAAY,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;QAC3B,MAAM,EAAE,WAAW;QACnB,yBAAyB,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,QAAQ,wBAAwB;QACvF,UAAU,EAAE,MAAM;KACnB,CAAC,CAAC;AACL,CAAC;AAMD,MAAM,UAAU,aAAa;IAC3B,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAGD,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;IACJ,CAAC;IAED,kBAAkB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC3D,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
@@ -17,6 +17,7 @@ export type OidcConfig = {
17
17
  authorizationEndpoint: string;
18
18
  clientId: string;
19
19
  idp?: string;
20
+ enableSsoLogout?: boolean;
20
21
  };
21
22
  type AuthStateData = TokenSet & {
22
23
  authenticated: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/auth/store.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,KAAK,aAAa,GAAG,QAAQ,GAAG;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,KAAK,IAAI,CAAC;IACpD,iBAAiB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;IAChE,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,GAAG,IAAI,CAAC;IACzD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAsGzD,wBAAgB,YAAY,IAAI,SAAS,CAAC;AAC1C,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,CAAC;yBAAtD,YAAY;wBAjBV,SAAS"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/auth/store.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAIF,KAAK,aAAa,GAAG,QAAQ,GAAG;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,KAAK,IAAI,CAAC;IACpD,iBAAiB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;IAChE,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,GAAG,IAAI,CAAC;IACzD,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAsGzD,wBAAgB,YAAY,IAAI,SAAS,CAAC;AAC1C,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,CAAC;yBAAtD,YAAY;wBAjBV,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/auth/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/auth/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elogroup-sereduc/ser-front-core-client",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "Complete OAuth/OIDC authentication system with Silent SSO, PKCE, and API client for Ser Educacional applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,7 +0,0 @@
1
- import { type AxiosInstance } from "axios";
2
- import { KeycloakService } from "./keycloak.js";
3
- import type { CoreClientConfig } from "./types/index.js";
4
- export declare function createApiClient(config: CoreClientConfig): AxiosInstance;
5
- export declare function createSimpleApiClient(config: CoreClientConfig): AxiosInstance;
6
- export declare function getKeycloakService(apiClient: AxiosInstance): KeycloakService | undefined;
7
- //# sourceMappingURL=api-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAc,EACZ,KAAK,aAAa,EAGnB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAC;AAM1E,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CA8EvE;AAyBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAE7E;AAKD,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,aAAa,GACvB,eAAe,GAAG,SAAS,CAE7B"}
@@ -1,72 +0,0 @@
1
- import axios from "axios";
2
- import { KeycloakService } from "./keycloak.js";
3
- import { AuthenticationError, TokenRefreshError } from "./types/index.js";
4
- export function createApiClient(config) {
5
- const keycloakService = KeycloakService.getInstance(config.keycloak);
6
- let initPromise;
7
- if (!keycloakService.isInitialized) {
8
- initPromise = keycloakService.initialize();
9
- }
10
- else {
11
- initPromise = Promise.resolve(true);
12
- }
13
- const apiClient = axios.create({
14
- baseURL: config.api.baseURL,
15
- withCredentials: config.api.withCredentials ?? true,
16
- headers: {
17
- "Content-Type": "application/json",
18
- ...config.api.headers,
19
- },
20
- });
21
- apiClient.interceptors.request.use(async (requestConfig) => {
22
- await initPromise;
23
- const isAuthEndpoint = requestConfig.url?.includes("/auth/") ?? false;
24
- const hasAuthHeader = requestConfig.headers?.Authorization;
25
- if (isAuthEndpoint || hasAuthHeader) {
26
- return requestConfig;
27
- }
28
- try {
29
- if (keycloakService.isAuthenticated) {
30
- const token = await keycloakService.getValidToken();
31
- requestConfig.headers.Authorization = `Bearer ${token}`;
32
- }
33
- }
34
- catch (error) {
35
- if (error instanceof TokenRefreshError ||
36
- error instanceof AuthenticationError) {
37
- await handleAuthenticationFailure(error, config.api);
38
- }
39
- else {
40
- console.error("Unexpected error getting token:", error);
41
- }
42
- }
43
- return requestConfig;
44
- }, (error) => Promise.reject(error));
45
- apiClient.interceptors.response.use((response) => response, async (error) => {
46
- if (error.response?.status === 401 || error.response?.status === 403) {
47
- const authError = new AuthenticationError(`Authentication failed: ${error.response.status}`, error);
48
- await handleAuthenticationFailure(authError, config.api);
49
- }
50
- return Promise.reject(error);
51
- });
52
- apiClient.keycloak = keycloakService;
53
- return apiClient;
54
- }
55
- async function handleAuthenticationFailure(error, config) {
56
- console.error("Authentication failure:", error.message);
57
- if (config.onTokenRefreshFailed) {
58
- config.onTokenRefreshFailed(error);
59
- }
60
- else {
61
- const redirectUrl = config.loginRedirectUrl ?? window.location.href;
62
- console.log("Redirecting to login...");
63
- window.location.href = redirectUrl;
64
- }
65
- }
66
- export function createSimpleApiClient(config) {
67
- return createApiClient(config);
68
- }
69
- export function getKeycloakService(apiClient) {
70
- return apiClient.keycloak;
71
- }
72
- //# sourceMappingURL=api-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAIN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1E,MAAM,UAAU,eAAe,CAAC,MAAwB;IACtD,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAGrE,IAAI,WAA6B,CAAC;IAClC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACnC,WAAW,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;QAC3B,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI;QACnD,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO;SACtB;KACF,CAAC,CAAC;IAGH,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAChC,KAAK,EAAE,aAAyC,EAAE,EAAE;QAElD,MAAM,WAAW,CAAC;QAGlB,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QACtE,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC;QAE3D,IAAI,cAAc,IAAI,aAAa,EAAE,CAAC;YACpC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,IAAI,CAAC;YACH,IAAI,eAAe,CAAC,eAAe,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,CAAC;gBACpD,aAAa,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,IACE,KAAK,YAAY,iBAAiB;gBAClC,KAAK,YAAY,mBAAmB,EACpC,CAAC;gBACD,MAAM,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CACjC,CAAC;IAGF,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACjC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,KAAK,EAAE,KAAK,EAAE,EAAE;QAGd,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YACrE,MAAM,SAAS,GAAG,IAAI,mBAAmB,CACvC,0BAA0B,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EACjD,KAAK,CACN,CAAC;YACF,MAAM,2BAA2B,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CACF,CAAC;IAGD,SAAiB,CAAC,QAAQ,GAAG,eAAe,CAAC;IAE9C,OAAO,SAAS,CAAC;AACnB,CAAC;AAKD,KAAK,UAAU,2BAA2B,CACxC,KAA8C,EAC9C,MAAuB;IAEvB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAExD,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAEhC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QAEN,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;IACrC,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,qBAAqB,CAAC,MAAwB;IAC5D,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAChC,SAAwB;IAExB,OAAQ,SAAiB,CAAC,QAAQ,CAAC;AACrC,CAAC"}
@@ -1,34 +0,0 @@
1
- import Keycloak from "keycloak-js";
2
- import type { KeycloakConfig, AuthState, LoginOptions, DirectLoginCredentials } from "./types/index.js";
3
- export declare class KeycloakService {
4
- private config;
5
- private keycloak;
6
- private initialized;
7
- constructor(config: KeycloakConfig);
8
- static getInstance(config: KeycloakConfig): KeycloakService;
9
- get isInitialized(): boolean;
10
- initialize(): Promise<boolean>;
11
- get isAuthenticated(): boolean;
12
- get token(): string | undefined;
13
- get userInfo(): import("keycloak-js").KeycloakTokenParsed | undefined;
14
- getAuthState(): AuthState;
15
- login(options?: LoginOptions): Promise<void>;
16
- directLogin(credentials: DirectLoginCredentials): Promise<void>;
17
- logout(options?: {
18
- redirectUri?: string;
19
- }): Promise<void>;
20
- updateToken(minValidity?: number): Promise<boolean>;
21
- getValidToken(): Promise<string>;
22
- getKeycloakInstance(): Keycloak;
23
- createAuthUrl(options?: {
24
- redirectUri?: string;
25
- state?: string;
26
- prompt?: string;
27
- loginHint?: string;
28
- }): string;
29
- silentLoginRedirect(): Promise<boolean>;
30
- processOAuthCallback(code: string, state?: string): Promise<void>;
31
- private exchangeCodeForTokens;
32
- private generateRandomState;
33
- }
34
- //# sourceMappingURL=keycloak.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keycloak.d.ts","sourceRoot":"","sources":["../src/keycloak.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AA4C1B,qBAAa,eAAe;IAId,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAS;gBAER,MAAM,EAAE,cAAc;IAqB1C,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe;IAU3D,IAAI,aAAa,IAAI,OAAO,CAE3B;IAKK,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAqHpC,IAAI,eAAe,IAAI,OAAO,CAE7B;IAKD,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAKD,IAAI,QAAQ,0DAEX;IAKD,YAAY,IAAI,SAAS;IAWnB,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B5C,WAAW,CAAC,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiE/D,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBzD,WAAW,CAAC,WAAW,SAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB/C,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IA4BtC,mBAAmB,IAAI,QAAQ;IAO/B,aAAa,CACX,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,GACL,MAAM;IA6BH,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IA4CvC,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAmCzD,qBAAqB;IAgEnC,OAAO,CAAC,mBAAmB;CAM5B"}
package/dist/keycloak.js DELETED
@@ -1,398 +0,0 @@
1
- import Keycloak from "keycloak-js";
2
- import { AuthenticationError, TokenRefreshError, DirectLoginError, } from "./types/index.js";
3
- function validateKeycloakConfig(config) {
4
- if (!config.url || !config.url.trim()) {
5
- throw new AuthenticationError("Keycloak URL is required");
6
- }
7
- if (!config.realm || !config.realm.trim()) {
8
- throw new AuthenticationError("Keycloak realm is required");
9
- }
10
- if (!config.clientId || !config.clientId.trim()) {
11
- throw new AuthenticationError("Keycloak clientId is required");
12
- }
13
- try {
14
- new URL(config.url);
15
- }
16
- catch (error) {
17
- throw new AuthenticationError(`Invalid Keycloak URL: ${config.url}`);
18
- }
19
- }
20
- function buildUrl(path, basePath) {
21
- const cleanBasePath = basePath ? basePath.replace(/\/$/, "") : "";
22
- const cleanPath = path.startsWith("/") ? path : `/${path}`;
23
- return `${window.location.origin}${cleanBasePath}${cleanPath}`;
24
- }
25
- let globalKeycloakService = null;
26
- export class KeycloakService {
27
- constructor(config) {
28
- Object.defineProperty(this, "config", {
29
- enumerable: true,
30
- configurable: true,
31
- writable: true,
32
- value: config
33
- });
34
- Object.defineProperty(this, "keycloak", {
35
- enumerable: true,
36
- configurable: true,
37
- writable: true,
38
- value: void 0
39
- });
40
- Object.defineProperty(this, "initialized", {
41
- enumerable: true,
42
- configurable: true,
43
- writable: true,
44
- value: false
45
- });
46
- validateKeycloakConfig(config);
47
- try {
48
- this.keycloak = new Keycloak({
49
- url: config.url,
50
- realm: config.realm,
51
- clientId: config.clientId,
52
- });
53
- }
54
- catch (error) {
55
- throw new AuthenticationError(`Failed to create Keycloak instance: ${error.message}`, error);
56
- }
57
- }
58
- static getInstance(config) {
59
- if (!globalKeycloakService) {
60
- globalKeycloakService = new KeycloakService(config);
61
- }
62
- return globalKeycloakService;
63
- }
64
- get isInitialized() {
65
- return this.initialized;
66
- }
67
- async initialize() {
68
- if (this.initialized) {
69
- return this.keycloak.authenticated ?? false;
70
- }
71
- try {
72
- console.log("Initializing Keycloak with config:", {
73
- url: this.config.url,
74
- realm: this.config.realm,
75
- clientId: this.config.clientId,
76
- basePath: this.config.basePath,
77
- });
78
- if (!this.config.url ||
79
- this.config.url === "https://your-keycloak-server") {
80
- throw new Error("Keycloak URL not properly configured. Check VITE_KEYCLOAK_URL environment variable.");
81
- }
82
- if (!this.config.realm || this.config.realm === "your-realm") {
83
- throw new Error("Keycloak realm not properly configured. Check VITE_KEYCLOAK_REALM environment variable.");
84
- }
85
- if (!this.config.clientId || this.config.clientId === "your-client-id") {
86
- throw new Error("Keycloak client ID not properly configured. Check VITE_KEYCLOAK_CLIENT_ID environment variable.");
87
- }
88
- console.log("Testing Keycloak server connectivity...");
89
- try {
90
- const healthCheckUrl = `${this.config.url}/realms/${this.config.realm}`;
91
- const response = await fetch(healthCheckUrl, {
92
- method: "GET",
93
- mode: "cors",
94
- credentials: "omit",
95
- });
96
- if (!response.ok) {
97
- throw new Error(`Keycloak server returned ${response.status}: ${response.statusText}`);
98
- }
99
- console.log("✅ Keycloak server is accessible");
100
- }
101
- catch (connectError) {
102
- console.error("❌ Cannot connect to Keycloak server:", connectError);
103
- throw new Error(`Cannot connect to Keycloak server at ${this.config.url}. Please ensure Keycloak is running and accessible.`);
104
- }
105
- const initConfig = {
106
- onLoad: "check-sso",
107
- checkLoginIframe: false,
108
- ...this.config.initOptions,
109
- };
110
- if (initConfig.silentCheckSsoRedirectUri) {
111
- console.log("Removing iframe-based silentCheckSsoRedirectUri for top-level navigation flow");
112
- delete initConfig.silentCheckSsoRedirectUri;
113
- }
114
- console.log("Keycloak init config (iframe-free):", initConfig);
115
- console.log("Calling keycloak.init()...");
116
- const authenticated = await this.keycloak.init(initConfig);
117
- this.initialized = true;
118
- console.log("Keycloak initialization successful, authenticated:", authenticated);
119
- return authenticated;
120
- }
121
- catch (error) {
122
- console.error("Keycloak initialization failed (raw error):", error);
123
- console.error("Error type:", typeof error);
124
- console.error("Error constructor:", error?.constructor?.name);
125
- let errorMessage = "Failed to initialize Keycloak adapter";
126
- if (error instanceof Error) {
127
- const message = error.message || "Unknown error";
128
- if (message.includes("Network")) {
129
- errorMessage = `Cannot connect to Keycloak server at ${this.config.url}. Please check the server URL and network connectivity.`;
130
- }
131
- else if (message.includes("404") || message.includes("Not Found")) {
132
- errorMessage = `Keycloak realm '${this.config.realm}' not found. Please check the realm name.`;
133
- }
134
- else if (message.includes("CORS")) {
135
- errorMessage = `CORS error connecting to Keycloak. Please check that ${window.location.origin} is allowed in Keycloak client settings.`;
136
- }
137
- else if (message.includes("initialized once")) {
138
- errorMessage = `Keycloak instance already initialized. This indicates multiple initialization attempts.`;
139
- }
140
- else {
141
- errorMessage = `Keycloak initialization failed: ${message}`;
142
- }
143
- }
144
- else if (typeof error === "string") {
145
- errorMessage = `Keycloak initialization failed: ${error}`;
146
- }
147
- else {
148
- errorMessage = `Keycloak initialization failed with unknown error. Check browser console and Keycloak server status.`;
149
- }
150
- throw new AuthenticationError(errorMessage, error);
151
- }
152
- }
153
- get isAuthenticated() {
154
- return this.keycloak.authenticated ?? false;
155
- }
156
- get token() {
157
- return this.keycloak.token;
158
- }
159
- get userInfo() {
160
- return this.keycloak.tokenParsed;
161
- }
162
- getAuthState() {
163
- return {
164
- isAuthenticated: this.isAuthenticated,
165
- token: this.token,
166
- userInfo: this.userInfo,
167
- };
168
- }
169
- async login(options) {
170
- if (!this.initialized) {
171
- await this.initialize();
172
- }
173
- if (options?.credentials) {
174
- await this.directLogin(options.credentials);
175
- return;
176
- }
177
- try {
178
- console.log("Initiating external login with options:", options);
179
- await this.keycloak.login({
180
- redirectUri: options?.redirectUri ?? window.location.href,
181
- loginHint: options?.loginHint,
182
- prompt: options?.prompt,
183
- });
184
- }
185
- catch (error) {
186
- console.error("External login failed:", error);
187
- throw new AuthenticationError("Failed to initiate login", error);
188
- }
189
- }
190
- async directLogin(credentials) {
191
- if (!this.initialized) {
192
- await this.initialize();
193
- }
194
- try {
195
- const tokenUrl = `${this.config.url}/realms/${this.config.realm}/protocol/openid-connect/token`;
196
- const response = await fetch(tokenUrl, {
197
- method: "POST",
198
- headers: {
199
- "Content-Type": "application/x-www-form-urlencoded",
200
- },
201
- body: new URLSearchParams({
202
- grant_type: "password",
203
- client_id: this.config.clientId,
204
- username: credentials.username,
205
- password: credentials.password,
206
- }),
207
- });
208
- if (!response.ok) {
209
- const errorData = await response.json().catch(() => ({}));
210
- throw new DirectLoginError(errorData.error_description || "Direct login failed");
211
- }
212
- const tokenData = await response.json();
213
- this.keycloak.token = tokenData.access_token;
214
- this.keycloak.refreshToken = tokenData.refresh_token;
215
- this.keycloak.idToken = tokenData.id_token;
216
- if (tokenData.access_token) {
217
- try {
218
- const payload = JSON.parse(atob(tokenData.access_token.split(".")[1]));
219
- this.keycloak.tokenParsed = payload;
220
- this.keycloak.authenticated = true;
221
- if (payload.exp) {
222
- this.keycloak.timeSkew = 0;
223
- }
224
- }
225
- catch (parseError) {
226
- console.warn("Failed to parse access token:", parseError);
227
- }
228
- }
229
- console.log("Direct login successful");
230
- }
231
- catch (error) {
232
- if (error instanceof DirectLoginError) {
233
- throw error;
234
- }
235
- throw new DirectLoginError("Direct login failed", error);
236
- }
237
- }
238
- async logout(options) {
239
- try {
240
- await this.keycloak.logout({
241
- redirectUri: options?.redirectUri ?? buildUrl("/", this.config.basePath),
242
- });
243
- }
244
- catch (error) {
245
- console.error("Failed to logout:", error);
246
- this.keycloak.clearToken();
247
- window.location.href =
248
- options?.redirectUri ?? buildUrl("/", this.config.basePath);
249
- }
250
- }
251
- async updateToken(minValidity = 30) {
252
- if (!this.isAuthenticated) {
253
- throw new AuthenticationError("User is not authenticated");
254
- }
255
- try {
256
- const refreshed = await this.keycloak.updateToken(minValidity);
257
- return refreshed;
258
- }
259
- catch (error) {
260
- throw new TokenRefreshError("Failed to refresh token", error);
261
- }
262
- }
263
- async getValidToken() {
264
- if (!this.isAuthenticated) {
265
- throw new AuthenticationError("User is not authenticated");
266
- }
267
- try {
268
- await this.updateToken(30);
269
- const token = this.token;
270
- if (!token) {
271
- throw new AuthenticationError("No valid token available");
272
- }
273
- return token;
274
- }
275
- catch (error) {
276
- if (error instanceof TokenRefreshError ||
277
- error instanceof AuthenticationError) {
278
- throw error;
279
- }
280
- throw new TokenRefreshError("Failed to get valid token", error);
281
- }
282
- }
283
- getKeycloakInstance() {
284
- return this.keycloak;
285
- }
286
- createAuthUrl(options = {}) {
287
- const redirectUri = options.redirectUri || window.location.href;
288
- const state = options.state || this.generateRandomState();
289
- const authUrl = new URL(`${this.config.url}/realms/${this.config.realm}/protocol/openid-connect/auth`);
290
- authUrl.searchParams.set("client_id", this.config.clientId);
291
- authUrl.searchParams.set("redirect_uri", redirectUri);
292
- authUrl.searchParams.set("response_type", "code");
293
- authUrl.searchParams.set("scope", "openid");
294
- authUrl.searchParams.set("state", state);
295
- if (options.prompt) {
296
- authUrl.searchParams.set("prompt", options.prompt);
297
- }
298
- if (options.loginHint) {
299
- authUrl.searchParams.set("login_hint", options.loginHint);
300
- }
301
- return authUrl.toString();
302
- }
303
- async silentLoginRedirect() {
304
- if (!this.initialized) {
305
- await this.initialize();
306
- }
307
- if (this.isAuthenticated) {
308
- return false;
309
- }
310
- try {
311
- const redirectUri = buildUrl("/oauth/callback", this.config.basePath);
312
- const state = this.generateRandomState();
313
- sessionStorage.setItem("oauth_redirect_to", window.location.pathname);
314
- sessionStorage.setItem("oauth_state", state);
315
- sessionStorage.setItem("oauth_silent_check", "true");
316
- const authUrl = this.createAuthUrl({
317
- redirectUri,
318
- state,
319
- prompt: "none",
320
- });
321
- console.log("Performing silent login redirect to:", authUrl);
322
- window.location.href = authUrl;
323
- return true;
324
- }
325
- catch (error) {
326
- console.error("Silent login redirect failed:", error);
327
- throw new AuthenticationError("Failed to initiate silent login", error);
328
- }
329
- }
330
- async processOAuthCallback(code, state) {
331
- if (!this.initialized) {
332
- await this.initialize();
333
- }
334
- try {
335
- const storedState = sessionStorage.getItem("oauth_state");
336
- if (state && storedState && state !== storedState) {
337
- throw new AuthenticationError("Invalid state parameter");
338
- }
339
- sessionStorage.removeItem("oauth_state");
340
- const wasSilentCheck = sessionStorage.getItem("oauth_silent_check") === "true";
341
- sessionStorage.removeItem("oauth_silent_check");
342
- const redirectUri = buildUrl("/oauth/callback", this.config.basePath);
343
- await this.exchangeCodeForTokens(code, redirectUri);
344
- console.log("OAuth callback processed successfully", { wasSilentCheck });
345
- }
346
- catch (error) {
347
- console.error("OAuth callback processing failed:", error);
348
- throw new AuthenticationError("Failed to process OAuth callback", error);
349
- }
350
- }
351
- async exchangeCodeForTokens(code, redirectUri) {
352
- try {
353
- const tokenUrl = `${this.config.url}/realms/${this.config.realm}/protocol/openid-connect/token`;
354
- const response = await fetch(tokenUrl, {
355
- method: "POST",
356
- headers: {
357
- "Content-Type": "application/x-www-form-urlencoded",
358
- },
359
- body: new URLSearchParams({
360
- grant_type: "authorization_code",
361
- client_id: this.config.clientId,
362
- code: code,
363
- redirect_uri: redirectUri,
364
- }),
365
- });
366
- if (!response.ok) {
367
- const errorData = await response.json().catch(() => ({}));
368
- throw new AuthenticationError(errorData.error_description || "Token exchange failed");
369
- }
370
- const tokenData = await response.json();
371
- this.keycloak.token = tokenData.access_token;
372
- this.keycloak.refreshToken = tokenData.refresh_token;
373
- this.keycloak.idToken = tokenData.id_token;
374
- if (tokenData.access_token) {
375
- try {
376
- const payload = JSON.parse(atob(tokenData.access_token.split(".")[1]));
377
- this.keycloak.tokenParsed = payload;
378
- this.keycloak.authenticated = true;
379
- if (payload.exp) {
380
- this.keycloak.timeSkew = 0;
381
- }
382
- }
383
- catch (parseError) {
384
- console.warn("Failed to parse access token:", parseError);
385
- }
386
- }
387
- console.log("Token exchange successful");
388
- }
389
- catch (error) {
390
- throw new AuthenticationError("Failed to exchange code for tokens", error);
391
- }
392
- }
393
- generateRandomState() {
394
- return (Math.random().toString(36).substring(2, 15) +
395
- Math.random().toString(36).substring(2, 15));
396
- }
397
- }
398
- //# sourceMappingURL=keycloak.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keycloak.js","sourceRoot":"","sources":["../src/keycloak.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import type { KeycloakConfig as KeycloakJSConfig, KeycloakInitOptions } from "keycloak-js";
2
- export interface KeycloakConfig extends KeycloakJSConfig {
3
- initOptions?: KeycloakInitOptions;
4
- basePath?: string;
5
- }
6
- export interface DirectLoginCredentials {
7
- username: string;
8
- password: string;
9
- }
10
- export interface LoginOptions {
11
- redirectUri?: string;
12
- credentials?: DirectLoginCredentials;
13
- loginHint?: string;
14
- prompt?: "none" | "login" | "consent";
15
- }
16
- export interface ApiClientConfig {
17
- baseURL: string;
18
- headers?: Record<string, string>;
19
- withCredentials?: boolean;
20
- onTokenRefreshFailed?: (error: Error) => void;
21
- loginRedirectUrl?: string;
22
- }
23
- export interface CoreClientConfig {
24
- keycloak: KeycloakConfig;
25
- api: ApiClientConfig;
26
- }
27
- export interface AuthState {
28
- isAuthenticated: boolean;
29
- token?: string;
30
- userInfo?: {
31
- sub?: string;
32
- email?: string;
33
- name?: string;
34
- preferred_username?: string;
35
- [key: string]: unknown;
36
- };
37
- }
38
- export declare class AuthenticationError extends Error {
39
- cause?: Error | undefined;
40
- constructor(message: string, cause?: Error | undefined);
41
- }
42
- export declare class TokenRefreshError extends Error {
43
- cause?: Error | undefined;
44
- constructor(message: string, cause?: Error | undefined);
45
- }
46
- export declare class DirectLoginError extends Error {
47
- cause?: Error | undefined;
48
- constructor(message: string, cause?: Error | undefined);
49
- }
50
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,IAAI,gBAAgB,EAClC,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IAItD,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAOlC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,WAAW,sBAAsB;IAIrC,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,YAAY;IAI3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAKrC,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACvC;AAKD,MAAM,WAAW,eAAe;IAI9B,OAAO,EAAE,MAAM,CAAC;IAKhB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAM1B,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAM9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAKD,MAAM,WAAW,gBAAgB;IAI/B,QAAQ,EAAE,cAAc,CAAC;IAKzB,GAAG,EAAE,eAAe,CAAC;CACtB;AAKD,MAAM,WAAW,SAAS;IAIxB,eAAe,EAAE,OAAO,CAAC;IAKzB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,QAAQ,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAKD,qBAAa,mBAAoB,SAAQ,KAAK;IAGnC,KAAK,CAAC,EAAE,KAAK;gBADpB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,KAAK,YAAA;CAKvB;AAKD,qBAAa,iBAAkB,SAAQ,KAAK;IAGjC,KAAK,CAAC,EAAE,KAAK;gBADpB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,KAAK,YAAA;CAKvB;AAKD,qBAAa,gBAAiB,SAAQ,KAAK;IAGhC,KAAK,CAAC,EAAE,KAAK;gBADpB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,KAAK,YAAA;CAKvB"}
@@ -1,37 +0,0 @@
1
- export class AuthenticationError extends Error {
2
- constructor(message, cause) {
3
- super(message);
4
- Object.defineProperty(this, "cause", {
5
- enumerable: true,
6
- configurable: true,
7
- writable: true,
8
- value: cause
9
- });
10
- this.name = "AuthenticationError";
11
- }
12
- }
13
- export class TokenRefreshError extends Error {
14
- constructor(message, cause) {
15
- super(message);
16
- Object.defineProperty(this, "cause", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: cause
21
- });
22
- this.name = "TokenRefreshError";
23
- }
24
- }
25
- export class DirectLoginError extends Error {
26
- constructor(message, cause) {
27
- super(message);
28
- Object.defineProperty(this, "cause", {
29
- enumerable: true,
30
- configurable: true,
31
- writable: true,
32
- value: cause
33
- });
34
- this.name = "DirectLoginError";
35
- }
36
- }
37
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AA4IA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YACE,OAAe,EACR,KAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFf;;;;mBAAO,KAAK;WAAQ;QAGpB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAKD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YACE,OAAe,EACR,KAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFf;;;;mBAAO,KAAK;WAAQ;QAGpB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAKD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YACE,OAAe,EACR,KAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFf;;;;mBAAO,KAAK;WAAQ;QAGpB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
@@ -1,22 +0,0 @@
1
- import { KeycloakService } from "../keycloak.js";
2
- import type { AuthState, KeycloakConfig } from "../types/index.js";
3
- export declare function buildUrl(path: string, basePath?: string): string;
4
- export declare function isTokenExpired(token: string, bufferSeconds?: number): boolean;
5
- export declare function parseTokenUserInfo(token: string): Record<string, unknown> | null;
6
- export declare function hasRole(token: string, role: string): boolean;
7
- export declare function getUserRoles(token: string): string[];
8
- export declare function createAuthService(config: KeycloakConfig): Promise<KeycloakService>;
9
- export declare function isAuthenticated(keycloakService: KeycloakService): boolean;
10
- export declare function getAuthState(keycloakService?: KeycloakService): AuthState;
11
- export declare function redirectToLogin(returnUrl?: string, basePath?: string): void;
12
- export declare function handlePostLoginRedirect(basePath?: string): void;
13
- export declare function logout(keycloakService: KeycloakService, redirectUrl?: string, basePath?: string): Promise<void>;
14
- export declare function silentLoginCheck(keycloakService: KeycloakService): Promise<boolean>;
15
- export declare function processOAuthCallback(keycloakService: KeycloakService, code: string, state?: string): Promise<void>;
16
- export declare function createAuthUrl(keycloakService: KeycloakService, options?: {
17
- redirectUri?: string;
18
- state?: string;
19
- prompt?: string;
20
- loginHint?: string;
21
- }): string;
22
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAIhE;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,SAAK,GAAG,OAAO,CAkBzE;AAMD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAQhC;AAOD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAqB5D;AAMD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BpD;AAMD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CAQ1B;AAKD,wBAAgB,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAEzE;AAKD,wBAAgB,YAAY,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAQzE;AAKD,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ3E;AAKD,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAM/D;AAKD,wBAAsB,MAAM,CAC1B,eAAe,EAAE,eAAe,EAChC,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAQf;AAKD,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,OAAO,CAAC,CAElB;AAKD,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAEf;AAKD,wBAAgB,aAAa,CAC3B,eAAe,EAAE,eAAe,EAChC,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,MAAM,CAER"}
@@ -1,120 +0,0 @@
1
- import { KeycloakService } from "../keycloak.js";
2
- export function buildUrl(path, basePath) {
3
- const cleanBasePath = basePath ? basePath.replace(/\/$/, "") : "";
4
- const cleanPath = path.startsWith("/") ? path : `/${path}`;
5
- return `${window.location.origin}${cleanBasePath}${cleanPath}`;
6
- }
7
- export function isTokenExpired(token, bufferSeconds = 30) {
8
- try {
9
- const payload = JSON.parse(atob(token.split(".")[1]));
10
- const exp = payload.exp;
11
- if (!exp) {
12
- return true;
13
- }
14
- const expirationTime = exp * 1000;
15
- const now = Date.now();
16
- const bufferTime = bufferSeconds * 1000;
17
- return now >= expirationTime - bufferTime;
18
- }
19
- catch (error) {
20
- console.error("Error parsing token:", error);
21
- return true;
22
- }
23
- }
24
- export function parseTokenUserInfo(token) {
25
- try {
26
- const payload = JSON.parse(atob(token.split(".")[1]));
27
- return payload;
28
- }
29
- catch (error) {
30
- console.error("Error parsing token:", error);
31
- return null;
32
- }
33
- }
34
- export function hasRole(token, role) {
35
- const userInfo = parseTokenUserInfo(token);
36
- if (!userInfo)
37
- return false;
38
- const realmRoles = userInfo.realm_access?.roles;
39
- if (Array.isArray(realmRoles) && realmRoles.includes(role)) {
40
- return true;
41
- }
42
- const resourceAccess = userInfo.resource_access;
43
- if (resourceAccess && typeof resourceAccess === "object") {
44
- for (const clientRoles of Object.values(resourceAccess)) {
45
- if (clientRoles?.roles?.includes(role)) {
46
- return true;
47
- }
48
- }
49
- }
50
- return false;
51
- }
52
- export function getUserRoles(token) {
53
- const userInfo = parseTokenUserInfo(token);
54
- if (!userInfo)
55
- return [];
56
- const roles = [];
57
- const realmRoles = userInfo.realm_access?.roles;
58
- if (Array.isArray(realmRoles)) {
59
- roles.push(...realmRoles);
60
- }
61
- const resourceAccess = userInfo.resource_access;
62
- if (resourceAccess && typeof resourceAccess === "object") {
63
- for (const clientRoles of Object.values(resourceAccess)) {
64
- if (clientRoles?.roles &&
65
- Array.isArray(clientRoles.roles)) {
66
- roles.push(...clientRoles.roles);
67
- }
68
- }
69
- }
70
- return [...new Set(roles)];
71
- }
72
- export async function createAuthService(config) {
73
- const service = KeycloakService.getInstance(config);
74
- if (!service.isInitialized) {
75
- await service.initialize();
76
- }
77
- return service;
78
- }
79
- export function isAuthenticated(keycloakService) {
80
- return keycloakService.isAuthenticated;
81
- }
82
- export function getAuthState(keycloakService) {
83
- if (!keycloakService) {
84
- return {
85
- isAuthenticated: false,
86
- };
87
- }
88
- return keycloakService.getAuthState();
89
- }
90
- export function redirectToLogin(returnUrl, basePath) {
91
- const url = returnUrl ?? window.location.href;
92
- sessionStorage.setItem("returnUrl", url);
93
- window.location.reload();
94
- }
95
- export function handlePostLoginRedirect(basePath) {
96
- const returnUrl = sessionStorage.getItem("returnUrl");
97
- if (returnUrl) {
98
- sessionStorage.removeItem("returnUrl");
99
- window.location.href = returnUrl;
100
- }
101
- }
102
- export async function logout(keycloakService, redirectUrl, basePath) {
103
- try {
104
- await keycloakService.logout({ redirectUri: redirectUrl });
105
- }
106
- catch (error) {
107
- console.error("Logout failed:", error);
108
- window.location.href = redirectUrl ?? buildUrl("/", basePath);
109
- }
110
- }
111
- export async function silentLoginCheck(keycloakService) {
112
- return await keycloakService.silentLoginRedirect();
113
- }
114
- export async function processOAuthCallback(keycloakService, code, state) {
115
- await keycloakService.processOAuthCallback(code, state);
116
- }
117
- export function createAuthUrl(keycloakService, options) {
118
- return keycloakService.createAuthUrl(options);
119
- }
120
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"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"}