Spaces:
Sleeping
Sleeping
FauziIsyrinApridal commited on
Commit ·
d81bdc0
1
Parent(s): 65eda56
update download all to zip
Browse files- app/api/download-all/route.ts +47 -0
- components/FileTable.tsx +20 -3
- package-lock.json +155 -51
- package.json +2 -0
app/api/download-all/route.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { NextApiRequest, NextApiResponse } from "next";
|
| 2 |
+
import JSZip from "jszip";
|
| 3 |
+
import { createClient } from "@supabase/supabase-js";
|
| 4 |
+
|
| 5 |
+
const supabase = createClient(
|
| 6 |
+
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
| 7 |
+
process.env.NEXT_PUBLIC_SUPABASE_SERVICE_KEY!,
|
| 8 |
+
);
|
| 9 |
+
|
| 10 |
+
export default async function handler(
|
| 11 |
+
req: NextApiRequest,
|
| 12 |
+
res: NextApiResponse,
|
| 13 |
+
) {
|
| 14 |
+
try {
|
| 15 |
+
const { data: list, error: listError } = await supabase.storage
|
| 16 |
+
.from("pnp-bot-storage")
|
| 17 |
+
.list("", { limit: 100 }); // ganti folder jika perlu
|
| 18 |
+
|
| 19 |
+
if (listError || !list) {
|
| 20 |
+
return res
|
| 21 |
+
.status(500)
|
| 22 |
+
.json({ error: listError?.message || "Gagal mengambil daftar file." });
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
const zip = new JSZip();
|
| 26 |
+
|
| 27 |
+
for (const file of list) {
|
| 28 |
+
const { data, error } = await supabase.storage
|
| 29 |
+
.from("pnp-bot-storage")
|
| 30 |
+
.download(file.name);
|
| 31 |
+
|
| 32 |
+
if (!error && data) {
|
| 33 |
+
const buffer = await data.arrayBuffer();
|
| 34 |
+
zip.file(file.name, buffer);
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
const zipBuffer = await zip.generateAsync({ type: "nodebuffer" });
|
| 39 |
+
|
| 40 |
+
res.setHeader("Content-Disposition", "attachment; filename=all-files.zip");
|
| 41 |
+
res.setHeader("Content-Type", "application/zip");
|
| 42 |
+
res.send(zipBuffer);
|
| 43 |
+
} catch (err) {
|
| 44 |
+
console.error("Zip Error:", err);
|
| 45 |
+
res.status(500).json({ error: "Terjadi kesalahan saat membuat ZIP." });
|
| 46 |
+
}
|
| 47 |
+
}
|
components/FileTable.tsx
CHANGED
|
@@ -43,10 +43,27 @@ export default function FileTable({ fetchData, ragData }: FileTableProps) {
|
|
| 43 |
}, [ragData]);
|
| 44 |
|
| 45 |
const downloadAllFiles = async () => {
|
| 46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
|
| 48 |
-
|
| 49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
}
|
| 51 |
};
|
| 52 |
|
|
|
|
| 43 |
}, [ragData]);
|
| 44 |
|
| 45 |
const downloadAllFiles = async () => {
|
| 46 |
+
try {
|
| 47 |
+
const res = await fetch("/api/download-all");
|
| 48 |
+
if (!res.ok) {
|
| 49 |
+
throw new Error("Gagal mengunduh file ZIP");
|
| 50 |
+
}
|
| 51 |
|
| 52 |
+
const blob = await res.blob();
|
| 53 |
+
const url = URL.createObjectURL(blob);
|
| 54 |
+
const link = document.createElement("a");
|
| 55 |
+
link.href = url;
|
| 56 |
+
link.download = "all-files.zip";
|
| 57 |
+
document.body.appendChild(link);
|
| 58 |
+
link.click();
|
| 59 |
+
document.body.removeChild(link);
|
| 60 |
+
URL.revokeObjectURL(url);
|
| 61 |
+
} catch (error) {
|
| 62 |
+
toast({
|
| 63 |
+
title: "Gagal",
|
| 64 |
+
description: "Tidak dapat mengunduh semua file.",
|
| 65 |
+
variant: "destructive",
|
| 66 |
+
});
|
| 67 |
}
|
| 68 |
};
|
| 69 |
|
package-lock.json
CHANGED
|
@@ -17,9 +17,11 @@
|
|
| 17 |
"@radix-ui/react-slot": "^1.0.2",
|
| 18 |
"@radix-ui/react-toast": "^1.2.7",
|
| 19 |
"@supabase/ssr": "^0.3.0",
|
|
|
|
| 20 |
"class-variance-authority": "^0.7.0",
|
| 21 |
"clsx": "^2.1.1",
|
| 22 |
"jose": "^5.4.0",
|
|
|
|
| 23 |
"lucide-react": "^0.383.0",
|
| 24 |
"next": "14.2.3",
|
| 25 |
"react": "^18",
|
|
@@ -2675,19 +2677,19 @@
|
|
| 2675 |
"dev": true
|
| 2676 |
},
|
| 2677 |
"node_modules/@supabase/auth-js": {
|
| 2678 |
-
"version": "2.
|
| 2679 |
-
"resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.
|
| 2680 |
-
"integrity": "sha512-
|
| 2681 |
-
"
|
| 2682 |
"dependencies": {
|
| 2683 |
"@supabase/node-fetch": "^2.6.14"
|
| 2684 |
}
|
| 2685 |
},
|
| 2686 |
"node_modules/@supabase/functions-js": {
|
| 2687 |
-
"version": "2.
|
| 2688 |
-
"resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.
|
| 2689 |
-
"integrity": "sha512-
|
| 2690 |
-
"
|
| 2691 |
"dependencies": {
|
| 2692 |
"@supabase/node-fetch": "^2.6.14"
|
| 2693 |
}
|
|
@@ -2696,7 +2698,7 @@
|
|
| 2696 |
"version": "2.6.15",
|
| 2697 |
"resolved": "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz",
|
| 2698 |
"integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==",
|
| 2699 |
-
"
|
| 2700 |
"dependencies": {
|
| 2701 |
"whatwg-url": "^5.0.0"
|
| 2702 |
},
|
|
@@ -2705,24 +2707,25 @@
|
|
| 2705 |
}
|
| 2706 |
},
|
| 2707 |
"node_modules/@supabase/postgrest-js": {
|
| 2708 |
-
"version": "1.
|
| 2709 |
-
"resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.
|
| 2710 |
-
"integrity": "sha512-
|
| 2711 |
-
"
|
| 2712 |
"dependencies": {
|
| 2713 |
"@supabase/node-fetch": "^2.6.14"
|
| 2714 |
}
|
| 2715 |
},
|
| 2716 |
"node_modules/@supabase/realtime-js": {
|
| 2717 |
-
"version": "2.
|
| 2718 |
-
"resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.
|
| 2719 |
-
"integrity": "sha512-
|
| 2720 |
-
"
|
| 2721 |
"dependencies": {
|
| 2722 |
-
"@supabase/node-fetch": "^2.6.
|
| 2723 |
-
"@types/phoenix": "^1.
|
| 2724 |
-
"@types/ws": "^8.
|
| 2725 |
-
"
|
|
|
|
| 2726 |
}
|
| 2727 |
},
|
| 2728 |
"node_modules/@supabase/ssr": {
|
|
@@ -2738,26 +2741,26 @@
|
|
| 2738 |
}
|
| 2739 |
},
|
| 2740 |
"node_modules/@supabase/storage-js": {
|
| 2741 |
-
"version": "2.
|
| 2742 |
-
"resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.
|
| 2743 |
-
"integrity": "sha512-
|
| 2744 |
-
"
|
| 2745 |
"dependencies": {
|
| 2746 |
"@supabase/node-fetch": "^2.6.14"
|
| 2747 |
}
|
| 2748 |
},
|
| 2749 |
"node_modules/@supabase/supabase-js": {
|
| 2750 |
-
"version": "2.
|
| 2751 |
-
"resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.
|
| 2752 |
-
"integrity": "sha512-/
|
| 2753 |
-
"
|
| 2754 |
"dependencies": {
|
| 2755 |
-
"@supabase/auth-js": "2.
|
| 2756 |
-
"@supabase/functions-js": "2.
|
| 2757 |
"@supabase/node-fetch": "2.6.15",
|
| 2758 |
-
"@supabase/postgrest-js": "1.
|
| 2759 |
-
"@supabase/realtime-js": "2.
|
| 2760 |
-
"@supabase/storage-js": "2.
|
| 2761 |
}
|
| 2762 |
},
|
| 2763 |
"node_modules/@swc/counter": {
|
|
@@ -2789,10 +2792,10 @@
|
|
| 2789 |
}
|
| 2790 |
},
|
| 2791 |
"node_modules/@types/phoenix": {
|
| 2792 |
-
"version": "1.6.
|
| 2793 |
-
"resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.
|
| 2794 |
-
"integrity": "sha512-
|
| 2795 |
-
"
|
| 2796 |
},
|
| 2797 |
"node_modules/@types/prop-types": {
|
| 2798 |
"version": "15.7.12",
|
|
@@ -2820,10 +2823,10 @@
|
|
| 2820 |
}
|
| 2821 |
},
|
| 2822 |
"node_modules/@types/ws": {
|
| 2823 |
-
"version": "8.
|
| 2824 |
-
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.
|
| 2825 |
-
"integrity": "sha512-
|
| 2826 |
-
"
|
| 2827 |
"dependencies": {
|
| 2828 |
"@types/node": "*"
|
| 2829 |
}
|
|
@@ -3566,6 +3569,12 @@
|
|
| 3566 |
"node": ">= 0.6"
|
| 3567 |
}
|
| 3568 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3569 |
"node_modules/cross-spawn": {
|
| 3570 |
"version": "7.0.6",
|
| 3571 |
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
|
@@ -4892,6 +4901,12 @@
|
|
| 4892 |
"node": ">= 4"
|
| 4893 |
}
|
| 4894 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4895 |
"node_modules/import-fresh": {
|
| 4896 |
"version": "3.3.0",
|
| 4897 |
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
|
|
@@ -4931,8 +4946,7 @@
|
|
| 4931 |
"node_modules/inherits": {
|
| 4932 |
"version": "2.0.4",
|
| 4933 |
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
| 4934 |
-
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
| 4935 |
-
"dev": true
|
| 4936 |
},
|
| 4937 |
"node_modules/internal-slot": {
|
| 4938 |
"version": "1.0.7",
|
|
@@ -5326,6 +5340,21 @@
|
|
| 5326 |
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
| 5327 |
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
|
| 5328 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5329 |
"node_modules/iterator.prototype": {
|
| 5330 |
"version": "1.1.2",
|
| 5331 |
"resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
|
|
@@ -5434,6 +5463,18 @@
|
|
| 5434 |
"node": ">=4.0"
|
| 5435 |
}
|
| 5436 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5437 |
"node_modules/keyv": {
|
| 5438 |
"version": "4.5.4",
|
| 5439 |
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
|
|
@@ -5474,6 +5515,15 @@
|
|
| 5474 |
"node": ">= 0.8.0"
|
| 5475 |
}
|
| 5476 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5477 |
"node_modules/lilconfig": {
|
| 5478 |
"version": "2.1.0",
|
| 5479 |
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
|
@@ -5988,6 +6038,12 @@
|
|
| 5988 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 5989 |
}
|
| 5990 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5991 |
"node_modules/parent-module": {
|
| 5992 |
"version": "1.0.1",
|
| 5993 |
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
|
|
@@ -6336,6 +6392,12 @@
|
|
| 6336 |
}
|
| 6337 |
}
|
| 6338 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6339 |
"node_modules/prop-types": {
|
| 6340 |
"version": "15.8.1",
|
| 6341 |
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
|
@@ -6513,6 +6575,27 @@
|
|
| 6513 |
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
|
| 6514 |
}
|
| 6515 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6516 |
"node_modules/readdirp": {
|
| 6517 |
"version": "3.6.0",
|
| 6518 |
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
|
@@ -6688,6 +6771,12 @@
|
|
| 6688 |
"url": "https://github.com/sponsors/ljharb"
|
| 6689 |
}
|
| 6690 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6691 |
"node_modules/safe-regex-test": {
|
| 6692 |
"version": "1.0.3",
|
| 6693 |
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
|
|
@@ -6757,6 +6846,12 @@
|
|
| 6757 |
"node": ">= 0.4"
|
| 6758 |
}
|
| 6759 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6760 |
"node_modules/sharp": {
|
| 6761 |
"version": "0.34.1",
|
| 6762 |
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz",
|
|
@@ -6879,6 +6974,15 @@
|
|
| 6879 |
"node": ">=10.0.0"
|
| 6880 |
}
|
| 6881 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6882 |
"node_modules/string-width": {
|
| 6883 |
"version": "5.1.2",
|
| 6884 |
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
|
@@ -7265,7 +7369,7 @@
|
|
| 7265 |
"version": "0.0.3",
|
| 7266 |
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
| 7267 |
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
|
| 7268 |
-
"
|
| 7269 |
},
|
| 7270 |
"node_modules/ts-api-utils": {
|
| 7271 |
"version": "1.3.0",
|
|
@@ -7501,13 +7605,13 @@
|
|
| 7501 |
"version": "3.0.1",
|
| 7502 |
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
| 7503 |
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
|
| 7504 |
-
"
|
| 7505 |
},
|
| 7506 |
"node_modules/whatwg-url": {
|
| 7507 |
"version": "5.0.0",
|
| 7508 |
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
| 7509 |
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
| 7510 |
-
"
|
| 7511 |
"dependencies": {
|
| 7512 |
"tr46": "~0.0.3",
|
| 7513 |
"webidl-conversions": "^3.0.0"
|
|
@@ -7722,10 +7826,10 @@
|
|
| 7722 |
}
|
| 7723 |
},
|
| 7724 |
"node_modules/ws": {
|
| 7725 |
-
"version": "8.
|
| 7726 |
-
"resolved": "https://registry.npmjs.org/ws/-/ws-8.
|
| 7727 |
-
"integrity": "sha512-
|
| 7728 |
-
"
|
| 7729 |
"engines": {
|
| 7730 |
"node": ">=10.0.0"
|
| 7731 |
},
|
|
|
|
| 17 |
"@radix-ui/react-slot": "^1.0.2",
|
| 18 |
"@radix-ui/react-toast": "^1.2.7",
|
| 19 |
"@supabase/ssr": "^0.3.0",
|
| 20 |
+
"@supabase/supabase-js": "^2.50.3",
|
| 21 |
"class-variance-authority": "^0.7.0",
|
| 22 |
"clsx": "^2.1.1",
|
| 23 |
"jose": "^5.4.0",
|
| 24 |
+
"jszip": "^3.10.1",
|
| 25 |
"lucide-react": "^0.383.0",
|
| 26 |
"next": "14.2.3",
|
| 27 |
"react": "^18",
|
|
|
|
| 2677 |
"dev": true
|
| 2678 |
},
|
| 2679 |
"node_modules/@supabase/auth-js": {
|
| 2680 |
+
"version": "2.70.0",
|
| 2681 |
+
"resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.70.0.tgz",
|
| 2682 |
+
"integrity": "sha512-BaAK/tOAZFJtzF1sE3gJ2FwTjLf4ky3PSvcvLGEgEmO4BSBkwWKu8l67rLLIBZPDnCyV7Owk2uPyKHa0kj5QGg==",
|
| 2683 |
+
"license": "MIT",
|
| 2684 |
"dependencies": {
|
| 2685 |
"@supabase/node-fetch": "^2.6.14"
|
| 2686 |
}
|
| 2687 |
},
|
| 2688 |
"node_modules/@supabase/functions-js": {
|
| 2689 |
+
"version": "2.4.5",
|
| 2690 |
+
"resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.5.tgz",
|
| 2691 |
+
"integrity": "sha512-v5GSqb9zbosquTo6gBwIiq7W9eQ7rE5QazsK/ezNiQXdCbY+bH8D9qEaBIkhVvX4ZRW5rP03gEfw5yw9tiq4EQ==",
|
| 2692 |
+
"license": "MIT",
|
| 2693 |
"dependencies": {
|
| 2694 |
"@supabase/node-fetch": "^2.6.14"
|
| 2695 |
}
|
|
|
|
| 2698 |
"version": "2.6.15",
|
| 2699 |
"resolved": "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz",
|
| 2700 |
"integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==",
|
| 2701 |
+
"license": "MIT",
|
| 2702 |
"dependencies": {
|
| 2703 |
"whatwg-url": "^5.0.0"
|
| 2704 |
},
|
|
|
|
| 2707 |
}
|
| 2708 |
},
|
| 2709 |
"node_modules/@supabase/postgrest-js": {
|
| 2710 |
+
"version": "1.19.4",
|
| 2711 |
+
"resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.19.4.tgz",
|
| 2712 |
+
"integrity": "sha512-O4soKqKtZIW3olqmbXXbKugUtByD2jPa8kL2m2c1oozAO11uCcGrRhkZL0kVxjBLrXHE0mdSkFsMj7jDSfyNpw==",
|
| 2713 |
+
"license": "MIT",
|
| 2714 |
"dependencies": {
|
| 2715 |
"@supabase/node-fetch": "^2.6.14"
|
| 2716 |
}
|
| 2717 |
},
|
| 2718 |
"node_modules/@supabase/realtime-js": {
|
| 2719 |
+
"version": "2.11.15",
|
| 2720 |
+
"resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.11.15.tgz",
|
| 2721 |
+
"integrity": "sha512-HQKRnwAqdVqJW/P9TjKVK+/ETpW4yQ8tyDPPtRMKOH4Uh3vQD74vmj353CYs8+YwVBKubeUOOEpI9CT8mT4obw==",
|
| 2722 |
+
"license": "MIT",
|
| 2723 |
"dependencies": {
|
| 2724 |
+
"@supabase/node-fetch": "^2.6.13",
|
| 2725 |
+
"@types/phoenix": "^1.6.6",
|
| 2726 |
+
"@types/ws": "^8.18.1",
|
| 2727 |
+
"isows": "^1.0.7",
|
| 2728 |
+
"ws": "^8.18.2"
|
| 2729 |
}
|
| 2730 |
},
|
| 2731 |
"node_modules/@supabase/ssr": {
|
|
|
|
| 2741 |
}
|
| 2742 |
},
|
| 2743 |
"node_modules/@supabase/storage-js": {
|
| 2744 |
+
"version": "2.7.1",
|
| 2745 |
+
"resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.7.1.tgz",
|
| 2746 |
+
"integrity": "sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==",
|
| 2747 |
+
"license": "MIT",
|
| 2748 |
"dependencies": {
|
| 2749 |
"@supabase/node-fetch": "^2.6.14"
|
| 2750 |
}
|
| 2751 |
},
|
| 2752 |
"node_modules/@supabase/supabase-js": {
|
| 2753 |
+
"version": "2.50.3",
|
| 2754 |
+
"resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.50.3.tgz",
|
| 2755 |
+
"integrity": "sha512-Ld42AbfSXKnbCE2ObRvrGC5wj9OrfTOzswQZg0OcGQGx+QqcWYN/IqsLqrt4gCFrD57URbNRfGESSWzchzKAuQ==",
|
| 2756 |
+
"license": "MIT",
|
| 2757 |
"dependencies": {
|
| 2758 |
+
"@supabase/auth-js": "2.70.0",
|
| 2759 |
+
"@supabase/functions-js": "2.4.5",
|
| 2760 |
"@supabase/node-fetch": "2.6.15",
|
| 2761 |
+
"@supabase/postgrest-js": "1.19.4",
|
| 2762 |
+
"@supabase/realtime-js": "2.11.15",
|
| 2763 |
+
"@supabase/storage-js": "2.7.1"
|
| 2764 |
}
|
| 2765 |
},
|
| 2766 |
"node_modules/@swc/counter": {
|
|
|
|
| 2792 |
}
|
| 2793 |
},
|
| 2794 |
"node_modules/@types/phoenix": {
|
| 2795 |
+
"version": "1.6.6",
|
| 2796 |
+
"resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.6.tgz",
|
| 2797 |
+
"integrity": "sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==",
|
| 2798 |
+
"license": "MIT"
|
| 2799 |
},
|
| 2800 |
"node_modules/@types/prop-types": {
|
| 2801 |
"version": "15.7.12",
|
|
|
|
| 2823 |
}
|
| 2824 |
},
|
| 2825 |
"node_modules/@types/ws": {
|
| 2826 |
+
"version": "8.18.1",
|
| 2827 |
+
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
|
| 2828 |
+
"integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
|
| 2829 |
+
"license": "MIT",
|
| 2830 |
"dependencies": {
|
| 2831 |
"@types/node": "*"
|
| 2832 |
}
|
|
|
|
| 3569 |
"node": ">= 0.6"
|
| 3570 |
}
|
| 3571 |
},
|
| 3572 |
+
"node_modules/core-util-is": {
|
| 3573 |
+
"version": "1.0.3",
|
| 3574 |
+
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
|
| 3575 |
+
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
|
| 3576 |
+
"license": "MIT"
|
| 3577 |
+
},
|
| 3578 |
"node_modules/cross-spawn": {
|
| 3579 |
"version": "7.0.6",
|
| 3580 |
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
|
|
|
| 4901 |
"node": ">= 4"
|
| 4902 |
}
|
| 4903 |
},
|
| 4904 |
+
"node_modules/immediate": {
|
| 4905 |
+
"version": "3.0.6",
|
| 4906 |
+
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
| 4907 |
+
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
|
| 4908 |
+
"license": "MIT"
|
| 4909 |
+
},
|
| 4910 |
"node_modules/import-fresh": {
|
| 4911 |
"version": "3.3.0",
|
| 4912 |
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
|
|
|
|
| 4946 |
"node_modules/inherits": {
|
| 4947 |
"version": "2.0.4",
|
| 4948 |
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
| 4949 |
+
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
|
|
|
| 4950 |
},
|
| 4951 |
"node_modules/internal-slot": {
|
| 4952 |
"version": "1.0.7",
|
|
|
|
| 5340 |
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
| 5341 |
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
|
| 5342 |
},
|
| 5343 |
+
"node_modules/isows": {
|
| 5344 |
+
"version": "1.0.7",
|
| 5345 |
+
"resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz",
|
| 5346 |
+
"integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==",
|
| 5347 |
+
"funding": [
|
| 5348 |
+
{
|
| 5349 |
+
"type": "github",
|
| 5350 |
+
"url": "https://github.com/sponsors/wevm"
|
| 5351 |
+
}
|
| 5352 |
+
],
|
| 5353 |
+
"license": "MIT",
|
| 5354 |
+
"peerDependencies": {
|
| 5355 |
+
"ws": "*"
|
| 5356 |
+
}
|
| 5357 |
+
},
|
| 5358 |
"node_modules/iterator.prototype": {
|
| 5359 |
"version": "1.1.2",
|
| 5360 |
"resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz",
|
|
|
|
| 5463 |
"node": ">=4.0"
|
| 5464 |
}
|
| 5465 |
},
|
| 5466 |
+
"node_modules/jszip": {
|
| 5467 |
+
"version": "3.10.1",
|
| 5468 |
+
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
|
| 5469 |
+
"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
|
| 5470 |
+
"license": "(MIT OR GPL-3.0-or-later)",
|
| 5471 |
+
"dependencies": {
|
| 5472 |
+
"lie": "~3.3.0",
|
| 5473 |
+
"pako": "~1.0.2",
|
| 5474 |
+
"readable-stream": "~2.3.6",
|
| 5475 |
+
"setimmediate": "^1.0.5"
|
| 5476 |
+
}
|
| 5477 |
+
},
|
| 5478 |
"node_modules/keyv": {
|
| 5479 |
"version": "4.5.4",
|
| 5480 |
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
|
|
|
|
| 5515 |
"node": ">= 0.8.0"
|
| 5516 |
}
|
| 5517 |
},
|
| 5518 |
+
"node_modules/lie": {
|
| 5519 |
+
"version": "3.3.0",
|
| 5520 |
+
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
|
| 5521 |
+
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
|
| 5522 |
+
"license": "MIT",
|
| 5523 |
+
"dependencies": {
|
| 5524 |
+
"immediate": "~3.0.5"
|
| 5525 |
+
}
|
| 5526 |
+
},
|
| 5527 |
"node_modules/lilconfig": {
|
| 5528 |
"version": "2.1.0",
|
| 5529 |
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
|
|
|
| 6038 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 6039 |
}
|
| 6040 |
},
|
| 6041 |
+
"node_modules/pako": {
|
| 6042 |
+
"version": "1.0.11",
|
| 6043 |
+
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
| 6044 |
+
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
|
| 6045 |
+
"license": "(MIT AND Zlib)"
|
| 6046 |
+
},
|
| 6047 |
"node_modules/parent-module": {
|
| 6048 |
"version": "1.0.1",
|
| 6049 |
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
|
|
|
|
| 6392 |
}
|
| 6393 |
}
|
| 6394 |
},
|
| 6395 |
+
"node_modules/process-nextick-args": {
|
| 6396 |
+
"version": "2.0.1",
|
| 6397 |
+
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
| 6398 |
+
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
|
| 6399 |
+
"license": "MIT"
|
| 6400 |
+
},
|
| 6401 |
"node_modules/prop-types": {
|
| 6402 |
"version": "15.8.1",
|
| 6403 |
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
|
|
|
|
| 6575 |
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
|
| 6576 |
}
|
| 6577 |
},
|
| 6578 |
+
"node_modules/readable-stream": {
|
| 6579 |
+
"version": "2.3.8",
|
| 6580 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
|
| 6581 |
+
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
| 6582 |
+
"license": "MIT",
|
| 6583 |
+
"dependencies": {
|
| 6584 |
+
"core-util-is": "~1.0.0",
|
| 6585 |
+
"inherits": "~2.0.3",
|
| 6586 |
+
"isarray": "~1.0.0",
|
| 6587 |
+
"process-nextick-args": "~2.0.0",
|
| 6588 |
+
"safe-buffer": "~5.1.1",
|
| 6589 |
+
"string_decoder": "~1.1.1",
|
| 6590 |
+
"util-deprecate": "~1.0.1"
|
| 6591 |
+
}
|
| 6592 |
+
},
|
| 6593 |
+
"node_modules/readable-stream/node_modules/isarray": {
|
| 6594 |
+
"version": "1.0.0",
|
| 6595 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
| 6596 |
+
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
|
| 6597 |
+
"license": "MIT"
|
| 6598 |
+
},
|
| 6599 |
"node_modules/readdirp": {
|
| 6600 |
"version": "3.6.0",
|
| 6601 |
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
|
|
|
| 6771 |
"url": "https://github.com/sponsors/ljharb"
|
| 6772 |
}
|
| 6773 |
},
|
| 6774 |
+
"node_modules/safe-buffer": {
|
| 6775 |
+
"version": "5.1.2",
|
| 6776 |
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
| 6777 |
+
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
| 6778 |
+
"license": "MIT"
|
| 6779 |
+
},
|
| 6780 |
"node_modules/safe-regex-test": {
|
| 6781 |
"version": "1.0.3",
|
| 6782 |
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
|
|
|
|
| 6846 |
"node": ">= 0.4"
|
| 6847 |
}
|
| 6848 |
},
|
| 6849 |
+
"node_modules/setimmediate": {
|
| 6850 |
+
"version": "1.0.5",
|
| 6851 |
+
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
| 6852 |
+
"integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
|
| 6853 |
+
"license": "MIT"
|
| 6854 |
+
},
|
| 6855 |
"node_modules/sharp": {
|
| 6856 |
"version": "0.34.1",
|
| 6857 |
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz",
|
|
|
|
| 6974 |
"node": ">=10.0.0"
|
| 6975 |
}
|
| 6976 |
},
|
| 6977 |
+
"node_modules/string_decoder": {
|
| 6978 |
+
"version": "1.1.1",
|
| 6979 |
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
| 6980 |
+
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
| 6981 |
+
"license": "MIT",
|
| 6982 |
+
"dependencies": {
|
| 6983 |
+
"safe-buffer": "~5.1.0"
|
| 6984 |
+
}
|
| 6985 |
+
},
|
| 6986 |
"node_modules/string-width": {
|
| 6987 |
"version": "5.1.2",
|
| 6988 |
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
|
|
|
| 7369 |
"version": "0.0.3",
|
| 7370 |
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
| 7371 |
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
|
| 7372 |
+
"license": "MIT"
|
| 7373 |
},
|
| 7374 |
"node_modules/ts-api-utils": {
|
| 7375 |
"version": "1.3.0",
|
|
|
|
| 7605 |
"version": "3.0.1",
|
| 7606 |
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
| 7607 |
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
|
| 7608 |
+
"license": "BSD-2-Clause"
|
| 7609 |
},
|
| 7610 |
"node_modules/whatwg-url": {
|
| 7611 |
"version": "5.0.0",
|
| 7612 |
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
| 7613 |
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
| 7614 |
+
"license": "MIT",
|
| 7615 |
"dependencies": {
|
| 7616 |
"tr46": "~0.0.3",
|
| 7617 |
"webidl-conversions": "^3.0.0"
|
|
|
|
| 7826 |
}
|
| 7827 |
},
|
| 7828 |
"node_modules/ws": {
|
| 7829 |
+
"version": "8.18.3",
|
| 7830 |
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
|
| 7831 |
+
"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
|
| 7832 |
+
"license": "MIT",
|
| 7833 |
"engines": {
|
| 7834 |
"node": ">=10.0.0"
|
| 7835 |
},
|
package.json
CHANGED
|
@@ -18,9 +18,11 @@
|
|
| 18 |
"@radix-ui/react-slot": "^1.0.2",
|
| 19 |
"@radix-ui/react-toast": "^1.2.7",
|
| 20 |
"@supabase/ssr": "^0.3.0",
|
|
|
|
| 21 |
"class-variance-authority": "^0.7.0",
|
| 22 |
"clsx": "^2.1.1",
|
| 23 |
"jose": "^5.4.0",
|
|
|
|
| 24 |
"lucide-react": "^0.383.0",
|
| 25 |
"next": "14.2.3",
|
| 26 |
"react": "^18",
|
|
|
|
| 18 |
"@radix-ui/react-slot": "^1.0.2",
|
| 19 |
"@radix-ui/react-toast": "^1.2.7",
|
| 20 |
"@supabase/ssr": "^0.3.0",
|
| 21 |
+
"@supabase/supabase-js": "^2.50.3",
|
| 22 |
"class-variance-authority": "^0.7.0",
|
| 23 |
"clsx": "^2.1.1",
|
| 24 |
"jose": "^5.4.0",
|
| 25 |
+
"jszip": "^3.10.1",
|
| 26 |
"lucide-react": "^0.383.0",
|
| 27 |
"next": "14.2.3",
|
| 28 |
"react": "^18",
|