2265 lines
86 KiB
TypeScript
2265 lines
86 KiB
TypeScript
import { InputSpec } from './builder/inputSpec';
|
|
import { Value } from './builder/value';
|
|
import { Variants } from './builder/variants';
|
|
import { z } from 'zod';
|
|
/**
|
|
* Base SMTP settings with no provider-specific defaults.
|
|
*/
|
|
export declare const customSmtp: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
/**
|
|
* Provider presets for SMTP configuration.
|
|
* Each variant has SMTP fields pre-filled with the provider's recommended settings.
|
|
*/
|
|
export declare const smtpProviderVariants: Variants<{
|
|
gmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
ses: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
sendgrid: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
mailgun: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
protonmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
other: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
}, unknown>;
|
|
/**
|
|
* System SMTP settings with provider presets.
|
|
* Wraps smtpProviderVariants in a union for use by the system email settings page.
|
|
*/
|
|
export declare const systemSmtpSpec: InputSpec<{
|
|
provider: import("./builder/variants").UnionRes<{
|
|
gmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
ses: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
sendgrid: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
mailgun: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
protonmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
other: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
}, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">;
|
|
}, {
|
|
provider: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
gmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
ses: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
sendgrid: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
mailgun: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
protonmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
other: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
}, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">;
|
|
}>;
|
|
/**
|
|
* For service inputSpec. Gives users 3 options for SMTP: (1) disabled, (2) use system SMTP settings, (3) use custom SMTP settings with provider presets
|
|
*/
|
|
export declare const smtpInputSpec: Value<import("./builder/variants").UnionRes<{
|
|
disabled: {
|
|
name: string;
|
|
spec: InputSpec<{}, {}>;
|
|
};
|
|
system: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
customFrom: string | null;
|
|
}, {
|
|
customFrom: string | null;
|
|
}>;
|
|
};
|
|
custom: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
provider: import("./builder/variants").UnionRes<{
|
|
gmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
ses: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
sendgrid: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
mailgun: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
protonmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
other: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
}, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">;
|
|
}, {
|
|
provider: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
gmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
ses: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
sendgrid: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
mailgun: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
protonmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
other: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
}, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">;
|
|
}>;
|
|
};
|
|
}>, import("./builder/variants").UnionResStaticValidatedAs<{
|
|
disabled: {
|
|
name: string;
|
|
spec: InputSpec<{}, {}>;
|
|
};
|
|
system: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
customFrom: string | null;
|
|
}, {
|
|
customFrom: string | null;
|
|
}>;
|
|
};
|
|
custom: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
provider: import("./builder/variants").UnionRes<{
|
|
gmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
ses: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
sendgrid: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
mailgun: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
protonmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
other: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
}, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">;
|
|
}, {
|
|
provider: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
gmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
ses: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
sendgrid: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
mailgun: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
protonmail: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
other: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
host: string;
|
|
security: import("./builder/variants").UnionRes<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}, {
|
|
host: string;
|
|
security: import("./builder/variants").UnionResStaticValidatedAs<{
|
|
tls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: string;
|
|
}, {
|
|
port: string | null;
|
|
}>;
|
|
};
|
|
starttls: {
|
|
name: string;
|
|
spec: InputSpec<{
|
|
port: "587" | "25" | "2525";
|
|
}, {
|
|
port: "587" | "25" | "2525";
|
|
}>;
|
|
};
|
|
}, "starttls" | "tls">;
|
|
from: string;
|
|
username: string;
|
|
password: string | null;
|
|
}>;
|
|
};
|
|
}, "other" | "gmail" | "ses" | "sendgrid" | "mailgun" | "protonmail">;
|
|
}>;
|
|
};
|
|
}>, unknown>;
|
|
export type SmtpSelection = {
|
|
selection: 'disabled';
|
|
value: Record<string, never>;
|
|
} | {
|
|
selection: 'system';
|
|
value: {
|
|
customFrom?: string | null;
|
|
};
|
|
} | {
|
|
selection: 'custom';
|
|
value: {
|
|
provider: {
|
|
selection: string;
|
|
value: {
|
|
host: string;
|
|
from: string;
|
|
username: string;
|
|
password?: string | null;
|
|
security: {
|
|
selection: 'tls' | 'starttls';
|
|
value: {
|
|
port: string;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
/**
|
|
* Zod schema for persisting SMTP selection in a store file model.
|
|
* Use this instead of `smtpInputSpec.validator` to avoid cross-zod-instance issues.
|
|
*/
|
|
export declare const smtpShape: z.ZodType<SmtpSelection>;
|
|
/**
|
|
* Convert a stored SmtpSelection to a value suitable for prefilling smtpInputSpec.
|
|
*
|
|
* The stored type (SmtpSelection from smtpShape) uses flat unions for provider/security
|
|
* selection, while the input spec (smtpInputSpec) uses distributed discriminated unions
|
|
* (UnionRes). These are structurally incompatible in TypeScript's type system, even
|
|
* though the runtime values are identical. This function bridges the two types so that
|
|
* service code doesn't need `as any`.
|
|
*/
|
|
export declare function smtpPrefill(smtp: SmtpSelection | null | undefined): any;
|