@paroicms/connector
Version:
An API to help build management tools for ParoiCMS instances
200 lines (175 loc) • 4.82 kB
TypeScript
export type JtConfiguration = JtSingleSiteConfiguration | JtMultisiteConfiguration;
export interface JtConfigurationBase {
/**
* @deprecated Move the sub-properties in the parent.
*/
thisServer?: JtDeprecatedThisServerConf;
/**
* It is required except if the legacy `thisServer` is still used.
*/
port?: number;
hostname?: string;
/**
* Default is `"http"`.
*/
publicProtocol?: "http" | "https";
publicPort?: number;
/**
* @deprecated Use adminUiPort instead.
*/
boPort?: number;
adminUiPort?: number;
allowRobots: boolean;
enableCache?: boolean;
immutableAssets?: boolean;
/**
* For example: `"14d"`.
*/
cacheTimeToIdle?: string | "disabled" | "infinite";
clearCacheAfterStart?: boolean;
clearImageCacheAfterStart?: boolean;
/**
* @deprecated Replace `log.level` by `logLevel`, and `log.file` by `logFile`.
*/
log?: JtLogConf;
logLevel?: "silent" | "error" | "warn" | "info" | "stats" | "debug" | "trace";
/**
* Omit for stdout.
*/
logFile?: string;
graphqlDevTools?: boolean;
generateMissingDatabases?: boolean;
googleAuth?: JtGoogleAuthConf;
/** @deprecated Use "@paroicms/send-mail-aws-ses-plugin" configuration instead */
awsSesMail?: JtDeprecatedAwsSesMailConf;
/** @deprecated Use "@paroicms/contact-form-plugin" configuration instead */
googleRecaptcha?: JtDeprecatedGoogleRecaptchaConf;
imageProcessor?: JtImageProcessorConf | JtLegacyImageProcessorConf;
devAccount?: JtDevAccountConf;
platformAdminAccounts?: JtPlatformAdminAccountConf[];
plugins?: JtPluginStaticConfiguration[] | JtDeprecatedPluginConfigurations;
httpRedirections?: JtHttpRedirection[];
}
export interface JtHttpRedirection {
fromFqdn: string;
to: string;
mapPaths?: {
[fromRegex: string]: string;
};
preservePath?: boolean;
}
export interface JtSingleSiteConfiguration extends JtConfigurationBase {
singleSite: JtSingleSiteConf;
}
export interface JtMultisiteConfiguration extends JtConfigurationBase {
platform: {
dataDir: string;
};
sitePacks: JtSitePackOrLegacyConf[];
}
export interface JtDeprecatedThisServerConf {
port: number;
publicPort?: number;
boPublicPort?: number;
hostName?: string | null;
https: boolean;
}
export interface JtLogConf {
level: "silent" | "error" | "warn" | "info" | "stats" | "debug" | "trace";
/**
* Omit for stdout.
*/
file?: string;
}
export interface JtSingleSiteConf {
siteDir: string;
dataDir: string;
cacheDir: string;
backupDir: string;
fqdn: string;
redirectWww?: boolean;
/* Default value is `true`. */
trusted?: boolean;
}
export type JtSitePackOrLegacyConf =
| JtSitePackConf
| JtLegacyFqdnSitePackConf
| JtLegacySubDomainSitePackConf;
export type JtSitePackConf = JtFqdnSitePackConf | JtSubDomainSitePackConf;
export interface JtSitePackConfBase {
packName: string;
sitesDir?: string;
dataDir: string;
cacheDir: string;
backupDir: string;
redirectWww?: boolean;
/* Default value is `true`. */
trusted?: boolean;
}
export interface JtFqdnSitePackConf extends JtSitePackConfBase {
serveOn: "fqdn";
}
export interface JtSubDomainSitePackConf extends JtSitePackConfBase {
serveOn: "subDomain";
parentDomain: string;
}
export interface JtLegacyFqdnSitePackConf extends JtSitePackConfBase {
/** @deprecated Renamed to `serveOn` */
serveAs: "fqdn";
}
export interface JtLegacySubDomainSitePackConf extends JtSitePackConfBase {
/** @deprecated Renamed to `serveOn` */
serveAs: "subDomain";
parentDomain: string;
}
export interface JtGoogleAuthConf {
disabled?: boolean;
fqdn: string;
clientId: string;
clientSecret: string;
}
/** @deprecated Use "@paroicms/send-mail-aws-ses-plugin" configuration instead */
export interface JtDeprecatedAwsSesMailConf {
disabled?: boolean;
from: string;
accessKeyId: string;
secretAccessKey: string;
region: string;
}
/** @deprecated Use "@paroicms/contact-form-plugin" configuration instead */
export interface JtDeprecatedGoogleRecaptchaConf {
disabled?: boolean;
siteKey: string;
secretKey: string;
}
export interface JtImageProcessorConf {
cpuCoresPerFile?: number;
allowConcurrency?: boolean;
}
export interface JtLegacyImageProcessorConf {
cpuCoresPerFile?: number;
oneSharpAtATime?: boolean;
}
export interface JtDevAccountConf {
email: string;
name: string;
password: string;
}
export interface JtPlatformAdminAccountConf {
email: string;
name: string;
}
export interface JtPluginStaticConfiguration {
name: string;
disabled?: boolean;
platform?: boolean;
configuration?: {
[key: string]: unknown;
};
}
/** @deprecated Use JtPluginConfiguration[] instead */
export interface JtDeprecatedPluginConfigurations {
[pluginName: string]: {
[key: string]: unknown;
};
}