@krosoft/react-supabase 0.0.1 → 0.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.
Files changed (42) hide show
  1. package/README.md +1 -1
  2. package/dist/{auth/AuthContext.d.ts → contexts/auth.context.d.ts} +5 -3
  3. package/dist/contexts/auth.context.d.ts.map +1 -0
  4. package/dist/{auth/AuthContext.js → contexts/auth.context.js} +1 -1
  5. package/dist/contexts/auth.context.js.map +1 -0
  6. package/dist/contexts/index.d.ts +3 -0
  7. package/dist/contexts/index.d.ts.map +1 -0
  8. package/dist/contexts/index.js +2 -0
  9. package/dist/contexts/index.js.map +1 -0
  10. package/dist/helpers/auth.helper.d.ts +27 -0
  11. package/dist/helpers/auth.helper.d.ts.map +1 -0
  12. package/dist/helpers/auth.helper.js +51 -0
  13. package/dist/helpers/auth.helper.js.map +1 -0
  14. package/dist/helpers/index.d.ts +3 -0
  15. package/dist/helpers/index.d.ts.map +1 -0
  16. package/dist/helpers/index.js +2 -0
  17. package/dist/helpers/index.js.map +1 -0
  18. package/dist/hooks/useAuth.d.ts +3 -0
  19. package/dist/hooks/useAuth.d.ts.map +1 -0
  20. package/dist/{auth → hooks}/useAuth.js +1 -1
  21. package/dist/hooks/useAuth.js.map +1 -0
  22. package/dist/{auth → providers}/AuthProvider.d.ts +4 -0
  23. package/dist/providers/AuthProvider.d.ts.map +1 -0
  24. package/dist/providers/AuthProvider.js +153 -0
  25. package/dist/providers/AuthProvider.js.map +1 -0
  26. package/dist/providers/index.d.ts +2 -0
  27. package/dist/providers/index.d.ts.map +1 -0
  28. package/dist/providers/index.js +2 -0
  29. package/dist/providers/index.js.map +1 -0
  30. package/package.json +22 -5
  31. package/dist/auth/AuthContext.d.ts.map +0 -1
  32. package/dist/auth/AuthContext.js.map +0 -1
  33. package/dist/auth/AuthProvider.d.ts.map +0 -1
  34. package/dist/auth/AuthProvider.js +0 -38
  35. package/dist/auth/AuthProvider.js.map +0 -1
  36. package/dist/auth/index.d.ts +0 -5
  37. package/dist/auth/index.d.ts.map +0 -1
  38. package/dist/auth/index.js +0 -4
  39. package/dist/auth/index.js.map +0 -1
  40. package/dist/auth/useAuth.d.ts +0 -3
  41. package/dist/auth/useAuth.d.ts.map +0 -1
  42. package/dist/auth/useAuth.js.map +0 -1
package/README.md CHANGED
@@ -1 +1 @@
1
- # krosoft-packages-react-supabase
1
+ # krosoft-packages-react-supabase
@@ -1,11 +1,13 @@
1
1
  import type { Session, User } from "@supabase/supabase-js";
2
2
  export interface AuthContextType {
3
+ isAuthenticated: boolean;
3
4
  user: User | null;
4
5
  session: Session | null;
5
6
  isLoading: boolean;
6
7
  signIn: (email: string, password: string) => Promise<void>;
7
- signOut: () => Promise<void>;
8
- signUp: (email: string, password: string) => Promise<void>;
8
+ signUp: (email: string, password: string, name: string) => Promise<void>;
9
+ signOut: (redirectUrl?: string) => Promise<void>;
10
+ getLoginUrl: (redirectUrl?: string) => string;
9
11
  }
10
12
  export declare const AuthContext: import("react").Context<AuthContextType | undefined>;
11
- //# sourceMappingURL=AuthContext.d.ts.map
13
+ //# sourceMappingURL=auth.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.context.d.ts","sourceRoot":"","sources":["../../src/contexts/auth.context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,WAAW,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/C;AAED,eAAO,MAAM,WAAW,sDAAwD,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { createContext } from "react";
2
2
  export const AuthContext = createContext(undefined);
3
- //# sourceMappingURL=AuthContext.js.map
3
+ //# sourceMappingURL=auth.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.context.js","sourceRoot":"","sources":["../../src/contexts/auth.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AActC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAA8B,SAAS,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { AuthContext } from "./auth.context";
2
+ export type { AuthContextType } from "./auth.context";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { AuthContext } from "./auth.context";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { Session, User } from "@supabase/supabase-js";
2
+ export interface CustomUserMetadata {
3
+ avatar_url?: string;
4
+ name?: string;
5
+ roles?: string[];
6
+ permissions?: string[];
7
+ tenants?: TenantMetadata[];
8
+ }
9
+ export interface JwtPayloadWithMetadata {
10
+ user_metadata?: CustomUserMetadata;
11
+ }
12
+ export interface TenantMetadata {
13
+ id: string;
14
+ name: string;
15
+ logo_url?: string | null;
16
+ }
17
+ export declare const enrichUserWithMetadata: (user: User, session: Session) => User;
18
+ export declare const extractUserMetadataFromSession: (session: Session | null) => {
19
+ roles: string[];
20
+ permissions: string[];
21
+ tenants: TenantMetadata[];
22
+ };
23
+ export declare const getTenantsId: (user: User | null) => string[];
24
+ export declare const getTenant: (user: User | null) => TenantMetadata | null;
25
+ export declare const getTenants: (user: User | null) => TenantMetadata[];
26
+ export declare const checkMultiTenants: (tenants: TenantMetadata[] | null) => boolean;
27
+ //# sourceMappingURL=auth.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/auth.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAG3D,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,GAAI,MAAM,IAAI,EAAE,SAAS,OAAO,KAAG,IAgBrE,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,SAAS,OAAO,GAAG,IAAI,KACtB;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAA;CAgBrE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,IAAI,GAAG,IAAI,KAAG,MAAM,EAEtD,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,GAAG,IAAI,KAAG,cAAc,GAAG,IAG9D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,GAAG,IAAI,KAAG,cAAc,EAS5D,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,cAAc,EAAE,GAAG,IAAI,KAAG,OAEpE,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { jwtDecode } from "jwt-decode";
2
+ export const enrichUserWithMetadata = (user, session) => {
3
+ if (!user || !session) {
4
+ return user;
5
+ }
6
+ const metadata = extractUserMetadataFromSession(session);
7
+ return {
8
+ ...user,
9
+ user_metadata: {
10
+ ...user.user_metadata,
11
+ roles: metadata.roles,
12
+ permissions: metadata.permissions,
13
+ tenants: metadata.tenants,
14
+ },
15
+ };
16
+ };
17
+ export const extractUserMetadataFromSession = (session) => {
18
+ if (!session?.access_token) {
19
+ return { roles: [], permissions: [], tenants: [] };
20
+ }
21
+ try {
22
+ const jwt = jwtDecode(session.access_token);
23
+ return {
24
+ roles: jwt.user_metadata?.roles ?? [],
25
+ permissions: jwt.user_metadata?.permissions ?? [],
26
+ tenants: jwt.user_metadata?.tenants ?? [],
27
+ };
28
+ }
29
+ catch {
30
+ return { roles: [], permissions: [], tenants: [] };
31
+ }
32
+ };
33
+ export const getTenantsId = (user) => {
34
+ return getTenants(user).map(tenant => tenant.id);
35
+ };
36
+ export const getTenant = (user) => {
37
+ const tenants = getTenants(user);
38
+ return tenants.length === 0 ? null : tenants[0];
39
+ };
40
+ export const getTenants = (user) => {
41
+ if (!user?.user_metadata?.tenants) {
42
+ return [];
43
+ }
44
+ const metadata = user.user_metadata;
45
+ const tenants = (metadata.tenants ?? []);
46
+ return [...tenants].sort((a, b) => a.name.localeCompare(b.name));
47
+ };
48
+ export const checkMultiTenants = (tenants) => {
49
+ return (tenants?.length ?? 0) > 1;
50
+ };
51
+ //# sourceMappingURL=auth.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.helper.js","sourceRoot":"","sources":["../../src/helpers/auth.helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAoBvC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAU,EAAE,OAAgB,EAAQ,EAAE;IAC3E,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAEzD,OAAO;QACL,GAAG,IAAI;QACP,aAAa,EAAE;YACb,GAAG,IAAI,CAAC,aAAa;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,OAAuB,EACgD,EAAE;IACzE,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,CAAyB,OAAO,CAAC,YAAY,CAAC,CAAC;QAEpE,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;YACrC,WAAW,EAAE,GAAG,CAAC,aAAa,EAAE,WAAW,IAAI,EAAE;YACjD,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE;SAC1C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAiB,EAAY,EAAE;IAC1D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAiB,EAAyB,EAAE;IACpE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAiB,EAAoB,EAAE;IAChE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAmC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAqB,CAAC;IAE7D,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAgC,EAAW,EAAE;IAC7E,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { enrichUserWithMetadata, extractUserMetadataFromSession, getTenantsId, getTenant, getTenants, checkMultiTenants, } from "./auth.helper";
2
+ export type { CustomUserMetadata, JwtPayloadWithMetadata, TenantMetadata } from "./auth.helper";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { enrichUserWithMetadata, extractUserMetadataFromSession, getTenantsId, getTenant, getTenants, checkMultiTenants, } from "./auth.helper";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AuthContextType } from "../contexts/auth.context";
2
+ export declare const useAuth: () => AuthContextType;
3
+ //# sourceMappingURL=useAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../src/hooks/useAuth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,eAAO,MAAM,OAAO,QAAO,eAM1B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { useContext } from "react";
2
- import { AuthContext } from "./AuthContext";
2
+ import { AuthContext } from "../contexts/auth.context";
3
3
  export const useAuth = () => {
4
4
  const context = useContext(AuthContext);
5
5
  if (context === undefined) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../src/hooks/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAoB,EAAE;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -2,6 +2,10 @@ import type { SupabaseClient } from "@supabase/supabase-js";
2
2
  interface AuthProviderProps {
3
3
  client: SupabaseClient;
4
4
  children: React.ReactNode;
5
+ navigate: (path: string) => void;
6
+ onSuccess?: (message: string) => void;
7
+ onError?: (message: string) => void;
8
+ loginPath?: string;
5
9
  }
6
10
  export declare const AuthProvider: React.FC<AuthProviderProps>;
7
11
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../src/providers/AuthProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,cAAc,EAAQ,MAAM,uBAAuB,CAAC;AAK3E,UAAU,iBAAiB;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsKpD,CAAC"}
@@ -0,0 +1,153 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { useQueryClient } from "@tanstack/react-query";
4
+ import { AuthContext } from "../contexts/auth.context";
5
+ import { enrichUserWithMetadata } from "../helpers/auth.helper";
6
+ export const AuthProvider = ({ client, children, navigate, onSuccess, onError, loginPath = "/auth/login" }) => {
7
+ const [user, setUser] = useState(null);
8
+ const [session, setSession] = useState(null);
9
+ const [isLoading, setIsLoading] = useState(true);
10
+ const queryClient = useQueryClient();
11
+ const clearAllData = () => {
12
+ queryClient.clear();
13
+ };
14
+ const getLoginUrl = (redirectUrl) => {
15
+ if (redirectUrl) {
16
+ return `${loginPath}?redirect=${encodeURIComponent(redirectUrl)}`;
17
+ }
18
+ const currentPath = window.location.pathname;
19
+ if (currentPath !== loginPath && currentPath !== "/") {
20
+ return `${loginPath}?redirect=${encodeURIComponent(currentPath)}`;
21
+ }
22
+ return loginPath;
23
+ };
24
+ useEffect(() => {
25
+ const initSession = async () => {
26
+ try {
27
+ const { data, error } = await client.auth.getSession();
28
+ if (error) {
29
+ throw error;
30
+ }
31
+ if (data.session?.user) {
32
+ setSession(data.session);
33
+ setUser(enrichUserWithMetadata(data.session.user, data.session));
34
+ }
35
+ else {
36
+ setSession(null);
37
+ setUser(null);
38
+ }
39
+ }
40
+ catch {
41
+ setSession(null);
42
+ setUser(null);
43
+ }
44
+ finally {
45
+ setIsLoading(false);
46
+ }
47
+ };
48
+ const { data: listener } = client.auth.onAuthStateChange((_event, newSession) => {
49
+ if (_event !== "INITIAL_SESSION") {
50
+ clearAllData();
51
+ }
52
+ if (newSession?.user) {
53
+ setSession(newSession);
54
+ setUser(enrichUserWithMetadata(newSession.user, newSession));
55
+ }
56
+ else {
57
+ setSession(null);
58
+ setUser(null);
59
+ }
60
+ setIsLoading(false);
61
+ });
62
+ void initSession();
63
+ return () => {
64
+ listener.subscription.unsubscribe();
65
+ };
66
+ }, [client, queryClient]);
67
+ const signIn = async (email, password) => {
68
+ try {
69
+ setIsLoading(true);
70
+ const { data, error } = await client.auth.signInWithPassword({ email, password });
71
+ if (error) {
72
+ throw error;
73
+ }
74
+ clearAllData();
75
+ if (data.session && data.user) {
76
+ setUser(enrichUserWithMetadata(data.user, data.session));
77
+ setSession(data.session);
78
+ }
79
+ navigate("/");
80
+ onSuccess?.("Connexion réussie");
81
+ }
82
+ catch (err) {
83
+ const message = err instanceof Error ? err.message : "Échec de la connexion";
84
+ onError?.(message);
85
+ }
86
+ finally {
87
+ setIsLoading(false);
88
+ }
89
+ };
90
+ const signUp = async (email, password, name) => {
91
+ try {
92
+ setIsLoading(true);
93
+ const { error } = await client.auth.signUp({
94
+ email,
95
+ password,
96
+ options: { data: { name } },
97
+ });
98
+ if (error) {
99
+ throw error;
100
+ }
101
+ clearAllData();
102
+ navigate("/");
103
+ onSuccess?.("Inscription réussie");
104
+ }
105
+ catch (err) {
106
+ const message = err instanceof Error ? err.message : "Échec de l'inscription";
107
+ onError?.(message);
108
+ }
109
+ finally {
110
+ setIsLoading(false);
111
+ }
112
+ };
113
+ const signOut = async (redirectUrl) => {
114
+ try {
115
+ setIsLoading(true);
116
+ if (!session) {
117
+ setUser(null);
118
+ setSession(null);
119
+ clearAllData();
120
+ navigate(getLoginUrl(redirectUrl));
121
+ onSuccess?.("Déconnexion réussie");
122
+ return;
123
+ }
124
+ const { error } = await client.auth.signOut();
125
+ if (error) {
126
+ throw error;
127
+ }
128
+ clearAllData();
129
+ navigate(getLoginUrl(redirectUrl));
130
+ onSuccess?.("Déconnexion réussie");
131
+ }
132
+ catch {
133
+ setUser(null);
134
+ setSession(null);
135
+ clearAllData();
136
+ navigate(getLoginUrl());
137
+ }
138
+ finally {
139
+ setIsLoading(false);
140
+ }
141
+ };
142
+ return (_jsx(AuthContext.Provider, { value: {
143
+ isAuthenticated: !!user,
144
+ user,
145
+ session,
146
+ isLoading,
147
+ signIn,
148
+ signUp,
149
+ signOut,
150
+ getLoginUrl,
151
+ }, children: children }));
152
+ };
153
+ //# sourceMappingURL=AuthProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthProvider.js","sourceRoot":"","sources":["../../src/providers/AuthProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { AuthProvider } from "./AuthProvider";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { AuthProvider } from "./AuthProvider";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,16 +1,24 @@
1
1
  {
2
2
  "name": "@krosoft/react-supabase",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Krosoft shared React Supabase package",
5
5
  "type": "module",
6
6
  "exports": {
7
- "./auth": {
8
- "import": "./dist/auth/index.js",
9
- "types": "./dist/auth/index.d.ts"
7
+ "./contexts": {
8
+ "import": "./dist/contexts/index.js",
9
+ "types": "./dist/contexts/index.d.ts"
10
+ },
11
+ "./providers": {
12
+ "import": "./dist/providers/index.js",
13
+ "types": "./dist/providers/index.d.ts"
10
14
  },
11
15
  "./hooks": {
12
16
  "import": "./dist/hooks/index.js",
13
17
  "types": "./dist/hooks/index.d.ts"
18
+ },
19
+ "./helpers": {
20
+ "import": "./dist/helpers/index.js",
21
+ "types": "./dist/helpers/index.d.ts"
14
22
  }
15
23
  },
16
24
  "files": [
@@ -22,6 +30,9 @@
22
30
  "type-check": "tsc --noEmit",
23
31
  "test": "vitest run"
24
32
  },
33
+ "dependencies": {
34
+ "jwt-decode": "^4.0.0"
35
+ },
25
36
  "peerDependencies": {
26
37
  "react": ">=18.0.0",
27
38
  "@supabase/supabase-js": ">=2.0.0",
@@ -30,14 +41,20 @@
30
41
  "devDependencies": {
31
42
  "@krosoft/tooling-eslint-react": ">=0.0.2",
32
43
  "@krosoft/tooling-prettier": ">=0.0.6",
44
+ "@krosoft/tooling-tsconfig": ">=0.0.6",
33
45
  "@krosoft/tooling-tsconfig-react": ">=0.0.5",
34
46
  "@supabase/supabase-js": "^2.49.4",
35
47
  "@tanstack/react-query": "^5.80.2",
36
48
  "@types/react": "^18.3.0",
37
49
  "prettier": "^3.8.1",
38
50
  "react": "^18.3.1",
51
+ "react-dom": "^18.3.1",
39
52
  "typescript": "^5.9.3",
40
- "vitest": "^4.1.2"
53
+ "vitest": "^4.1.2",
54
+ "@testing-library/dom": "^10.4.0",
55
+ "@testing-library/react": "^16.3.0",
56
+ "@vitejs/plugin-react": "^4.5.2",
57
+ "jsdom": "^26.1.0"
41
58
  },
42
59
  "repository": {
43
60
  "type": "git",
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../../src/auth/AuthContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,eAAO,MAAM,WAAW,sDAAwD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthContext.js","sourceRoot":"","sources":["../../src/auth/AuthContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAYtC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAA8B,SAAS,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../src/auth/AuthProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,cAAc,EAAQ,MAAM,uBAAuB,CAAC;AAG3E,UAAU,iBAAiB;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2CpD,CAAC"}
@@ -1,38 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useState } from "react";
3
- import { AuthContext } from "./AuthContext";
4
- export const AuthProvider = ({ client, children }) => {
5
- const [user, setUser] = useState(null);
6
- const [session, setSession] = useState(null);
7
- const [isLoading, setIsLoading] = useState(true);
8
- useEffect(() => {
9
- const { data: listener } = client.auth.onAuthStateChange((_event, newSession) => {
10
- setSession(newSession);
11
- setUser(newSession?.user ?? null);
12
- setIsLoading(false);
13
- });
14
- return () => {
15
- listener.subscription.unsubscribe();
16
- };
17
- }, [client]);
18
- const signIn = async (email, password) => {
19
- const { error } = await client.auth.signInWithPassword({ email, password });
20
- if (error) {
21
- throw error;
22
- }
23
- };
24
- const signOut = async () => {
25
- const { error } = await client.auth.signOut();
26
- if (error) {
27
- throw error;
28
- }
29
- };
30
- const signUp = async (email, password) => {
31
- const { error } = await client.auth.signUp({ email, password });
32
- if (error) {
33
- throw error;
34
- }
35
- };
36
- return (_jsx(AuthContext.Provider, { value: { user, session, isLoading, signIn, signOut, signUp }, children: children }));
37
- };
38
- //# sourceMappingURL=AuthProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthProvider.js","sourceRoot":"","sources":["../../src/auth/AuthProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAc,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;YAC9E,UAAU,CAAC,UAAU,CAAC,CAAC;YACvB,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;YAClC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,MAAM,GAAG,KAAK,EAAE,KAAa,EAAE,QAAgB,EAAiB,EAAE;QACtE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5E,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,EAAE,KAAa,EAAE,QAAgB,EAAiB,EAAE;QACtE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAC/E,QAAQ,GACY,CACxB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export { AuthContext } from "./AuthContext";
2
- export type { AuthContextType } from "./AuthContext";
3
- export { AuthProvider } from "./AuthProvider";
4
- export { useAuth } from "./useAuth";
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -1,4 +0,0 @@
1
- export { AuthContext } from "./AuthContext";
2
- export { AuthProvider } from "./AuthProvider";
3
- export { useAuth } from "./useAuth";
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { AuthContextType } from "./AuthContext";
2
- export declare const useAuth: () => AuthContextType;
3
- //# sourceMappingURL=useAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../src/auth/useAuth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,eAAO,MAAM,OAAO,QAAO,eAM1B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../src/auth/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAoB,EAAE;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}