@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 +1 -0
- package/dist/auth/AuthContext.d.ts +11 -0
- package/dist/auth/AuthContext.d.ts.map +1 -0
- package/dist/auth/AuthContext.js +3 -0
- package/dist/auth/AuthContext.js.map +1 -0
- package/dist/auth/AuthProvider.d.ts +8 -0
- package/dist/auth/AuthProvider.d.ts.map +1 -0
- package/dist/auth/AuthProvider.js +38 -0
- package/dist/auth/AuthProvider.js.map +1 -0
- package/dist/auth/index.d.ts +5 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +4 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/useAuth.d.ts +3 -0
- package/dist/auth/useAuth.d.ts.map +1 -0
- package/dist/auth/useAuth.js +10 -0
- package/dist/auth/useAuth.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useSupabaseQuery.d.ts +9 -0
- package/dist/hooks/useSupabaseQuery.d.ts.map +1 -0
- package/dist/hooks/useSupabaseQuery.js +18 -0
- package/dist/hooks/useSupabaseQuery.js.map +1 -0
- package/package.json +49 -0
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|