15const REPOS = [
16 { owner: "steel-dev", name: "steel-browser", branch: "main" },
17 { owner: "steel-dev", name: "steel-api", branch: "develop" },
18 { owner: "steel-dev", name: "steel-docs", branch: "main" },
19];
73Enhanced logging system for better debugging
74Fixed occasional 500 error with the /sessions endpoint
75UI docker image now accepts dynamic API URLs for custom deploys
76Fixes to re-render bugs that were causing some state update delays
77Fixes requests ordering from FE to preload data for a snappier UI
379 return allCommits;
380 } catch (error) {
381 console.error("GitHub API Error:", error);
382 throw error;
383 }
2
3export default async function generateCartaPorteCFDI(req: Request): Promise<Response> {
4 const AIRTABLE_API_KEY = Deno.env.get("AIRTABLE_API_KEY")!;
5 const AIRTABLE_BASE_ID = Deno.env.get("AIRTABLE_BASE_ID")!;
6 const FACTURAMA_AUTH = Deno.env.get("FACTURAMA_AUTH")!;
20
21 const airtableHeaders = {
22 Authorization: `Bearer ${AIRTABLE_API_KEY}`,
23 "Content-Type": "application/json",
24 };
25
26 const fetchRecord = async (tableId: string, id: string) => {
27 const res = await fetch(`https://api.airtable.com/v0/${AIRTABLE_BASE_ID}/${tableId}/${id}`, {
28 headers: airtableHeaders,
29 });
46 form.append("upload_preset", CLOUDINARY_UPLOAD_PRESET);
47
48 const res = await fetch(`https://api.cloudinary.com/v1_1/${CLOUDINARY_CLOUD_NAME}/upload`, {
49 method: "POST",
50 body: form,
60
61 const updateAirtableFields = async (tableId: string, id: string, fields: Record<string, any>) => {
62 const res = await fetch(`https://api.airtable.com/v0/${AIRTABLE_BASE_ID}/${tableId}/${id}`, {
63 method: "PATCH",
64 headers: airtableHeaders,
72
73 const fetchFromFacturama = async (id: string, type: "xml" | "pdf") => {
74 const url = `https://apisandbox.facturama.mx/api/Cfdi/${type}/issued/${id}`;
75 const res = await fetch(url, {
76 headers: {
383 console.log("Receiver Name enviado:", cfdi.Receiver.Name);
384
385 const facturamaRes = await fetch("https://apisandbox.facturama.mx/3/cfdis", {
386 method: "POST",
387 headers: {
21 }));
22
23app.get("/api/counter/get", async c => c.json(await db.get("counter")));
24app.get("/api/counter/increment", async c => c.json(await db.set("counter", (await db.get("counter") || 0) + 1)));
25
26app.get("/frontend/**/*", c => serveFile(c.req.path, import.meta.url));
58 <div className="">✷ Farcaster mini app manifest + webhook + embed metadata</div>
59 <div className="">✷ Farcaster notifications (storing tokens, sending recurring notifications, ...)</div>
60 <div className="">✷ Neynar API integration for Farcaster data</div>
61 <div className="">✷ Hosted on Val Town (instant deployments on save)</div>
62 <div className="">
72
73function Database() {
74 const queryFn = () => fetch("/api/counter/get").then((r) => r.json());
75 const { data, refetch } = useQuery({ queryKey: ["counter"], queryFn });
76 return (
78 {/* <h2 className="font-semibold">Database Example</h2> */}
79 <div className="">Counter value: {data}</div>
80 <Button variant="outline" onClick={() => fetch("/api/counter/increment").then(refetch)}>
81 Increment
82 </Button>
4 const TEXT = " Встерча и Работа ";
5
6 const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
7
8 fetch(url, {
4 const TEXT = "🎨 Отдых";
5
6 const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
7
8 fetch(url, {
4 const TEXT = "🤩 Служение и Семейное! ";
5
6 const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
7
8 fetch(url, {
4 const TEXT = "👷♂️ Филиал ";
5
6 const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
7
8 fetch(url, {
4 const TEXT = "🏢🚨 Lunes Monday Филиал ";
5
6 const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
7
8 fetch(url, {