authMiddlewaremain.tsx12 matches
25};
2627async function normalizeOption<T>(value: MaybeMethod<T>, req: Request, payload: JWTPayload): Promise<T> {
28return value instanceof Function
29? await value(req, payload)
30: value;
31}
3233export function getRequestContextRequest(context: ImplementsRequestContext) {
34return "raw" in context.req
35? context.req.raw
47}
4849export function authWrapperCookie(
50handler: (req: Request, context: ImplementsRequestContext) => MaybePromise<Response>,
51options: AuthMiddlewareOptions<ImplementsRequestContext> & {
79}
8081export function authWrapperToken(
82handler: (req: Request, context: ImplementsRequestContext) => MaybePromise<Response>,
83options: AuthMiddlewareOptions<ImplementsRequestContext> & {
109}
110111export function authMiddlewareToken<Context extends ImplementsRequestContext>(
112options: Omit<AuthMiddlewareOptions<Context>, "requestScope"> & {
113createResponse?: (context: Context, content: unknown, init?: ResponseInit) => MaybePromise<Response>;
161}
162163export function authMiddlewareTokenQS<Context extends ImplementsRequestContext>(
164options: Omit<AuthMiddlewareOptions<Context>, "requestScope"> & {
165createResponse?: (context: Context, content: unknown, init?: ResponseInit) => MaybePromise<Response>;
213}
214215export function authMiddlewareCookie<Context extends ImplementsRequestContext>(
216options: AuthMiddlewareOptions<Context> & {
217rootPath?: string;
261};
262263function verifyAuthToken(token: string, req: Request) {
264return verifyThirdParty(token, {
265issuer: `@${handle}/authId`,
371};
372373newPayload.requestScope = requestScope instanceof Function
374? await requestScope(req, name)
375: requestScope;
451};
452453export function userDisplay(payload: JWTPayload) {
454return payload.sub.replace(/\/.*/, "");
455}
456457export function userActionsDisplay(
458payload: JWTPayload,
459{
3334const ENDPOINT = getValEndpointFromUrl(import.meta.url);
35export function api(path: string, token: string, init: RequestInit = {}) {
36return fetch(`${ENDPOINT}/${path.replace(/^\/+/, "")}`, {
37...init,
playgroundREADME.md1 match
8- only script vals supported
910everything else should be fully functional.
1112you can prefill the editor with
authMiddlewaremain.tsx12 matches
25};
2627async function normalizeOption<T>(value: MaybeMethod<T>, req: Request, payload: JWTPayload): Promise<T> {
28return value instanceof Function
29? await value(req, payload)
30: value;
31}
3233export function getRequestContextRequest(context: ImplementsRequestContext) {
34return "raw" in context.req
35? context.req.raw
47}
4849export function authWrapperCookie(
50handler: (req: Request, context: ImplementsRequestContext) => MaybePromise<Response>,
51options: AuthMiddlewareOptions<ImplementsRequestContext> & {
79}
8081export function authWrapperToken(
82handler: (req: Request, context: ImplementsRequestContext) => MaybePromise<Response>,
83options: AuthMiddlewareOptions<ImplementsRequestContext> & {
109}
110111export function authMiddlewareToken<Context extends ImplementsRequestContext>(
112options: Omit<AuthMiddlewareOptions<Context>, "requestScope"> & {
113createResponse?: (context: Context, content: unknown, init?: ResponseInit) => MaybePromise<Response>;
161}
162163export function authMiddlewareTokenQS<Context extends ImplementsRequestContext>(
164options: Omit<AuthMiddlewareOptions<Context>, "requestScope"> & {
165createResponse?: (context: Context, content: unknown, init?: ResponseInit) => MaybePromise<Response>;
213}
214215export function authMiddlewareCookie<Context extends ImplementsRequestContext>(
216options: AuthMiddlewareOptions<Context> & {
217rootPath?: string;
261};
262263function verifyAuthToken(token: string, req: Request) {
264return verifyThirdParty(token, {
265issuer: `@${handle}/authId`,
371};
372373newPayload.requestScope = requestScope instanceof Function
374? await requestScope(req, name)
375: requestScope;
451};
452453export function userDisplay(payload: JWTPayload) {
454return payload.sub.replace(/\/.*/, "");
455}
456457export function userActionsDisplay(
458payload: JWTPayload,
459{
14export type JWTCustomClaimVerifier = (payload: jose.JWTPayload, claim: unknown) => MaybePromise<boolean>;
1516export function createVerifyMethod(keys: () => MaybePromise<jose.JWK[]>) {
17return async function verify(
18token: string,
19options: JWTVerifyOptions,
22const { payload } = await jose.jwtVerify(token, publicKey, options);
23const customClaims = options.custom && (
24options.custom instanceof Function
25? await options.custom(payload)
26: options.custom
31}
3233export function createGenerateMethod(keys: () => MaybePromise<jose.JWK[]>) {
34return async function generate(payload: any, exp?: string | number | Date) {
35const _keys = await keys();
36const privateKey = await jose.importJWK(_keys[0]);
51}
5253export async function verifyThirdParty(
54token: string,
55options: JWTVerifyOptions = {},
72}
7374export function decode(token: string) {
75return jose.decodeJwt(token);
76}
116}
117118export async function verifyCustomClaims(
119payload,
120customClaims: Record<string, unknown>,
whiteXerinaeREADME.md1 match
33- [x] fix wonky sidebar separator height problem (thanks to @stevekrouse)
34- [x] make result tables scrollable
35- [x] add export to CSV, and JSON (CSV and JSON helper functions written in [this val](https://www.val.town/v/nbbaier/sqliteExportHelpers). Thanks to @pomdtr for merging the initial version!)
36- [x] add listener for cmd+enter to submit query
37
whiteThrushREADME.md1 match
27- [ ] add visible output for non-query statements
28- [ ] add schema viewing
29- [x] add export to CSV, and JSON (CSV and JSON helper functions written in [this val](https://www.val.town/v/nbbaier/sqliteExportHelpers). Thanks to @pomdtr for merging the initial version!)
30- [ ] add refresh to table list sidebar after `CREATE/DROP/ALTER` statements
31- [ ] add automatic execution of initial select query on double click
greenEgretmain.tsx1 match
1export default async function(req: Request): Promise<Response> {
2return Response.json({ name: "iasjdlkasj" });
3}
password_authmain.tsx7 matches
11};
1213async function createSessionTable(tableName: string) {
14await sqlite.execute(`CREATE TABLE ${tableName} (
15id TEXT NOT NULL PRIMARY KEY,
19}
2021async function createSession(tableName: string, valSlug: string): Promise<Session> {
22try {
23const expires_at = new Date();
39}
4041async function getSession(tableName: string, sessionID: string, valSlug: string): Promise<Session> {
42try {
43const { rows, columns } = await sqlite.execute({
60}
6162async function fetchUser(token: string): Promise<{ id: string }> {
63const resp = await fetch("https://api.val.town/v1/me", {
64headers: {
74}
7576async function verifyApiToken(token: string) {
77try {
78const [currentUser, requestUser] = await Promise.all([fetchUser(Deno.env.get("valtown")), fetchUser(token)]);
105</html>`;
106107export function redirect(location: string): Response {
108return new Response(null, {
109headers: {
123const cookieName = "auth_session";
124125export function passwordAuth(next, options?: PasswordAuthOptions) {
126let passwords: string[];
127if (!options?.password) {