♻️ Switch to turborepo (#532)

This commit is contained in:
Luke Vella 2023-03-01 14:10:06 +00:00 committed by GitHub
parent 41ef81aa75
commit 0a836aeec7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
419 changed files with 2300 additions and 2504 deletions

64
apps/web/declarations/environment.d.ts vendored Normal file
View file

@ -0,0 +1,64 @@
declare global {
namespace NodeJS {
interface ProcessEnv {
/**
* Full database connection string
*/
DATABASE_URL: string;
/**
* "development" or "production"
*/
NODE_ENV: "development" | "production";
/**
* Can be "false" or a relative path eg. "/new"
*/
LANDING_PAGE: string;
/**
* Must be 32 characters long
*/
SECRET_PASSWORD: string;
/**
* "1" to turn on maintenance mode
*/
NEXT_PUBLIC_MAINTENANCE_MODE?: string;
/**
* Posthog API key
*/
NEXT_PUBLIC_POSTHOG_API_KEY?: string;
/**
* Posthog API host
*/
NEXT_PUBLIC_POSTHOG_API_HOST?: string;
/**
* Crisp website ID
*/
NEXT_PUBLIC_CRISP_WEBSITE_ID?: string;
/**
* Users of your instance will see this as their support email
*/
SUPPORT_EMAIL: string;
/**
* Host address of the SMTP server
*/
SMTP_HOST: string;
/**
* Email address or user if authentication is required
*/
SMTP_USER: string;
/**
* Password if authentication is required
*/
SMTP_PWD: string;
/**
* "true" to use SSL
*/
SMTP_SECURE: string;
/**
* Port number of the SMTP server
*/
SMTP_PORT: string;
}
}
}
export {};

21
apps/web/declarations/i18next.d.ts vendored Normal file
View file

@ -0,0 +1,21 @@
import "react-i18next";
import app from "~/public/locales/en/app.json";
import common from "~/public/locales/en/common.json";
import errors from "~/public/locales/en/errors.json";
import homepage from "~/public/locales/en/homepage.json";
interface I18nNamespaces {
homepage: typeof homepage;
app: typeof app;
common: typeof common;
errors: typeof errors;
}
declare module "i18next" {
interface CustomTypeOptions {
defaultNS: "common";
resources: I18nNamespaces;
returnNull: false;
}
}

10
apps/web/declarations/iron-session.d.ts vendored Normal file
View file

@ -0,0 +1,10 @@
import "iron-session";
declare module "iron-session" {
export interface IronSessionData {
user: {
id: string;
isGuest: boolean;
};
}
}

111
apps/web/declarations/smpt-tester.d.ts vendored Normal file
View file

@ -0,0 +1,111 @@
declare module "smtp-tester" {
/**
* Initializes the SMTP tester.
*
* @param port The port of the SMTP server.
*/
function init(port: number): SmtpTester;
/**
* A callback that occurs when an email is received.
*
* @param recipient The bound recipient. Can be `undefined` if the handler is not bound to a specific recipient.
* @param id The local incrementing identifier of the email.
* @param email The email being received.
*/
type OnReceiveEmail = (
recipient: string,
id: number,
email: EmailInfo,
) => void;
type CaptureOneResponse = {
address: string;
id: string;
email: EmailInfo;
};
/**
* The SMTP tester.
*/
interface SmtpTester {
/**
* Binds a callback to a specific recipient that is fired whenever an email is received for that specific recipient.
*
* @param recipient The recipient to bind to.
* @param callback The callback function.
*/
bind(recipient: string, callback: OnReceiveEmail): void;
/**
* Binds a callback that is fired whenever an email is received.
*
* @param callback The callback function.
*/
bind(callback: OnReceiveEmail): void;
/**
* Captures the next email received by the server.
*
* @param recipient The recipient to capture for. If not specified, the next email received will be captured.
* @param options The options for the capture.
*/
captureOne(
recipient: string,
options?: CaptureOptions,
): Promise<CaptureOneResponse>;
/**
* Stops the running SMTP server.
*/
stop(): void;
/**
* Stops the running SMTP server.
*
* @param callback The callback that is fired when the server has stopped.
*/
stop(callback: () => void): void;
}
/**
* Contains information about a received email.
*/
interface EmailInfo {
/**
* The sender of the email.
*/
readonly sender: string;
/**
* The body of the email.
*/
readonly body: string;
/**
* The HTML body of the email.
*/
readonly html: string;
/**
* Headers of the email.
*/
readonly headers: {
/**
* Who the email was sent from.
*/
from: string;
/**
* Who the email was sent to.
*/
to: string;
/**
* The subject of the email.
*/
subject: string;
[string]: string;
};
}
}