2020-12-17 11:26:25 +01:00
|
|
|
import { InstancePrivacyType, InstanceTermsType, RoutingType } from "./enums";
|
2020-11-27 19:27:44 +01:00
|
|
|
import type { IProvider } from "./resource";
|
2019-12-20 13:04:34 +01:00
|
|
|
|
2020-10-29 10:24:39 +01:00
|
|
|
export interface IOAuthProvider {
|
|
|
|
id: string;
|
2022-07-12 10:55:28 +02:00
|
|
|
label?: string;
|
2020-10-29 10:24:39 +01:00
|
|
|
}
|
|
|
|
|
2021-12-16 16:48:50 +01:00
|
|
|
export interface IKeyValueConfig {
|
|
|
|
key: string;
|
|
|
|
value: string;
|
|
|
|
type: "boolean" | "integer" | "string";
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IAnalyticsConfig {
|
|
|
|
id: string;
|
|
|
|
enabled: boolean;
|
|
|
|
configuration: IKeyValueConfig[];
|
|
|
|
}
|
|
|
|
|
2022-07-12 10:55:28 +02:00
|
|
|
export interface IAnonymousParticipationConfig {
|
|
|
|
allowed: boolean;
|
|
|
|
validation: {
|
|
|
|
email: {
|
|
|
|
enabled: boolean;
|
|
|
|
confirmationRequired: boolean;
|
|
|
|
};
|
|
|
|
captcha: {
|
|
|
|
enabled: boolean;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2019-03-22 13:58:19 +01:00
|
|
|
export interface IConfig {
|
2019-03-21 20:23:42 +01:00
|
|
|
name: string;
|
2019-04-03 17:29:03 +02:00
|
|
|
description: string;
|
2020-06-19 19:27:10 +02:00
|
|
|
longDescription: string;
|
|
|
|
contact: string;
|
2020-10-21 17:49:18 +02:00
|
|
|
slogan: string;
|
2019-03-22 10:53:38 +01:00
|
|
|
|
2019-03-21 20:23:42 +01:00
|
|
|
registrationsOpen: boolean;
|
2020-09-29 09:53:48 +02:00
|
|
|
registrationsAllowlist: boolean;
|
2019-11-21 16:07:43 +01:00
|
|
|
demoMode: boolean;
|
2019-11-08 19:37:14 +01:00
|
|
|
countryCode: string;
|
2022-03-28 20:02:43 +02:00
|
|
|
eventCategories: { id: string; label: string }[];
|
2020-10-20 10:36:43 +02:00
|
|
|
languages: string[];
|
2019-11-08 19:37:14 +01:00
|
|
|
location: {
|
|
|
|
latitude: number;
|
|
|
|
longitude: number;
|
2020-06-09 15:20:07 +02:00
|
|
|
// accuracyRadius: number;
|
2019-11-08 19:37:14 +01:00
|
|
|
};
|
2019-12-20 13:04:34 +01:00
|
|
|
anonymous: {
|
2022-07-12 10:55:28 +02:00
|
|
|
participation: IAnonymousParticipationConfig;
|
2019-12-20 13:04:34 +01:00
|
|
|
eventCreation: {
|
|
|
|
allowed: boolean;
|
|
|
|
validation: {
|
|
|
|
email: {
|
|
|
|
enabled: boolean;
|
|
|
|
confirmationRequired: boolean;
|
2020-02-18 08:57:00 +01:00
|
|
|
};
|
2019-12-20 13:04:34 +01:00
|
|
|
captcha: {
|
2020-02-18 08:57:00 +01:00
|
|
|
enabled: boolean;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2020-06-09 14:07:49 +02:00
|
|
|
reports: {
|
|
|
|
allowed: boolean;
|
|
|
|
};
|
2020-02-18 08:57:00 +01:00
|
|
|
actorId: string;
|
2019-12-20 13:04:34 +01:00
|
|
|
};
|
2019-11-20 13:49:57 +01:00
|
|
|
maps: {
|
|
|
|
tiles: {
|
|
|
|
endpoint: string;
|
2020-02-18 08:57:00 +01:00
|
|
|
attribution: string | null;
|
|
|
|
};
|
2020-12-17 11:26:25 +01:00
|
|
|
routing: {
|
|
|
|
type: RoutingType;
|
|
|
|
};
|
2019-11-20 13:49:57 +01:00
|
|
|
};
|
|
|
|
geocoding: {
|
|
|
|
provider: string;
|
|
|
|
autocomplete: boolean;
|
|
|
|
};
|
2019-12-20 13:04:34 +01:00
|
|
|
terms: {
|
|
|
|
bodyHtml: string;
|
|
|
|
type: InstanceTermsType;
|
|
|
|
url: string;
|
|
|
|
};
|
2020-06-19 19:27:10 +02:00
|
|
|
privacy: {
|
|
|
|
bodyHtml: string;
|
|
|
|
type: InstancePrivacyType;
|
|
|
|
url: string;
|
|
|
|
};
|
2020-06-15 11:01:49 +02:00
|
|
|
rules: string;
|
2020-02-18 08:57:00 +01:00
|
|
|
resourceProviders: IProvider[];
|
|
|
|
timezones: string[];
|
2020-06-08 16:47:57 +02:00
|
|
|
features: {
|
2020-09-02 15:08:47 +02:00
|
|
|
eventCreation: boolean;
|
2020-06-08 16:47:57 +02:00
|
|
|
groups: boolean;
|
|
|
|
};
|
2021-10-06 18:00:50 +02:00
|
|
|
restrictions: {
|
|
|
|
onlyAdminCanCreateGroups: boolean;
|
|
|
|
onlyGroupsCanCreateEvents: boolean;
|
|
|
|
};
|
2020-06-19 19:27:10 +02:00
|
|
|
federating: boolean;
|
|
|
|
version: string;
|
2020-06-27 19:12:45 +02:00
|
|
|
auth: {
|
|
|
|
ldap: boolean;
|
|
|
|
oauthProviders: IOAuthProvider[];
|
|
|
|
};
|
2021-04-12 10:13:11 +02:00
|
|
|
uploadLimits: {
|
|
|
|
default: number;
|
|
|
|
avatar: number;
|
|
|
|
banner: number;
|
|
|
|
};
|
2021-04-19 12:40:51 +02:00
|
|
|
instanceFeeds: {
|
|
|
|
enabled: boolean;
|
|
|
|
};
|
2021-05-06 18:39:59 +02:00
|
|
|
webPush: {
|
|
|
|
enabled: boolean;
|
|
|
|
publicKey: string;
|
|
|
|
};
|
2021-10-04 18:59:41 +02:00
|
|
|
exportFormats: {
|
|
|
|
eventParticipants: string[];
|
|
|
|
};
|
2021-12-16 16:48:50 +01:00
|
|
|
analytics: IAnalyticsConfig[];
|
2022-08-26 16:08:58 +02:00
|
|
|
search: {
|
|
|
|
global: {
|
|
|
|
isEnabled: boolean;
|
|
|
|
isDefault: boolean;
|
|
|
|
};
|
|
|
|
};
|
2020-06-27 19:12:45 +02:00
|
|
|
}
|