@krosoft/react-supabase 0.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/README.md ADDED
@@ -0,0 +1 @@
1
+ # krosoft-packages-react-supabase
@@ -0,0 +1,11 @@
1
+ import type { Session, User } from "@supabase/supabase-js";
2
+ export interface AuthContextType {
3
+ user: User | null;
4
+ session: Session | null;
5
+ isLoading: boolean;
6
+ signIn: (email: string, password: string) => Promise<void>;
7
+ signOut: () => Promise<void>;
8
+ signUp: (email: string, password: string) => Promise<void>;
9
+ }
10
+ export declare const AuthContext: import("react").Context<AuthContextType | undefined>;
11
+ //# sourceMappingURL=AuthContext.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from "react";
2
+ export const AuthContext = createContext(undefined);
3
+ //# sourceMappingURL=AuthContext.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,8 @@
1
+ import type { SupabaseClient } from "@supabase/supabase-js";
2
+ interface AuthProviderProps {
3
+ client: SupabaseClient;
4
+ children: React.ReactNode;
5
+ }
6
+ export declare const AuthProvider: React.FC<AuthProviderProps>;
7
+ export {};
8
+ //# sourceMappingURL=AuthProvider.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,38 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,5 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,4 @@
1
+ export { AuthContext } from "./AuthContext";
2
+ export { AuthProvider } from "./AuthProvider";
3
+ export { useAuth } from "./useAuth";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ import type { AuthContextType } from "./AuthContext";
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/auth/useAuth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,eAAO,MAAM,OAAO,QAAO,eAM1B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { useContext } from "react";
2
+ import { AuthContext } from "./AuthContext";
3
+ export const useAuth = () => {
4
+ const context = useContext(AuthContext);
5
+ if (context === undefined) {
6
+ throw new Error("useAuth must be used within an AuthProvider");
7
+ }
8
+ return context;
9
+ };
10
+ //# sourceMappingURL=useAuth.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export { useSupabaseQuery } from "./useSupabaseQuery";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useSupabaseQuery } from "./useSupabaseQuery";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { UseQueryResult } from "@tanstack/react-query";
2
+ import type { PostgrestError } from "@supabase/supabase-js";
3
+ type SupabaseQueryFn<T> = () => Promise<{
4
+ data: T | null;
5
+ error: PostgrestError | null;
6
+ }>;
7
+ export declare const useSupabaseQuery: <T>(queryKey: readonly unknown[], queryFn: SupabaseQueryFn<T>, enabled?: boolean) => UseQueryResult<T, Error>;
8
+ export {};
9
+ //# sourceMappingURL=useSupabaseQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSupabaseQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useSupabaseQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,KAAK,eAAe,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAE1F,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAChC,UAAU,SAAS,OAAO,EAAE,EAC5B,SAAS,eAAe,CAAC,CAAC,CAAC,EAC3B,iBAAc,KACb,cAAc,CAAC,CAAC,EAAE,KAAK,CAezB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ export const useSupabaseQuery = (queryKey, queryFn, enabled = true) => {
3
+ return useQuery({
4
+ queryKey,
5
+ queryFn: async () => {
6
+ const { data, error } = await queryFn();
7
+ if (error) {
8
+ throw new Error(error.message);
9
+ }
10
+ if (data === null) {
11
+ throw new Error("No data returned");
12
+ }
13
+ return data;
14
+ },
15
+ enabled,
16
+ });
17
+ };
18
+ //# sourceMappingURL=useSupabaseQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSupabaseQuery.js","sourceRoot":"","sources":["../../src/hooks/useSupabaseQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAA4B,EAC5B,OAA2B,EAC3B,OAAO,GAAG,IAAI,EACY,EAAE;IAC5B,OAAO,QAAQ,CAAW;QACxB,QAAQ;QACR,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@krosoft/react-supabase",
3
+ "version": "0.0.1",
4
+ "description": "Krosoft shared React Supabase package",
5
+ "type": "module",
6
+ "exports": {
7
+ "./auth": {
8
+ "import": "./dist/auth/index.js",
9
+ "types": "./dist/auth/index.d.ts"
10
+ },
11
+ "./hooks": {
12
+ "import": "./dist/hooks/index.js",
13
+ "types": "./dist/hooks/index.d.ts"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc -p tsconfig.build.json",
21
+ "lint": "eslint .",
22
+ "type-check": "tsc --noEmit",
23
+ "test": "vitest run"
24
+ },
25
+ "peerDependencies": {
26
+ "react": ">=18.0.0",
27
+ "@supabase/supabase-js": ">=2.0.0",
28
+ "@tanstack/react-query": ">=5.0.0"
29
+ },
30
+ "devDependencies": {
31
+ "@krosoft/tooling-eslint-react": ">=0.0.2",
32
+ "@krosoft/tooling-prettier": ">=0.0.6",
33
+ "@krosoft/tooling-tsconfig-react": ">=0.0.5",
34
+ "@supabase/supabase-js": "^2.49.4",
35
+ "@tanstack/react-query": "^5.80.2",
36
+ "@types/react": "^18.3.0",
37
+ "prettier": "^3.8.1",
38
+ "react": "^18.3.1",
39
+ "typescript": "^5.9.3",
40
+ "vitest": "^4.1.2"
41
+ },
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "git+https://github.com/krosoft-dev/krosoft-packages-react-supabase.git"
45
+ },
46
+ "publishConfig": {
47
+ "access": "public"
48
+ }
49
+ }