@flowselections/logistiek-engine 1.0.181 → 1.0.185
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/db/schema/logistiek-engine.sql +1727 -0
- package/dist-lib/components/BeheerPage.d.ts.map +1 -1
- package/dist-lib/components/BeheerPage.js +3 -1
- package/dist-lib/components/EtiketInstellenMelding.d.ts +10 -0
- package/dist-lib/components/EtiketInstellenMelding.d.ts.map +1 -0
- package/dist-lib/components/EtiketInstellenMelding.js +37 -0
- package/dist-lib/components/VervoerderBewakingCard.d.ts +15 -0
- package/dist-lib/components/VervoerderBewakingCard.d.ts.map +1 -0
- package/dist-lib/components/VervoerderBewakingCard.js +56 -0
- package/dist-lib/index.d.ts +2 -0
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +2 -0
- package/dist-lib/integrations/supabase/client.d.ts +4 -0
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -0
- package/dist-lib/integrations/supabase/client.js +55 -0
- package/dist-lib/integrations/supabase/types.d.ts +1100 -28
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
- package/dist-lib/lib/modulePrompts.js +217 -0
- package/dist-lib/lib/moduleVersion.d.ts +1 -1
- package/dist-lib/lib/moduleVersion.js +1 -1
- package/dist-lib/lib/stickerQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/stickerQueue.server.js +63 -3
- package/dist-lib/lib/stickerRules.d.ts +32 -0
- package/dist-lib/lib/stickerRules.d.ts.map +1 -1
- package/dist-lib/lib/stickerRules.js +60 -9
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeheerPage.d.ts","sourceRoot":"","sources":["../../src/components/BeheerPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BeheerPage.d.ts","sourceRoot":"","sources":["../../src/components/BeheerPage.tsx"],"names":[],"mappings":"AA6JA,wBAAgB,UAAU,gCAkBzB"}
|
|
@@ -16,6 +16,8 @@ import { AutomatischVersturenCard } from "./AutomatischVersturenCard.js";
|
|
|
16
16
|
import { OpruimlijstKarrenCard } from "./OpruimlijstKarrenCard.js";
|
|
17
17
|
import { HerindelingMeldingCard } from "./HerindelingMeldingCard.js";
|
|
18
18
|
import { GeblokkeerdeStickersCard } from "./GeblokkeerdeStickersCard.js";
|
|
19
|
+
import { EtiketInstellenMelding } from "./EtiketInstellenMelding.js";
|
|
20
|
+
import { VervoerderBewakingCard } from "./VervoerderBewakingCard.js";
|
|
19
21
|
import { BeladingVerstuurderCard } from "./BeladingVerstuurderCard.js";
|
|
20
22
|
import { DocumentkeuzeCard } from "./DocumentkeuzeCard.js";
|
|
21
23
|
import { MinuutrondeStartMelding } from "./MinuutrondeStartMelding.js";
|
|
@@ -77,5 +79,5 @@ function HerindelenBeheer() {
|
|
|
77
79
|
: `${voor?.geprintOfGepickt ?? 0} order(s) die al geprint of gepickt zijn, blijven ongemoeid.` })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: "Annuleren" }), _jsxs(AlertDialogAction, { onClick: () => void voerUit(), disabled: (voor?.aantal ?? 0) === 0, children: ["Ja, ", voor?.aantal ?? 0, " order(s) opnieuw indelen"] })] })] }) })] }));
|
|
78
80
|
}
|
|
79
81
|
export function BeheerPage() {
|
|
80
|
-
return (_jsx(RolPoort, { rollen: ENGINE_TOEGANG.beheer, children: _jsxs("div", { className: "space-y-6 p-6", children: [_jsx(MinuutrondeStartMelding, {}), _jsx(HerindelenBeheer, {}), _jsx(HerindelingMeldingCard, {}), _jsx(GeblokkeerdeStickersCard, {}), _jsx(OudeOrderregelsCard, {}), _jsx(BeladingVerstuurderCard, {}), _jsx(DocumentkeuzeCard, {}), _jsx(AutomatischVersturenCard, {}), _jsx(OpruimlijstKarrenCard, {})] }) }));
|
|
82
|
+
return (_jsx(RolPoort, { rollen: ENGINE_TOEGANG.beheer, children: _jsxs("div", { className: "space-y-6 p-6", children: [_jsx(MinuutrondeStartMelding, {}), _jsx(HerindelenBeheer, {}), _jsx(HerindelingMeldingCard, {}), _jsx(VervoerderBewakingCard, {}), _jsx(EtiketInstellenMelding, {}), _jsx(GeblokkeerdeStickersCard, {}), _jsx(OudeOrderregelsCard, {}), _jsx(BeladingVerstuurderCard, {}), _jsx(DocumentkeuzeCard, {}), _jsx(AutomatischVersturenCard, {}), _jsx(OpruimlijstKarrenCard, {})] }) }));
|
|
81
83
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface Stand {
|
|
2
|
+
wachtend: number;
|
|
3
|
+
maatOnbekend: number;
|
|
4
|
+
zonderEtiket: number;
|
|
5
|
+
pad: string | null;
|
|
6
|
+
}
|
|
7
|
+
export declare function leesEtiketStand(data: unknown): Stand | null;
|
|
8
|
+
export declare function EtiketInstellenMelding(): import("react").JSX.Element | null;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=EtiketInstellenMelding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EtiketInstellenMelding.d.ts","sourceRoot":"","sources":["../../src/components/EtiketInstellenMelding.tsx"],"names":[],"mappings":"AAaA,UAAU,KAAK;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAM3D;AAED,wBAAgB,sBAAsB,uCAqDrC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// src/components/EtiketInstellenMelding.tsx — melding als het geladen etiket ontbreekt
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Alleen lezen via logistics_sticker_etiket_status(). Het pad naar de
|
|
6
|
+
// printerinstellingen komt uit app_settings (layouts_printer_settings_path);
|
|
7
|
+
// ontbreekt het, dan geen knop (fail closed, geen verzonnen pad).
|
|
8
|
+
// GEEN <Header /> hier — die levert de shell.
|
|
9
|
+
// ============================================================================
|
|
10
|
+
import { useEffect, useState } from "react";
|
|
11
|
+
import { Button, Card, CardContent, CardDescription, CardHeader, CardTitle } from "@flowselections/core";
|
|
12
|
+
import { Printer } from "lucide-react";
|
|
13
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
14
|
+
export function leesEtiketStand(data) {
|
|
15
|
+
if (!data || typeof data !== "object")
|
|
16
|
+
return null;
|
|
17
|
+
const d = data;
|
|
18
|
+
const n = (v) => (typeof v === "number" ? v : Number(v) || 0);
|
|
19
|
+
const pad = typeof d["printer_pad"] === "string" && d["printer_pad"].startsWith("/") ? d["printer_pad"] : null;
|
|
20
|
+
return { wachtend: n(d["wachtend"]), maatOnbekend: n(d["maat_onbekend"]), zonderEtiket: n(d["labelprinters_zonder_etiket"]), pad };
|
|
21
|
+
}
|
|
22
|
+
export function EtiketInstellenMelding() {
|
|
23
|
+
const [stand, setStand] = useState(null);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
let actief = true;
|
|
26
|
+
void supabase.rpc("logistics_sticker_etiket_status").then(({ data, error }) => {
|
|
27
|
+
if (actief && !error)
|
|
28
|
+
setStand(leesEtiketStand(data));
|
|
29
|
+
});
|
|
30
|
+
return () => {
|
|
31
|
+
actief = false;
|
|
32
|
+
};
|
|
33
|
+
}, []);
|
|
34
|
+
if (!stand || (stand.wachtend === 0 && stand.zonderEtiket === 0 && stand.maatOnbekend === 0))
|
|
35
|
+
return null;
|
|
36
|
+
return (_jsxs("div", { className: "space-y-3", children: [(stand.wachtend > 0 || stand.zonderEtiket > 0) && (_jsxs(Card, { className: "border-destructive", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2 text-destructive", children: [_jsx(Printer, { className: "h-4 w-4" }), "Stel bij je labelprinter in welk etiket erin zit"] }), _jsxs(CardDescription, { children: [stand.wachtend > 0 ? `${stand.wachtend} sticker(s) wachten hierop. ` : "", stand.zonderEtiket > 0 ? `${stand.zonderEtiket} labelprinter(s) hebben geen geladen etiket. ` : "", "Zodra het etiket is ingesteld, worden de stickers vanzelf geprint."] })] }), _jsx(CardContent, { children: stand.pad ? (_jsx(Button, { size: "sm", variant: "outline", onClick: () => window.location.assign(stand.pad), children: "Naar de printerinstellingen" })) : (_jsx("p", { className: "text-xs text-muted-foreground", children: "Open de printerinstellingen in de module Layouts en printers." })) })] })), stand.maatOnbekend > 0 && (_jsx(Card, { children: _jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Maat onbekend" }), _jsxs(CardDescription, { children: [stand.maatOnbekend, " sticker(s) wachten: Floriday gaf geen maat en de pdf bevat er geen."] })] }) }))] }));
|
|
37
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface VervoerderStand {
|
|
2
|
+
zonderVervoerder: number;
|
|
3
|
+
viaFavoriet: number;
|
|
4
|
+
nogNietBerekend: number;
|
|
5
|
+
bronOud: number;
|
|
6
|
+
bestaandeOrders: boolean;
|
|
7
|
+
lijstZonder: {
|
|
8
|
+
orderId: string;
|
|
9
|
+
orderNumber: string | null;
|
|
10
|
+
reden: string;
|
|
11
|
+
}[];
|
|
12
|
+
}
|
|
13
|
+
export declare function leesVervoerderStand(data: unknown): VervoerderStand | null;
|
|
14
|
+
export declare function VervoerderBewakingCard(): import("react").JSX.Element | null;
|
|
15
|
+
//# sourceMappingURL=VervoerderBewakingCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VervoerderBewakingCard.d.ts","sourceRoot":"","sources":["../../src/components/VervoerderBewakingCard.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAiBzE;AAED,wBAAgB,sBAAsB,uCA6DrC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// src/components/VervoerderBewakingCard.tsx — bewaking vervoerder per order
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Leest logistics_carrier_status(); schakelaar via logistics_carrier_set_backfill.
|
|
6
|
+
// GEEN <Header /> hier — die levert de shell.
|
|
7
|
+
// ============================================================================
|
|
8
|
+
import { useEffect, useState } from "react";
|
|
9
|
+
import { Button, Card, CardContent, CardDescription, CardHeader, CardTitle } from "@flowselections/core";
|
|
10
|
+
import { Truck } from "lucide-react";
|
|
11
|
+
import { toast } from "sonner";
|
|
12
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
13
|
+
export function leesVervoerderStand(data) {
|
|
14
|
+
if (!data || typeof data !== "object")
|
|
15
|
+
return null;
|
|
16
|
+
const d = data;
|
|
17
|
+
const n = (v) => (typeof v === "number" ? v : Number(v) || 0);
|
|
18
|
+
const lijst = Array.isArray(d["lijstZonder"]) ? d["lijstZonder"] : [];
|
|
19
|
+
return {
|
|
20
|
+
zonderVervoerder: n(d["zonderVervoerder"]),
|
|
21
|
+
viaFavoriet: n(d["viaFavoriet"]),
|
|
22
|
+
nogNietBerekend: n(d["nogNietBerekend"]),
|
|
23
|
+
bronOud: n(d["bronOud"]),
|
|
24
|
+
bestaandeOrders: d["bestaandeOrders"] === true,
|
|
25
|
+
lijstZonder: lijst.slice(0, 20).map((r) => ({
|
|
26
|
+
orderId: String(r?.orderId ?? ""),
|
|
27
|
+
orderNumber: r?.orderNumber ?? null,
|
|
28
|
+
reden: String(r?.reden ?? ""),
|
|
29
|
+
})),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function VervoerderBewakingCard() {
|
|
33
|
+
const [stand, setStand] = useState(null);
|
|
34
|
+
const [bezig, setBezig] = useState(false);
|
|
35
|
+
const laad = () => supabase.rpc("logistics_carrier_status").then(({ data, error }) => {
|
|
36
|
+
if (!error)
|
|
37
|
+
setStand(leesVervoerderStand(data));
|
|
38
|
+
});
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
void laad();
|
|
41
|
+
}, []);
|
|
42
|
+
if (!stand)
|
|
43
|
+
return null;
|
|
44
|
+
const zet = async (aan) => {
|
|
45
|
+
setBezig(true);
|
|
46
|
+
const { error } = await supabase.rpc("logistics_carrier_set_backfill", { p_on: aan });
|
|
47
|
+
setBezig(false);
|
|
48
|
+
if (error)
|
|
49
|
+
toast.error(error.message ?? "Schakelaar niet aangepast");
|
|
50
|
+
else {
|
|
51
|
+
toast.success(aan ? "Bestaande orders worden berekend" : "Bestaande orders worden niet meer berekend");
|
|
52
|
+
void laad();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
return (_jsxs(Card, { className: stand.zonderVervoerder > 0 ? "border-destructive" : undefined, children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: [_jsx(Truck, { className: "h-4 w-4" }), "Vervoerder per order"] }), _jsxs(CardDescription, { children: ["Open orders zonder vervoerder: ", _jsx("strong", { children: stand.zonderVervoerder }), " (hoort 0 te zijn) \u00B7 via de favoriet: ", _jsx("strong", { children: stand.viaFavoriet }), " (hier ontbreken werkgebieden of locaties) \u00B7 overgenomen (oud): ", _jsx("strong", { children: stand.bronOud })] })] }), _jsxs(CardContent, { className: "space-y-3", children: [stand.zonderVervoerder > 0 && (_jsx("ul", { className: "space-y-1 text-sm text-destructive", children: stand.lijstZonder.map((r) => (_jsxs("li", { children: [r.orderNumber ?? r.orderId, ": ", r.reden] }, r.orderId))) })), _jsxs("div", { className: "flex flex-wrap items-center gap-3 text-sm", children: [_jsxs("span", { children: ["Vervoerder berekenen voor bestaande orders: ", _jsx("strong", { children: stand.bestaandeOrders ? "aan" : "uit" }), !stand.bestaandeOrders && stand.nogNietBerekend > 0 ? ` (${stand.nogNietBerekend} wachten op akkoord)` : ""] }), _jsx(Button, { size: "sm", variant: "outline", disabled: bezig, onClick: () => void zet(!stand.bestaandeOrders), children: stand.bestaandeOrders ? "Uitzetten" : "Aanzetten" })] })] })] }));
|
|
56
|
+
}
|
package/dist-lib/index.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export { AfmetingenBronnenCard } from './components/AfmetingenBronnenCard.js';
|
|
|
19
19
|
export { WerkwijzeHerindelingCard } from './components/WerkwijzeHerindelingCard.js';
|
|
20
20
|
export { HerindelingMeldingCard } from './components/HerindelingMeldingCard.js';
|
|
21
21
|
export { GeblokkeerdeStickersCard } from './components/GeblokkeerdeStickersCard.js';
|
|
22
|
+
export { EtiketInstellenMelding } from './components/EtiketInstellenMelding.js';
|
|
23
|
+
export { VervoerderBewakingCard, leesVervoerderStand } from './components/VervoerderBewakingCard.js';
|
|
22
24
|
export { WerktijdenCard } from './components/WerktijdenCard.js';
|
|
23
25
|
export { useWerktijden } from './hooks/useWerktijden.js';
|
|
24
26
|
export { FloridayPoortCard } from './components/FloridayPoortCard.js';
|
package/dist-lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist-lib/index.js
CHANGED
|
@@ -22,6 +22,8 @@ export { AfmetingenBronnenCard } from './components/AfmetingenBronnenCard.js';
|
|
|
22
22
|
export { WerkwijzeHerindelingCard } from './components/WerkwijzeHerindelingCard.js';
|
|
23
23
|
export { HerindelingMeldingCard } from './components/HerindelingMeldingCard.js';
|
|
24
24
|
export { GeblokkeerdeStickersCard } from './components/GeblokkeerdeStickersCard.js';
|
|
25
|
+
export { EtiketInstellenMelding } from './components/EtiketInstellenMelding.js';
|
|
26
|
+
export { VervoerderBewakingCard, leesVervoerderStand } from './components/VervoerderBewakingCard.js';
|
|
25
27
|
export { WerktijdenCard } from './components/WerktijdenCard.js';
|
|
26
28
|
export { useWerktijden } from './hooks/useWerktijden.js';
|
|
27
29
|
export { FloridayPoortCard } from './components/FloridayPoortCard.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/integrations/supabase/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA4DxC,eAAO,MAAM,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAK5C,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// This file is automatically generated. Do not edit it directly.
|
|
2
|
+
import { createClient } from '@supabase/supabase-js';
|
|
3
|
+
import { brokeredPreviewStorage } from './previewAuthStorage.js';
|
|
4
|
+
function isNewSupabaseApiKey(value) {
|
|
5
|
+
return value.startsWith('sb_publishable_') || value.startsWith('sb_secret_');
|
|
6
|
+
}
|
|
7
|
+
function createSupabaseFetch(supabaseKey) {
|
|
8
|
+
return (input, init) => {
|
|
9
|
+
const headers = new Headers(typeof Request !== 'undefined' && input instanceof Request ? input.headers : undefined);
|
|
10
|
+
if (init?.headers) {
|
|
11
|
+
new Headers(init.headers).forEach((value, key) => headers.set(key, value));
|
|
12
|
+
}
|
|
13
|
+
// New Supabase API keys are opaque strings, not bearer JWTs.
|
|
14
|
+
if (isNewSupabaseApiKey(supabaseKey) && headers.get('Authorization') === `Bearer ${supabaseKey}`) {
|
|
15
|
+
headers.delete('Authorization');
|
|
16
|
+
}
|
|
17
|
+
headers.set('apikey', supabaseKey);
|
|
18
|
+
return fetch(input, { ...init, headers });
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function createSupabaseClient() {
|
|
22
|
+
// Use import.meta.env for client-side (Vite build-time replacement)
|
|
23
|
+
// Fall back to process.env for SSR (server-side rendering)
|
|
24
|
+
const SUPABASE_URL = import.meta.env['VITE_SUPABASE_URL'] || process.env['SUPABASE_URL'];
|
|
25
|
+
const SUPABASE_PUBLISHABLE_KEY = import.meta.env['VITE_SUPABASE_PUBLISHABLE_KEY'] || process.env['SUPABASE_PUBLISHABLE_KEY'];
|
|
26
|
+
if (!SUPABASE_URL || !SUPABASE_PUBLISHABLE_KEY) {
|
|
27
|
+
const missing = [
|
|
28
|
+
...(!SUPABASE_URL ? ['SUPABASE_URL'] : []),
|
|
29
|
+
...(!SUPABASE_PUBLISHABLE_KEY ? ['SUPABASE_PUBLISHABLE_KEY'] : []),
|
|
30
|
+
];
|
|
31
|
+
const message = `Missing Supabase environment variable(s): ${missing.join(', ')}. Connect Supabase in Lovable Cloud.`;
|
|
32
|
+
console.error(`[Supabase] ${message}`);
|
|
33
|
+
throw new Error(message);
|
|
34
|
+
}
|
|
35
|
+
return createClient(SUPABASE_URL, SUPABASE_PUBLISHABLE_KEY, {
|
|
36
|
+
global: {
|
|
37
|
+
fetch: createSupabaseFetch(SUPABASE_PUBLISHABLE_KEY),
|
|
38
|
+
},
|
|
39
|
+
auth: {
|
|
40
|
+
storage: brokeredPreviewStorage(),
|
|
41
|
+
persistSession: true,
|
|
42
|
+
autoRefreshToken: true,
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
let _supabase;
|
|
47
|
+
// Import the supabase client like this:
|
|
48
|
+
// import { supabase } from "./client.js";
|
|
49
|
+
export const supabase = new Proxy({}, {
|
|
50
|
+
get(_, prop, receiver) {
|
|
51
|
+
if (!_supabase)
|
|
52
|
+
_supabase = createSupabaseClient();
|
|
53
|
+
return Reflect.get(_supabase, prop, receiver);
|
|
54
|
+
},
|
|
55
|
+
});
|