1/** @jsxImportSource https://esm.sh/hono@4.0.8/jsx **/
2
3import { modifyFetchHandler } from "https://esm.town/v/andreterron/codeOnValTown?v=50";
4import view_route from "https://esm.town/v/pomdtr/blob_admin_blob";
5import create_route from "https://esm.town/v/pomdtr/blob_admin_create";
137});
138
139export default modifyFetchHandler(passwordAuth(app.fetch));
34 };
35
36 console.log('[getJinaContent] Fetching:', fullUrl.toString(), headers);
37
38 try {
39 const response = await fetch(fullUrl.toString(), {
40 method: 'GET',
41 headers: headers,
61 }
62 } catch (error) {
63 console.error('Error fetching from Jina:', error);
64 throw error;
65 }
94 };
95
96 console.log('[getFirecrawlContent] Fetching:', url, body);
97
98 try {
99 const response = await fetch("https://api.firecrawl.dev/v0/scrape", {
100 method: 'POST',
101 headers: {
115 return resultText;
116 } catch (error) {
117 console.error('Error fetching from Firecrawl:', error);
118 throw error;
119 }
129
130 let [response, metadata] = await Promise.all([
131 fetch(url),
132 getUrlMetadata(ogUrl)
133 ]);
182 return output
183 } catch (error) {
184 console.error('Error fetching the URL:', error);
185 return 'Error fetching the content: ', error.message || error || 'Unknown error.';
186 }
187};
263 };
264
265 const fetchMetadata = optsArray.includes('metadata') || optsArray.includes('doi') || optsArray.includes('citation');
266 let metadata;
267
268 if (fetchMetadata) {
269 metadata = await getUrlMetadata(ogUrl);
270 }
275 : await getJinaContent(serviceUrl, requestOptions);
276
277 if (fetchMetadata && !metadata) {
278 const html = crawlMode === 'fire'
279 ? await getFirecrawlContent(serviceUrl, { returnFormat: 'html' })
336 return output;
337 } catch (error) {
338 console.error('Error fetching the URL:', error);
339 throw new Error('Error fetching the content: ' + error.message || error || 'Unknown error.');
340 // return 'Error fetching the content: ' + error.message || error || 'Unknown error.';
341 }
342};
475
476
477export default app.fetch;
478
1import { fetchJSON } from "https://esm.town/v/stevekrouse/fetchJSON?v=41";
2
3export const gsheet_call = async (service_account, sheet_id, method, action, data) => {
9 };
10 const token = await getToken(service_account, googleAuthOptions);
11 const result = fetchJSON(
12 `https://sheets.googleapis.com/v4/spreadsheets/${sheet_id}/${action}`,
13 {
1/** @jsxImportSource https://esm.sh/hono@4.0.8/jsx **/
2
3import { modifyFetchHandler } from "https://esm.town/v/andreterron/codeOnValTown?v=50";
4import view_route from "https://esm.town/v/pomdtr/blob_admin_blob";
5import create_route from "https://esm.town/v/pomdtr/blob_admin_create";
137});
138
139export default modifyFetchHandler(passwordAuth(app.fetch));
5
6export const resumeConfig = {
7 // URL to fetch the resume JSON data. This should point to your raw resume JSON.
8 // If you want to host your resume JSON somewhere I recommend a setup like this on val town (https://www.val.town/v/iamseeley/resumeDetails) or a github gist.
9 // You can test out the resume view using my resume: https://iamseeley-resumedetails.web.val.run
1/** @jsxImportSource https://esm.sh/hono@latest/jsx **/
2
3import { modifyFetchHandler } from "https://esm.town/v/andreterron/codeOnValTown?v=50";
4import { iframeHandler } from "https://esm.town/v/nbbaier/iframeHandler";
5import { resetStyle } from "https://esm.town/v/nbbaier/resetStyle";
16import { verifyToken } from "https://esm.town/v/pomdtr/verifyToken";
17import { ResultSet, sqlite } from "https://esm.town/v/std/sqlite";
18import { reloadOnSaveFetchMiddleware } from "https://esm.town/v/stevekrouse/reloadOnSave";
19import { Hono } from "npm:hono";
20import type { FC } from "npm:hono/jsx";
175});
176
177export const handler = app.fetch;
178export default iframeHandler(modifyFetchHandler(passwordAuth(handler, { verifyPassword: verifyToken })));
102 tokenUrl.searchParams.set("state", store.state);
103
104 const tokenResp = await fetch(tokenUrl.toString());
105 if (!tokenResp.ok) {
106 throw new Error(await tokenResp.text());
111 };
112
113 const resp = await fetch("https://lastlogin.io/userinfo", {
114 headers: {
115 Authorization: `Bearer ${access_token}`,
44
45 useEffect(() => {
46 fetchAnswersAndRankings();
47 }, [user]);
48
49 const fetchAnswersAndRankings = async () => {
50 if (user) {
51 const response = await fetch("/api/answers");
52 const data = await response.json();
53 setAnswers(data.answers);
59 const saveAnswer = useCallback(async (newAnswer: Answer, losingAnswer: string) => {
60 if (user) {
61 await fetch("/api/answer", {
62 method: "POST",
63 headers: { "Content-Type": "application/json" },
64 body: JSON.stringify({ ...newAnswer, losingAnswer }),
65 });
66 fetchAnswersAndRankings();
67 }
68 }, [user]);
70 const clearAnswers = useCallback(async () => {
71 if (user) {
72 await fetch("/api/clear-answers", { method: "POST" });
73 setAnswers([]);
74 setRankings([]);
242 const handleLogin = useCallback(async (e: React.FormEvent) => {
243 e.preventDefault();
244 const response = await fetch("/api/login", {
245 method: "POST",
246 headers: { "Content-Type": "application/json" },
34
35 useEffect(() => {
36 fetchOffers();
37 }, []);
38
52 }, [selectedOffer]);
53
54 const fetchOffers = async () => {
55 try {
56 const response = await fetch("/offers");
57 if (response.ok) {
58 const data = await response.json();
64 setOffers(validOffers);
65 } else {
66 console.error("Failed to fetch offers");
67 }
68 } catch (error) {
69 console.error("Error fetching offers:", error);
70 }
71 };
96 };
97 try {
98 const response = await fetch("/offers", {
99 method: "POST",
100 headers: { "Content-Type": "application/json" },
102 });
103 if (response.ok) {
104 fetchOffers();
105 setNewOffer({ lender: "", rate: 0, term: 30, closingCosts: 0 });
106 } else {
114 const handleDelete = async (id: string) => {
115 try {
116 const response = await fetch(`/offers/${id}`, { method: "DELETE" });
117 if (response.ok) {
118 fetchOffers();
119 } else {
120 console.error("Failed to delete offer");
1import { fetch } from "https://esm.town/v/std/fetch";
2
3export async function extractText(data, name) {
4 const fileUrl =
5 "https://www.gcmgrosvenor.com/wp-content/uploads/Private-Credit-Co-investing-GCM-Grosvenor.pdf";
6 const blob = await fetch(fileUrl).then((r) => r.blob());
7 const pdfjs = await import("npm:pdfjs-dist"); //https://www.npmjs.com/package/pdf-to-text
8 return Object.keys(pdfjs);