@elogroup-sereduc/ser-front-core-client 2.0.0 → 2.0.1
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 +1 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/route-guards.d.ts.map +1 -1
- package/dist/auth/route-guards.js +36 -0
- package/dist/auth/route-guards.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,6 +4,7 @@ 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 type { CreateKeycloakAuthOptions, InitAuthOptions } from "./bootstrap";
|
|
7
8
|
export { requireAuth, createAuthGuard, requireAdmin, clearAuthSession, } from "./route-guards";
|
|
8
9
|
export type { RequireAuthOptions } from "./route-guards";
|
|
9
10
|
export declare function getAuthState(): {
|
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;AAMxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,QAAQ,GACT,MAAM,aAAa,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;AAMxC,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,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,wBAAgB,YAAY;;;;;EAa3B;AAED,wBAAgB,YAAY;;EAI3B"}
|
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,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,QAAQ,GACT,MAAM,aAAa,CAAC;
|
|
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,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,QAAQ,GACT,MAAM,aAAa,CAAC;AAIrB,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACtC,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK;QAGd,KAAK,CAAC,kBAAkB;QAGxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,QAAQ,EAAE,YAAY;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-guards.d.ts","sourceRoot":"","sources":["../../src/auth/route-guards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAkBF,wBAAsB,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,kBAAkB,iBAUzE;AAeD,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,IAC5B,cAAc;IAAE,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,mBAM/D;AAKD,wBAAsB,YAAY,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"route-guards.d.ts","sourceRoot":"","sources":["../../src/auth/route-guards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAkBF,wBAAsB,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,kBAAkB,iBAUzE;AAeD,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,IAC5B,cAAc;IAAE,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,mBAM/D;AAKD,wBAAsB,YAAY,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,kBAAkB,iBAmD1E;AAKD,wBAAgB,gBAAgB,SAE/B"}
|
|
@@ -16,6 +16,42 @@ export function createAuthGuard(kc) {
|
|
|
16
16
|
}
|
|
17
17
|
export async function requireAdmin({ locationPath, kc }) {
|
|
18
18
|
await requireAuth({ locationPath, kc });
|
|
19
|
+
const state = useAuthStore.getState();
|
|
20
|
+
if (!state.accessToken) {
|
|
21
|
+
throw new Error("User is authenticated but no access token found");
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const payload = JSON.parse(atob(state.accessToken.split(".")[1]));
|
|
25
|
+
const roles = [];
|
|
26
|
+
if (payload.realm_access?.roles) {
|
|
27
|
+
roles.push(...payload.realm_access.roles);
|
|
28
|
+
}
|
|
29
|
+
if (payload.resource_access) {
|
|
30
|
+
Object.values(payload.resource_access).forEach((access) => {
|
|
31
|
+
if (access.roles) {
|
|
32
|
+
roles.push(...access.roles);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const adminRoles = [
|
|
37
|
+
"admin",
|
|
38
|
+
"administrator",
|
|
39
|
+
"realm-admin",
|
|
40
|
+
"manage-realm",
|
|
41
|
+
"manage-users",
|
|
42
|
+
];
|
|
43
|
+
const hasAdminRole = adminRoles.some((role) => roles.includes(role));
|
|
44
|
+
if (!hasAdminRole) {
|
|
45
|
+
throw new Error("Insufficient permissions: Admin role required");
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error instanceof Error && error.message.includes("permissions")) {
|
|
50
|
+
window.location.href = "/login?error=insufficient_permissions";
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
throw new Error("Error validating admin permissions");
|
|
54
|
+
}
|
|
19
55
|
}
|
|
20
56
|
export function clearAuthSession() {
|
|
21
57
|
sessionStorage.removeItem("postLoginRedirect");
|
|
@@ -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;AAwBvC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE,EAAsB;IACxE,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAEtC,IAAI,KAAK,CAAC,aAAa;QAAE,OAAO;IAGhC,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAG1D,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC,CAAC;AACzE,CAAC;AAeD,MAAM,UAAU,eAAe,CAAC,EAAY;IAC1C,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAsC,EAAE,EAAE;QAChE,MAAM,WAAW,CAAC;YAChB,YAAY,EAAE,QAAQ,CAAC,QAAQ;YAC/B,EAAE;SACH,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAE,YAAY,EAAE,EAAE,EAAsB;IAEzE,MAAM,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,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;AAwBvC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE,EAAsB;IACxE,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAEtC,IAAI,KAAK,CAAC,aAAa;QAAE,OAAO;IAGhC,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAG1D,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC,CAAC;AACzE,CAAC;AAeD,MAAM,UAAU,eAAe,CAAC,EAAY;IAC1C,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAsC,EAAE,EAAE;QAChE,MAAM,WAAW,CAAC;YAChB,YAAY,EAAE,QAAQ,CAAC,QAAQ;YAC/B,EAAE;SACH,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAE,YAAY,EAAE,EAAE,EAAsB;IAEzE,MAAM,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;IAGxC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,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,KAAK,GAAa,EAAE,CAAC;QAG3B,IAAI,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,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,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,UAAU,GAAG;YACjB,OAAO;YACP,eAAe;YACf,aAAa;YACb,cAAc;YACd,cAAc;SACf,CAAC;QACF,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAErE,IAAI,CAAC,YAAY,EAAE,CAAC;YAElB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAEpE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,uCAAuC,CAAC;YAC/D,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,gBAAgB;IAC9B,cAAc,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACjD,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.1",
|
|
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",
|