@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.
Files changed (80) hide show
  1. package/dist/auth/context.js +21 -12786
  2. package/dist/auth/context.js.map +1 -1
  3. package/dist/auth/guards.js +12 -7640
  4. package/dist/auth/guards.js.map +1 -1
  5. package/dist/auth/hooks.js +25 -10591
  6. package/dist/auth/hooks.js.map +1 -1
  7. package/dist/auth/index.js +43 -13008
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/canvas-75Y7XMF3.js +1541 -0
  10. package/dist/canvas-75Y7XMF3.js.map +1 -0
  11. package/dist/chunk-2IFGILT3.js +532 -0
  12. package/dist/chunk-2IFGILT3.js.map +1 -0
  13. package/dist/chunk-3M2U6TXH.js +928 -0
  14. package/dist/chunk-3M2U6TXH.js.map +1 -0
  15. package/dist/chunk-3PJTNH2L.js +2778 -0
  16. package/dist/chunk-3PJTNH2L.js.map +1 -0
  17. package/dist/chunk-5ZYAEGCJ.js +416 -0
  18. package/dist/chunk-5ZYAEGCJ.js.map +1 -0
  19. package/dist/chunk-7HG6G25H.js +710 -0
  20. package/dist/chunk-7HG6G25H.js.map +1 -0
  21. package/dist/chunk-7XT7K4QT.js +2687 -0
  22. package/dist/chunk-7XT7K4QT.js.map +1 -0
  23. package/dist/chunk-AWFMICFV.js +158 -0
  24. package/dist/chunk-AWFMICFV.js.map +1 -0
  25. package/dist/chunk-BRTW7CO5.js +1467 -0
  26. package/dist/chunk-BRTW7CO5.js.map +1 -0
  27. package/dist/chunk-EL45Z26M.js +4194 -0
  28. package/dist/chunk-EL45Z26M.js.map +1 -0
  29. package/dist/chunk-ERGF2FCE.js +903 -0
  30. package/dist/chunk-ERGF2FCE.js.map +1 -0
  31. package/dist/chunk-GK7B66LY.js +135 -0
  32. package/dist/chunk-GK7B66LY.js.map +1 -0
  33. package/dist/chunk-GQI6WJGI.js +172 -0
  34. package/dist/chunk-GQI6WJGI.js.map +1 -0
  35. package/dist/chunk-H6365JPC.js +1858 -0
  36. package/dist/chunk-H6365JPC.js.map +1 -0
  37. package/dist/chunk-J4ZVCXZ4.js +1 -0
  38. package/dist/chunk-J4ZVCXZ4.js.map +1 -0
  39. package/dist/chunk-JUVE3DWY.js +433 -0
  40. package/dist/chunk-JUVE3DWY.js.map +1 -0
  41. package/dist/chunk-O3K7R32P.js +7555 -0
  42. package/dist/chunk-O3K7R32P.js.map +1 -0
  43. package/dist/chunk-P4UZ7IXC.js +42 -0
  44. package/dist/chunk-P4UZ7IXC.js.map +1 -0
  45. package/dist/chunk-SEY5UO2T.js +89 -0
  46. package/dist/chunk-SEY5UO2T.js.map +1 -0
  47. package/dist/chunk-USJYMRUO.js +86 -0
  48. package/dist/chunk-USJYMRUO.js.map +1 -0
  49. package/dist/chunk-XX3IWSPM.js +189 -0
  50. package/dist/chunk-XX3IWSPM.js.map +1 -0
  51. package/dist/chunk-Y3INY2CS.js +14 -0
  52. package/dist/chunk-Y3INY2CS.js.map +1 -0
  53. package/dist/chunk-ZTSBF536.js +1927 -0
  54. package/dist/chunk-ZTSBF536.js.map +1 -0
  55. package/dist/client/index.js +13 -141
  56. package/dist/client/index.js.map +1 -1
  57. package/dist/dist-NDNRSNOG.js +521 -0
  58. package/dist/dist-NDNRSNOG.js.map +1 -0
  59. package/dist/gen/index.js +186 -1280
  60. package/dist/gen/index.js.map +1 -1
  61. package/dist/hooks/index.js +21 -8694
  62. package/dist/hooks/index.js.map +1 -1
  63. package/dist/index.js +403 -47848
  64. package/dist/index.js.map +1 -1
  65. package/dist/index.native.js +400 -25048
  66. package/dist/index.native.js.map +1 -1
  67. package/dist/index.web.js +576 -43769
  68. package/dist/index.web.js.map +1 -1
  69. package/dist/mutation/index.js +44 -4675
  70. package/dist/mutation/index.js.map +1 -1
  71. package/dist/parser/index.js +45 -3697
  72. package/dist/parser/index.js.map +1 -1
  73. package/dist/pdf-3TIGQRLA.js +20336 -0
  74. package/dist/pdf-3TIGQRLA.js.map +1 -0
  75. package/dist/query/index.js +31 -13175
  76. package/dist/query/index.js.map +1 -1
  77. package/dist/realtime/index.js +45 -12431
  78. package/dist/realtime/index.js.map +1 -1
  79. package/dist/types/index.js +9 -0
  80. 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":[]}