2import { db } from "https://esm.town/v/sqlite/db?v=9";
3
4export default async function(req: Request) {
5 const url = new URL(req.url);
6 if (!url.searchParams.has("query")) {
17const COOKIE_NAME = "AUTH_ID_TOKEN";
18
19export function authId(url: string) {
20 const SCOPES = {
21 id: "provides proof that you are you",
25 const NAME = "@" + slug;
26
27 async function emailSignInLink(clientToken: string) {
28 const minutes = 15;
29 const token = await generate({
45 }
46
47 async function handler(req: Request) {
48 const { searchParams: qs } = new URL(req.url);
49
280}
281
282export function getAuthCookie(req: Request) {
283 return getCookies(req.headers)[COOKIE_NAME];
284}
285
286export function setAuthCookie(res: Response, token: string | undefined) {
287 if (token === undefined) {
288 setCookie(res.headers, {
306}
307
308export function getScopeUrl(scope: string) {
309 return getValUrlFromName(scope.split("/").slice(0, 2).join("/"), "val.town");
310}
311
312export function getScopeLink(scope: string) {
313 const name = scope.split("/").slice(0, 2).join("/");
314 return html`
2import { easyAQI } from "https://esm.town/v/stevekrouse/easyAQI";
3
4export async function aqi(interval: Interval) {
5 const location = "mataram ntb indonesia"; // <-- change to place, city, or zip code
6 const data = await easyAQI({ location });
1function run() {
2 const target = new URL(document.URL);
3 target.hostname = "vladimyr-mdviewer.web.val.run";
2import { gfm } from "https://esm.town/v/pomdtr/gfm";
3
4export async function readmeToHtmlResponse(author: string, name: string) {
5 return new Response(await readmeToHtml(author, name), {
6 headers: {
10}
11
12export async function readmeToHtml(author: string, name: string) {
13 const markdown = await readme(author, name);
14 return gfm(markdown);
15}
16
17export async function readme(author: string, name: string) {
18 const { readme } = await api(`/v1/alias/${author}/${name}`);
19 return readme;
2import { email } from "https://esm.town/v/std/email?v=11";
3
4export async function sqliteBackupWithEmail() {
5 const { name, content } = await sqliteBackup();
6 return email({
17}
18
19export default function() {
20 return sqliteBackupWithEmail();
21}
28console.log(text);
29
30export async function weatherGPT() {
31 const result = await fetch(`https://hello.liaolile.com/test/weather`, {
32 method: "POST",
1export async function handlePlexWebhook(req: Request) {
2 console.log(await req.text());
3}
1export async function umdImport(url: string | URL, globals = {}) {
2 const res = await fetch(url);
3 if (!res.ok) throw new Error(await res.text());
16 },
17 });
18 new Function("module", "exports", "global", ...Object.keys(globals), code)(
19 module,
20 module.exports,
1function run() {
2 window.location = new URL(`/${document.URL}`, "https://vladimyr-posteval.web.val.run/");
3}
A helper function to build a file's email
Simple functional CSS library for Val Town
import { OpenAI } from "https://esm.town/v/std/openai";
export default async function(req: Request): Promise<Response> {
if (req.method === "OPTIONS") {
return new Response(null, {
headers: {
"Access-Control-Allow-Origin": "*",
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.