@elogroup-sereduc/ser-front-core-client 2.0.0 → 2.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/dist/auth/bootstrap.d.ts +11 -2
- package/dist/auth/bootstrap.d.ts.map +1 -1
- package/dist/auth/bootstrap.js +3 -3
- package/dist/auth/bootstrap.js.map +1 -1
- package/dist/auth/index.d.ts +2 -11
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -17
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/route-guards.d.ts +1 -13
- package/dist/auth/route-guards.d.ts.map +1 -1
- package/dist/auth/route-guards.js +23 -19
- package/dist/auth/route-guards.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/auth/bootstrap.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { SerOAuth, SerOAuthConfig } from "./ser-oauth-js";
|
|
2
2
|
export declare function createSerOAuth(config: SerOAuthConfig): SerOAuth;
|
|
3
|
-
export
|
|
4
|
-
|
|
3
|
+
export type CreateKeycloakAuthOptions = {
|
|
4
|
+
authorizationEndpoint: string;
|
|
5
|
+
clientId: string;
|
|
6
|
+
idp?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function createKeycloakAuthFromUrl({ authorizationEndpoint, clientId, idp, }: CreateKeycloakAuthOptions): SerOAuth;
|
|
9
|
+
export type InitAuthOptions = {
|
|
10
|
+
authClient: SerOAuth;
|
|
11
|
+
basePath?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function initAuth({ authClient, basePath, }: InitAuthOptions): Promise<boolean>;
|
|
5
14
|
//# sourceMappingURL=bootstrap.d.ts.map
|
|
@@ -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;AAE1D,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAS/D;AAED,
|
|
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;AAE1D,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;CACnB,CAAC;AAEF,wBAAsB,QAAQ,CAAC,EAC7B,UAAU,EACV,QAAa,GACd,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAMpC"}
|
package/dist/auth/bootstrap.js
CHANGED
|
@@ -6,7 +6,7 @@ export function createSerOAuth(config) {
|
|
|
6
6
|
};
|
|
7
7
|
return kc;
|
|
8
8
|
}
|
|
9
|
-
export function createKeycloakAuthFromUrl(authorizationEndpoint, clientId, idp) {
|
|
9
|
+
export function createKeycloakAuthFromUrl({ authorizationEndpoint, clientId, idp, }) {
|
|
10
10
|
const url = authorizationEndpoint
|
|
11
11
|
.replace(/\/protocol\/openid-connect\/auth$/, "")
|
|
12
12
|
.replace(/\/realms\/[^\/]+$/, "");
|
|
@@ -18,8 +18,8 @@ export function createKeycloakAuthFromUrl(authorizationEndpoint, clientId, idp)
|
|
|
18
18
|
idp,
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
export async function initAuth(
|
|
22
|
-
return await
|
|
21
|
+
export async function initAuth({ authClient, basePath = "", }) {
|
|
22
|
+
return await authClient.init({
|
|
23
23
|
onLoad: "check-sso",
|
|
24
24
|
silentCheckSsoRedirectUri: `${window.location.origin}${basePath}/silent-check-sso.html`,
|
|
25
25
|
pkceMethod: "S256",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/auth/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAE1D,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;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/auth/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAE1D,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;AAOD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,UAAU,EACV,QAAQ,GAAG,EAAE,GACG;IAChB,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"}
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -4,15 +4,6 @@ export { useAuthStore } from "./store";
|
|
|
4
4
|
export type { TokenSet } from "./store";
|
|
5
5
|
export { createApiClient } from "./http-client";
|
|
6
6
|
export { createSerOAuth, createKeycloakAuthFromUrl, initAuth, } from "./bootstrap";
|
|
7
|
-
export {
|
|
8
|
-
export
|
|
9
|
-
export declare function getAuthState(): {
|
|
10
|
-
authenticated: boolean;
|
|
11
|
-
ready: boolean;
|
|
12
|
-
loading: boolean;
|
|
13
|
-
handleOidcCallback(): Promise<void>;
|
|
14
|
-
};
|
|
15
|
-
export declare function getAuthStore(): {
|
|
16
|
-
getState: typeof getAuthState;
|
|
17
|
-
};
|
|
7
|
+
export type { CreateKeycloakAuthOptions, InitAuthOptions } from "./bootstrap";
|
|
8
|
+
export { hasRoles } from "./route-guards";
|
|
18
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/auth/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/auth/index.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
export { SerOAuth } from "./ser-oauth-js";
|
|
2
2
|
export { useAuthStore } from "./store";
|
|
3
|
-
import { useAuthStore } from "./store";
|
|
4
3
|
export { createApiClient } from "./http-client";
|
|
5
4
|
export { createSerOAuth, createKeycloakAuthFromUrl, initAuth, } from "./bootstrap";
|
|
6
|
-
export {
|
|
7
|
-
export function getAuthState() {
|
|
8
|
-
const store = useAuthStore.getState();
|
|
9
|
-
return {
|
|
10
|
-
authenticated: store.authenticated,
|
|
11
|
-
ready: true,
|
|
12
|
-
loading: false,
|
|
13
|
-
async handleOidcCallback() {
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
export function getAuthStore() {
|
|
18
|
-
return {
|
|
19
|
-
getState: getAuthState,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
5
|
+
export { hasRoles } from "./route-guards";
|
|
22
6
|
//# sourceMappingURL=index.js.map
|
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAS1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAS1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,QAAQ,GACT,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,14 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export type RequireAuthOptions = {
|
|
3
|
-
locationPath: string;
|
|
4
|
-
kc: SerOAuth;
|
|
5
|
-
};
|
|
6
|
-
export declare function requireAuth({ locationPath, kc }: RequireAuthOptions): Promise<void>;
|
|
7
|
-
export declare function createAuthGuard(kc: SerOAuth): ({ location }: {
|
|
8
|
-
location: {
|
|
9
|
-
pathname: string;
|
|
10
|
-
};
|
|
11
|
-
}) => Promise<void>;
|
|
12
|
-
export declare function requireAdmin({ locationPath, kc }: RequireAuthOptions): Promise<void>;
|
|
13
|
-
export declare function clearAuthSession(): void;
|
|
1
|
+
export declare function hasRoles(requiredRoles: string[]): boolean;
|
|
14
2
|
//# sourceMappingURL=route-guards.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-guards.d.ts","sourceRoot":"","sources":["../../src/auth/route-guards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route-guards.d.ts","sourceRoot":"","sources":["../../src/auth/route-guards.ts"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAkCzD"}
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
import { useAuthStore } from "./store";
|
|
2
|
-
export
|
|
2
|
+
export function hasRoles(requiredRoles) {
|
|
3
3
|
const state = useAuthStore.getState();
|
|
4
|
-
if (state.authenticated)
|
|
5
|
-
return;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
4
|
+
if (!state.authenticated || !state.accessToken) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
try {
|
|
8
|
+
const payload = JSON.parse(atob(state.accessToken.split(".")[1]));
|
|
9
|
+
const userRoles = [];
|
|
10
|
+
if (payload.realm_access?.roles) {
|
|
11
|
+
userRoles.push(...payload.realm_access.roles);
|
|
12
|
+
}
|
|
13
|
+
if (payload.resource_access) {
|
|
14
|
+
Object.values(payload.resource_access).forEach((access) => {
|
|
15
|
+
if (access.roles) {
|
|
16
|
+
userRoles.push(...access.roles);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return requiredRoles.some((role) => userRoles.includes(role));
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.warn("Error parsing access token for role check:", error);
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
22
26
|
}
|
|
23
27
|
//# sourceMappingURL=route-guards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-guards.js","sourceRoot":"","sources":["../../src/auth/route-guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"route-guards.js","sourceRoot":"","sources":["../../src/auth/route-guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAOvC,MAAM,UAAU,QAAQ,CAAC,aAAuB;IAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAGtC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,SAAS,GAAa,EAAE,CAAC;QAG/B,IAAI,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;QAGD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;gBAC7D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from "./auth";
|
|
2
|
-
export { SerOAuth, useAuthStore, createApiClient, createSerOAuth, createKeycloakAuthFromUrl, initAuth,
|
|
3
|
-
export type { SerOAuthConfig, InitOptions, LoginOptions, LogoutOptions, TokenSet,
|
|
2
|
+
export { SerOAuth, useAuthStore, createApiClient, createSerOAuth, createKeycloakAuthFromUrl, initAuth, hasRoles, } from "./auth";
|
|
3
|
+
export type { SerOAuthConfig, InitOptions, LoginOptions, LogoutOptions, TokenSet, } from "./auth";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,QAAQ,CAAC;AAGvB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,QAAQ,CAAC;AAGvB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,QAAQ,EACR,QAAQ,GACT,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,QAAQ,GACT,MAAM,QAAQ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from "./auth";
|
|
2
|
-
export { SerOAuth, useAuthStore, createApiClient, createSerOAuth, createKeycloakAuthFromUrl, initAuth,
|
|
2
|
+
export { SerOAuth, useAuthStore, createApiClient, createSerOAuth, createKeycloakAuthFromUrl, initAuth, hasRoles, } from "./auth";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,QAAQ,CAAC;AAGvB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,QAAQ,CAAC;AAGvB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,QAAQ,EACR,QAAQ,GACT,MAAM,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elogroup-sereduc/ser-front-core-client",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.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",
|