@pol-studios/db 1.0.8 → 1.0.10
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/context.js +21 -12786
- package/dist/auth/context.js.map +1 -1
- package/dist/auth/guards.js +12 -7640
- package/dist/auth/guards.js.map +1 -1
- package/dist/auth/hooks.js +25 -10591
- package/dist/auth/hooks.js.map +1 -1
- package/dist/auth/index.js +43 -13008
- package/dist/auth/index.js.map +1 -1
- package/dist/canvas-75Y7XMF3.js +1541 -0
- package/dist/canvas-75Y7XMF3.js.map +1 -0
- package/dist/chunk-2IFGILT3.js +532 -0
- package/dist/chunk-2IFGILT3.js.map +1 -0
- package/dist/chunk-3M2U6TXH.js +928 -0
- package/dist/chunk-3M2U6TXH.js.map +1 -0
- package/dist/chunk-3PJTNH2L.js +2778 -0
- package/dist/chunk-3PJTNH2L.js.map +1 -0
- package/dist/chunk-5ZYAEGCJ.js +416 -0
- package/dist/chunk-5ZYAEGCJ.js.map +1 -0
- package/dist/chunk-7HG6G25H.js +710 -0
- package/dist/chunk-7HG6G25H.js.map +1 -0
- package/dist/chunk-7XT7K4QT.js +2687 -0
- package/dist/chunk-7XT7K4QT.js.map +1 -0
- package/dist/chunk-AWFMICFV.js +158 -0
- package/dist/chunk-AWFMICFV.js.map +1 -0
- package/dist/chunk-BRTW7CO5.js +1467 -0
- package/dist/chunk-BRTW7CO5.js.map +1 -0
- package/dist/chunk-EL45Z26M.js +4194 -0
- package/dist/chunk-EL45Z26M.js.map +1 -0
- package/dist/chunk-ERGF2FCE.js +903 -0
- package/dist/chunk-ERGF2FCE.js.map +1 -0
- package/dist/chunk-GK7B66LY.js +135 -0
- package/dist/chunk-GK7B66LY.js.map +1 -0
- package/dist/chunk-GQI6WJGI.js +172 -0
- package/dist/chunk-GQI6WJGI.js.map +1 -0
- package/dist/chunk-H6365JPC.js +1858 -0
- package/dist/chunk-H6365JPC.js.map +1 -0
- package/dist/chunk-J4ZVCXZ4.js +1 -0
- package/dist/chunk-J4ZVCXZ4.js.map +1 -0
- package/dist/chunk-JUVE3DWY.js +433 -0
- package/dist/chunk-JUVE3DWY.js.map +1 -0
- package/dist/chunk-O3K7R32P.js +7555 -0
- package/dist/chunk-O3K7R32P.js.map +1 -0
- package/dist/chunk-P4UZ7IXC.js +42 -0
- package/dist/chunk-P4UZ7IXC.js.map +1 -0
- package/dist/chunk-SEY5UO2T.js +89 -0
- package/dist/chunk-SEY5UO2T.js.map +1 -0
- package/dist/chunk-USJYMRUO.js +86 -0
- package/dist/chunk-USJYMRUO.js.map +1 -0
- package/dist/chunk-XX3IWSPM.js +189 -0
- package/dist/chunk-XX3IWSPM.js.map +1 -0
- package/dist/chunk-Y3INY2CS.js +14 -0
- package/dist/chunk-Y3INY2CS.js.map +1 -0
- package/dist/chunk-ZTSBF536.js +1927 -0
- package/dist/chunk-ZTSBF536.js.map +1 -0
- package/dist/client/index.js +13 -141
- package/dist/client/index.js.map +1 -1
- package/dist/dist-NDNRSNOG.js +521 -0
- package/dist/dist-NDNRSNOG.js.map +1 -0
- package/dist/gen/index.js +186 -1280
- package/dist/gen/index.js.map +1 -1
- package/dist/hooks/index.js +21 -8694
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.js +403 -47848
- package/dist/index.js.map +1 -1
- package/dist/index.native.js +400 -25048
- package/dist/index.native.js.map +1 -1
- package/dist/index.web.js +576 -43769
- package/dist/index.web.js.map +1 -1
- package/dist/mutation/index.js +44 -4675
- package/dist/mutation/index.js.map +1 -1
- package/dist/parser/index.js +45 -3697
- package/dist/parser/index.js.map +1 -1
- package/dist/pdf-3TIGQRLA.js +20336 -0
- package/dist/pdf-3TIGQRLA.js.map +1 -0
- package/dist/query/index.js +31 -13175
- package/dist/query/index.js.map +1 -1
- package/dist/realtime/index.js +45 -12431
- package/dist/realtime/index.js.map +1 -1
- package/dist/types/index.js +9 -0
- package/package.json +3 -3
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
// src/client/config.ts
|
|
2
|
+
var supabaseUrl = process.env.SUPABASE_URL;
|
|
3
|
+
var supabaseKey = process.env.SUPABASE_ANON_KEY ?? "";
|
|
4
|
+
function setSupabaseUrl(url) {
|
|
5
|
+
supabaseUrl = url;
|
|
6
|
+
}
|
|
7
|
+
function getSupabaseUrl() {
|
|
8
|
+
return supabaseUrl;
|
|
9
|
+
}
|
|
10
|
+
function setSupabaseKey(key) {
|
|
11
|
+
supabaseKey = key;
|
|
12
|
+
}
|
|
13
|
+
function getSupabaseKey() {
|
|
14
|
+
return supabaseKey;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// src/client/useSupabase.tsx
|
|
18
|
+
import {
|
|
19
|
+
createContext,
|
|
20
|
+
useContext,
|
|
21
|
+
useEffect,
|
|
22
|
+
useMemo,
|
|
23
|
+
useState
|
|
24
|
+
} from "react";
|
|
25
|
+
import {
|
|
26
|
+
createClient
|
|
27
|
+
} from "@supabase/supabase-js";
|
|
28
|
+
|
|
29
|
+
// src/utils/uuid.ts
|
|
30
|
+
function generateUUID() {
|
|
31
|
+
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
32
|
+
return crypto.randomUUID();
|
|
33
|
+
}
|
|
34
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
35
|
+
const r = Math.random() * 16 | 0;
|
|
36
|
+
const v = c === "x" ? r : r & 3 | 8;
|
|
37
|
+
return v.toString(16);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// src/client/useSupabase.tsx
|
|
42
|
+
import { jsx } from "react/jsx-runtime";
|
|
43
|
+
function newUuid() {
|
|
44
|
+
return generateUUID();
|
|
45
|
+
}
|
|
46
|
+
function isUsable(value) {
|
|
47
|
+
return value !== null && value !== void 0;
|
|
48
|
+
}
|
|
49
|
+
function delay(ms) {
|
|
50
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
51
|
+
}
|
|
52
|
+
var UserSessionId = newUuid();
|
|
53
|
+
var defaultOptions = {
|
|
54
|
+
auth: {
|
|
55
|
+
autoRefreshToken: true,
|
|
56
|
+
persistSession: true,
|
|
57
|
+
detectSessionInUrl: true
|
|
58
|
+
},
|
|
59
|
+
global: {
|
|
60
|
+
headers: { "x-session-id": UserSessionId }
|
|
61
|
+
},
|
|
62
|
+
realtime: {}
|
|
63
|
+
};
|
|
64
|
+
function createNewSupabaseClient(options) {
|
|
65
|
+
const client = createClient(
|
|
66
|
+
getSupabaseUrl(),
|
|
67
|
+
getSupabaseKey(),
|
|
68
|
+
{
|
|
69
|
+
...defaultOptions,
|
|
70
|
+
...options
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
onSupabaseInitializedAction && onSupabaseInitializedAction(client);
|
|
74
|
+
return client;
|
|
75
|
+
}
|
|
76
|
+
var onSupabaseInitializedAction = void 0;
|
|
77
|
+
function onSupabaseInitialized(afterInitialize) {
|
|
78
|
+
onSupabaseInitializedAction = afterInitialize;
|
|
79
|
+
}
|
|
80
|
+
function setDefaultOptions(options) {
|
|
81
|
+
defaultOptions = options;
|
|
82
|
+
}
|
|
83
|
+
var typedSupabase = null;
|
|
84
|
+
var context = createContext({
|
|
85
|
+
supabaseClient: typedSupabase
|
|
86
|
+
});
|
|
87
|
+
function useSupabase() {
|
|
88
|
+
const supabaseContext = useContext(context);
|
|
89
|
+
if (isUsable(supabaseContext?.supabaseClient) === false) {
|
|
90
|
+
throw new Error("Hook not inside a supabase context provider.");
|
|
91
|
+
}
|
|
92
|
+
return supabaseContext.supabaseClient;
|
|
93
|
+
}
|
|
94
|
+
function SupabaseProvider({
|
|
95
|
+
children,
|
|
96
|
+
options,
|
|
97
|
+
afterInitialize,
|
|
98
|
+
supabaseClient: supabaseClientProp
|
|
99
|
+
}) {
|
|
100
|
+
const [supabaseClient, setSupabaseClient] = useState(
|
|
101
|
+
() => supabaseClientProp ?? createNewSupabaseClient({
|
|
102
|
+
...defaultOptions,
|
|
103
|
+
...options ? options : {}
|
|
104
|
+
})
|
|
105
|
+
);
|
|
106
|
+
const [wasHidden, setWasHidden] = useState(false);
|
|
107
|
+
const [connected, setConnected] = useState(true);
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
afterInitialize && afterInitialize(supabaseClient);
|
|
110
|
+
}, [supabaseClient]);
|
|
111
|
+
useEffect(() => {
|
|
112
|
+
const checkVisibility = async () => {
|
|
113
|
+
if (typeof window.document === "undefined") return;
|
|
114
|
+
if (document?.hidden) {
|
|
115
|
+
await delay(60 * 1e3).then((x) => {
|
|
116
|
+
if (document.hidden) {
|
|
117
|
+
setWasHidden(true);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
} else if (wasHidden) {
|
|
121
|
+
setWasHidden(false);
|
|
122
|
+
try {
|
|
123
|
+
setConnected(true);
|
|
124
|
+
} catch (error) {
|
|
125
|
+
console.error("Reconnection failed:", error);
|
|
126
|
+
setConnected(false);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
const intervalId = setInterval(checkVisibility, 1e3);
|
|
131
|
+
return () => {
|
|
132
|
+
clearInterval(intervalId);
|
|
133
|
+
};
|
|
134
|
+
}, [wasHidden]);
|
|
135
|
+
return /* @__PURE__ */ jsx(
|
|
136
|
+
context.Provider,
|
|
137
|
+
{
|
|
138
|
+
value: useMemo(() => ({ supabaseClient }), [supabaseClient]),
|
|
139
|
+
children
|
|
140
|
+
}
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export {
|
|
145
|
+
setSupabaseUrl,
|
|
146
|
+
getSupabaseUrl,
|
|
147
|
+
setSupabaseKey,
|
|
148
|
+
getSupabaseKey,
|
|
149
|
+
generateUUID,
|
|
150
|
+
UserSessionId,
|
|
151
|
+
createNewSupabaseClient,
|
|
152
|
+
onSupabaseInitialized,
|
|
153
|
+
setDefaultOptions,
|
|
154
|
+
typedSupabase,
|
|
155
|
+
useSupabase,
|
|
156
|
+
SupabaseProvider
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=chunk-AWFMICFV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/client/config.ts","../src/client/useSupabase.tsx","../src/utils/uuid.ts"],"sourcesContent":["let supabaseUrl = process.env.SUPABASE_URL;\nlet supabaseKey = process.env.SUPABASE_ANON_KEY ?? \"\";\n\nexport function setSupabaseUrl(url: string) {\n supabaseUrl = url;\n}\n\nexport function getSupabaseUrl() {\n return supabaseUrl;\n}\n\nexport function setSupabaseKey(key: string) {\n supabaseKey = key;\n}\n\nexport function getSupabaseKey() {\n return supabaseKey;\n}\n","import {\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport {\n createClient,\n SupabaseClient,\n SupabaseClientOptions,\n} from \"@supabase/supabase-js\";\nimport { getSupabaseUrl, getSupabaseKey } from \"./config\";\nimport { generateUUID } from \"../utils/uuid\";\n\n// This interface is augmented by consumers to provide their database types\n// Example: declare module '@pol-studios/db' { interface SupabaseDatabaseTypes { Database: MyDatabaseType } }\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface SupabaseDatabaseTypes {}\n\nexport type Database = SupabaseDatabaseTypes extends { Database: infer D }\n ? D\n : any;\n\nexport type TypedSupabaseClient = SupabaseClient<Database>;\n\nfunction newUuid(): string {\n return generateUUID();\n}\n\nfunction isUsable<T>(value: T | null | undefined): value is T {\n return value !== null && value !== undefined;\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport const UserSessionId = newUuid();\nlet defaultOptions: any = {\n auth: {\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n },\n global: {\n headers: { \"x-session-id\": UserSessionId },\n },\n realtime: {},\n};\n\nexport function createNewSupabaseClient<\n SchemaName extends string & keyof Database = \"public\" extends keyof Database\n ? \"public\"\n : string & keyof Database,\n>(options?: SupabaseClientOptions<SchemaName>) {\n const client = createClient<Database, SchemaName>(\n getSupabaseUrl()!,\n getSupabaseKey()!,\n {\n ...defaultOptions,\n ...options,\n }\n );\n\n onSupabaseInitializedAction && onSupabaseInitializedAction(client as any);\n\n return client;\n}\n\nlet onSupabaseInitializedAction:\n | ((supabase: SupabaseClient) => any)\n | undefined = undefined;\n\nexport function onSupabaseInitialized(\n afterInitialize: (supabase: SupabaseClient) => any\n) {\n onSupabaseInitializedAction = afterInitialize;\n}\n\nexport function setDefaultOptions(\n options: SupabaseClientOptions<string & keyof Database>\n) {\n defaultOptions = options;\n}\n\nexport let typedSupabase: SupabaseClient<Database> = null!;\n\nconst context = createContext({\n supabaseClient: typedSupabase as SupabaseClient<Database> | null,\n});\n\nexport default function useSupabase() {\n const supabaseContext = useContext(context);\n if (isUsable(supabaseContext?.supabaseClient) === false) {\n throw new Error(\"Hook not inside a supabase context provider.\");\n }\n\n return supabaseContext.supabaseClient!;\n}\n\nexport function SupabaseProvider({\n children,\n options,\n afterInitialize,\n supabaseClient: supabaseClientProp,\n}: {\n children: ReactNode;\n options?: SupabaseClientOptions<string & keyof Database>;\n afterInitialize?: (supabase: SupabaseClient<Database>) => any;\n supabaseClient?: SupabaseClient<Database>;\n}) {\n const [supabaseClient, setSupabaseClient] = useState(\n () =>\n supabaseClientProp ??\n (createNewSupabaseClient({\n ...defaultOptions,\n ...(options ? options : {}),\n }) as unknown as SupabaseClient<Database>)\n );\n\n const [wasHidden, setWasHidden] = useState<boolean>(false);\n const [connected, setConnected] = useState<boolean>(true);\n\n useEffect(() => {\n afterInitialize && afterInitialize(supabaseClient);\n }, [supabaseClient]);\n\n useEffect(() => {\n const checkVisibility = async () => {\n if (typeof window.document === \"undefined\") return;\n if (document?.hidden) {\n await delay(60 * 1000).then((x) => {\n if (document.hidden) {\n setWasHidden(true);\n }\n });\n } else if (wasHidden) {\n setWasHidden(false);\n try {\n setConnected(true);\n } catch (error) {\n console.error(\"Reconnection failed:\", error);\n setConnected(false);\n }\n }\n };\n\n const intervalId = setInterval(checkVisibility, 1000);\n\n return () => {\n clearInterval(intervalId);\n };\n }, [wasHidden]);\n\n return (\n <context.Provider\n value={useMemo(() => ({ supabaseClient }), [supabaseClient])}\n >\n {children}\n </context.Provider>\n );\n}\n","/**\n * Generate a UUID that works across all environments\n * (Browser, React Native, Node.js)\n */\nexport function generateUUID(): string {\n // Try Web Crypto API first (browsers, modern Node.js)\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n\n // Fallback for React Native and older environments\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n"],"mappings":"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","names":[]}
|