mobilizon.chapril.org-mobil.../js/src/types/config.model.ts

93 lines
1.7 KiB
TypeScript

import { InstancePrivacyType, InstanceTermsType, RoutingType } from "./enums";
import type { IProvider } from "./resource";
export interface IOAuthProvider {
id: string;
label: string;
}
export interface IConfig {
name: string;
description: string;
longDescription: string;
contact: string;
slogan: string;
registrationsOpen: boolean;
registrationsAllowlist: boolean;
demoMode: boolean;
countryCode: string;
languages: string[];
location: {
latitude: number;
longitude: number;
// accuracyRadius: number;
};
anonymous: {
participation: {
allowed: boolean;
validation: {
email: {
enabled: boolean;
confirmationRequired: boolean;
};
captcha: {
enabled: boolean;
};
};
};
eventCreation: {
allowed: boolean;
validation: {
email: {
enabled: boolean;
confirmationRequired: boolean;
};
captcha: {
enabled: boolean;
};
};
};
reports: {
allowed: boolean;
};
actorId: string;
};
maps: {
tiles: {
endpoint: string;
attribution: string | null;
};
routing: {
type: RoutingType;
};
};
geocoding: {
provider: string;
autocomplete: boolean;
};
terms: {
bodyHtml: string;
type: InstanceTermsType;
url: string;
};
privacy: {
bodyHtml: string;
type: InstancePrivacyType;
url: string;
};
rules: string;
resourceProviders: IProvider[];
timezones: string[];
features: {
eventCreation: boolean;
groups: boolean;
};
federating: boolean;
version: string;
auth: {
ldap: boolean;
oauthProviders: IOAuthProvider[];
};
}