nextjs is stupid
This commit is contained in:
parent
e99f9dc8af
commit
57a425a79a
|
@ -1,7 +1,7 @@
|
|||
import apiAuth from "@/lib/apiAuth";
|
||||
import { auditLog } from "@/lib/audit";
|
||||
import { AliasEntry, createAliasEntry } from "@/lib/db";
|
||||
import { generateAliasEmail } from "@/lib/util";
|
||||
import { generateAliasEmail } from "@/lib/util-server";
|
||||
import { NextResponse } from "next/server";
|
||||
|
||||
/**
|
||||
|
|
|
@ -5,7 +5,8 @@ import fs from "fs/promises";
|
|||
import { getServerSession } from "next-auth";
|
||||
import { AuditLog, auditLog } from "./audit";
|
||||
import { AliasEntry, AliasRequestEntry, ApiKeyEntry, approveAliasEntry, createAliasEntry, createApiKeyEntry, createTempAliasRequestEntry, createUserEntry, database, deleteAliasEntry, deleteApiKey, deleteTempAliasRequestEntry, getAlias, getAllAliases, getApiKeyById, getTempAliasRequestEntry, getUserAliases, getUserApiKeys, isAliasAvailable, setUserPassword } from "./db";
|
||||
import { aliasesNeedApproval, anonymizeApiKey, generateAliasEmail, isAdmin } from "./util";
|
||||
import { aliasesNeedApproval, anonymizeApiKey, isAdmin } from "./util";
|
||||
import { generateAliasEmail } from "./util-server";
|
||||
|
||||
export async function fetchAllUsers(): Promise<string[]> {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
|
|
27
src/lib/util-server.ts
Normal file
27
src/lib/util-server.ts
Normal file
|
@ -0,0 +1,27 @@
|
|||
import { TEMP_EMAIL_DOMAIN } from "./constants";
|
||||
import { isAliasAvailable } from "./db";
|
||||
import crypto from 'crypto';
|
||||
import * as random_words from "random-words";
|
||||
|
||||
export async function generateAliasEmail(label: string, style: 'words' | 'random', labelAtEnd: boolean): Promise<string> {
|
||||
let email: string;
|
||||
do {
|
||||
let randomString: string;
|
||||
switch (style) {
|
||||
case 'words':
|
||||
randomString = random_words.generate(2).join('');
|
||||
break;
|
||||
case 'random':
|
||||
randomString = crypto
|
||||
.randomBytes(8)
|
||||
.toString('base64')
|
||||
.replace(/\W/, ''); // Delete special characters
|
||||
break;
|
||||
default:
|
||||
throw new Error("Invalid style");
|
||||
}
|
||||
email = `${labelAtEnd ? `${randomString}-${label}` : `${label}-${randomString}`}@${TEMP_EMAIL_DOMAIN}`;
|
||||
} while (!await isAliasAvailable(email, true));
|
||||
|
||||
return email;
|
||||
}
|
|
@ -1,8 +1,5 @@
|
|||
import { Session } from 'next-auth';
|
||||
import crypto from 'crypto';
|
||||
import { ApiKeyEntry, isAliasAvailable } from './db';
|
||||
import * as random_words from "random-words";
|
||||
import { TEMP_EMAIL_DOMAIN } from './constants';
|
||||
import { ApiKeyEntry } from './db';
|
||||
|
||||
export function sha256sum(input: any) {
|
||||
const hash = crypto.createHash('sha256');
|
||||
|
@ -25,26 +22,3 @@ export function anonymizeApiKey(key: ApiKeyEntry): ApiKeyEntry {
|
|||
token: key.token.substring(0, 6) + "********",
|
||||
};
|
||||
}
|
||||
|
||||
export async function generateAliasEmail(label: string, style: 'words' | 'random', labelAtEnd: boolean): Promise<string> {
|
||||
let email: string;
|
||||
do {
|
||||
let randomString: string;
|
||||
switch (style) {
|
||||
case 'words':
|
||||
randomString = random_words.generate(2).join('');
|
||||
break;
|
||||
case 'random':
|
||||
randomString = crypto
|
||||
.randomBytes(8)
|
||||
.toString('base64')
|
||||
.replace(/\W/, ''); // Delete special characters
|
||||
break;
|
||||
default:
|
||||
throw new Error("Invalid style");
|
||||
}
|
||||
email = `${labelAtEnd ? `${randomString}-${label}` : `${label}-${randomString}`}@${TEMP_EMAIL_DOMAIN}`;
|
||||
} while (!await isAliasAvailable(email, true));
|
||||
|
||||
return email;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue