@casual-simulation/aux-common
Version:
Common library for AUX projects
211 lines • 9.66 kB
TypeScript
import type { RemoteCausalRepoProtocol, SharedPartitionsVersion } from '../partitions';
import { z } from 'zod';
/**
* The possible BIOS options.
*
* - "enter join code" indicates that the user should be prompted to enter a join code.
* - "static inst", "local inst", and "local" indicates that the instance should be loaded statically.
* - "public inst", "free inst", and "free" indicates that the instance should be loaded from the public partition.
* - "private inst", "studio inst", and "studio" indicates that the instance should be loaded from the private partition.
* - "sign in" indicates that the user should be prompted to sign in.
* - "sign up" indicates that the user should be prompted to sign up.
* - "sign out" indicates that the user should be logged out.
*/
export type BiosOption = 'enter join code' | 'join inst' | 'static inst' | 'local inst' | 'local' | 'public inst' | 'private inst' | 'free inst' | 'free' | 'studio inst' | 'studio' | 'sign in' | 'sign up' | 'sign out' | 'delete inst';
export declare const BIOS_OPTION_SCHEMA: z.ZodEnum<["enter join code", "join inst", "static inst", "local inst", "local", "public inst", "private inst", "free inst", "free", "studio inst", "studio", "sign in", "sign up", "sign out", "delete inst"]>;
/**
* Defines an interface for the configuration that the web client should try to pull from the server.
*/
export interface WebConfig {
/**
* The protocol version.
*/
version: 1 | 2 | null;
/**
* The protocol that should be used for realtime connections.
*/
causalRepoConnectionProtocol: RemoteCausalRepoProtocol;
/**
* The URL that should be used for realtime connections.
*/
causalRepoConnectionUrl?: string | null;
/**
* Whether collaborative repositories should be persisted locally.
* Defaults to false.
*/
collaborativeRepoLocalPersistence?: boolean;
/**
* Whether static repositories should be persisted locally.
* Defaults to true.
*/
staticRepoLocalPersistence?: boolean;
/**
* The version of the shared partitions that should be used.
*/
sharedPartitionsVersion?: SharedPartitionsVersion | null;
/**
* The HTTP Origin that should be used for VM Iframes.
*/
vmOrigin?: string | null;
/**
* The HTTP origin that should be used for auth iframes.
*/
authOrigin?: string | null;
/**
* The HTTP origin that should be used for records.
*/
recordsOrigin?: string | null;
/**
* Whether collaboration should be disabled.
* Setting this to true will replace the shared partition of simulations
* with tempLocal partitions.
*/
disableCollaboration?: boolean | null;
/**
* The URL that should be used to bootstrap AB1.
*/
ab1BootstrapURL?: string | null;
/**
* The API key that should be used for the ArcGIS mapping API.
*/
arcGisApiKey?: string | null;
/**
* The app name that should be used for the Jitsi meet portal.
*/
jitsiAppName?: string | null;
/**
* The API Key that should be used for what3words integration.
*/
what3WordsApiKey?: string | null;
/**
* Gets the player mode of this CasualOS version.
*
* - "player" indicates that the instance has been configured for experiencing AUXes.
* - "builder" indicates that the instance has been configured for building AUXes.
*/
playerMode?: 'player' | 'builder' | null;
/**
* Whether to require that users login with Privo before they can access collaboration features.
*/
requirePrivoLogin?: boolean;
/**
* The allowed BIOS options.
* If omitted, then all options are allowed.
*
* Possible options are:
* - "enter join code"
* - "static inst"
* - "public inst"
* - "private inst"
* - "sign in"
* - "sign up"
* - "sign out"
*/
allowedBiosOptions?: BiosOption[];
/**
* The default BIOS option.
* If specified, then the BIOS will automatically select this option when shown.
*/
defaultBiosOption?: BiosOption;
/**
* The automatic BIOS option.
* If specified, then the BIOS will automatically execute this option.
*/
automaticBiosOption?: BiosOption;
/**
* Whether full support for the DOM should be enabled.
* This will run the VM without the web worker so that scripts have direct access to the iframe.
* May not be supported in all environments.
* Requires a separate VM origin for security purposes.
* Defaults to false.
*/
enableDom?: boolean;
/**
* Whether to enable debug mode for the VM.
*/
debug?: boolean;
/**
* The URL of the logo to display in the loading screen.
*/
logoUrl?: string | null;
/**
* The title of the logo to display in the loading screen.
*/
logoTitle?: string | null;
/**
* The background color of the logo to display in the loading screen.
* This is used to set the background color of the splash screen.
*/
logoBackgroundColor?: string | null;
}
export declare const WEB_CONFIG_SCHEMA: z.ZodObject<{
version: any;
causalRepoConnectionProtocol: z.ZodEnum<["websocket", "apiary-aws"]>;
causalRepoConnectionUrl: z.ZodString;
collaborativeRepoLocalPersistence: z.ZodBoolean;
staticRepoLocalPersistence: z.ZodBoolean;
sharedPartitionsVersion: z.ZodEnum<["v2"]>;
vmOrigin: z.ZodNullable<z.ZodString>;
authOrigin: z.ZodNullable<z.ZodString>;
recordsOrigin: z.ZodNullable<z.ZodString>;
disableCollaboration: z.ZodNullable<z.ZodBoolean>;
ab1BootstrapURL: z.ZodNullable<z.ZodString>;
arcGisApiKey: z.ZodNullable<z.ZodString>;
jitsiAppName: z.ZodNullable<z.ZodString>;
what3WordsApiKey: z.ZodNullable<z.ZodString>;
playerMode: z.ZodNullable<z.ZodEnum<["player", "builder"]>>;
requirePrivoLogin: z.ZodBoolean;
allowedBiosOptions: z.ZodNullable<z.ZodArray<z.ZodEnum<["enter join code", "join inst", "static inst", "local inst", "local", "public inst", "private inst", "free inst", "free", "studio inst", "studio", "sign in", "sign up", "sign out", "delete inst"]>, "many">>;
defaultBiosOption: z.ZodNullable<z.ZodEnum<["enter join code", "join inst", "static inst", "local inst", "local", "public inst", "private inst", "free inst", "free", "studio inst", "studio", "sign in", "sign up", "sign out", "delete inst"]>>;
automaticBiosOption: z.ZodNullable<z.ZodEnum<["enter join code", "join inst", "static inst", "local inst", "local", "public inst", "private inst", "free inst", "free", "studio inst", "studio", "sign in", "sign up", "sign out", "delete inst"]>>;
logoUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
logoBackgroundColor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
logoTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
version?: any;
causalRepoConnectionProtocol?: "apiary-aws" | "websocket";
causalRepoConnectionUrl?: string;
collaborativeRepoLocalPersistence?: boolean;
staticRepoLocalPersistence?: boolean;
sharedPartitionsVersion?: "v2";
vmOrigin?: string;
authOrigin?: string;
recordsOrigin?: string;
disableCollaboration?: boolean;
ab1BootstrapURL?: string;
arcGisApiKey?: string;
jitsiAppName?: string;
what3WordsApiKey?: string;
playerMode?: "builder" | "player";
requirePrivoLogin?: boolean;
allowedBiosOptions?: ("local" | "studio" | "enter join code" | "join inst" | "static inst" | "local inst" | "public inst" | "private inst" | "free inst" | "free" | "studio inst" | "sign in" | "sign up" | "sign out" | "delete inst")[];
defaultBiosOption?: "local" | "studio" | "enter join code" | "join inst" | "static inst" | "local inst" | "public inst" | "private inst" | "free inst" | "free" | "studio inst" | "sign in" | "sign up" | "sign out" | "delete inst";
automaticBiosOption?: "local" | "studio" | "enter join code" | "join inst" | "static inst" | "local inst" | "public inst" | "private inst" | "free inst" | "free" | "studio inst" | "sign in" | "sign up" | "sign out" | "delete inst";
logoUrl?: string;
logoBackgroundColor?: string;
logoTitle?: string;
}, {
version?: any;
causalRepoConnectionProtocol?: "apiary-aws" | "websocket";
causalRepoConnectionUrl?: string;
collaborativeRepoLocalPersistence?: boolean;
staticRepoLocalPersistence?: boolean;
sharedPartitionsVersion?: "v2";
vmOrigin?: string;
authOrigin?: string;
recordsOrigin?: string;
disableCollaboration?: boolean;
ab1BootstrapURL?: string;
arcGisApiKey?: string;
jitsiAppName?: string;
what3WordsApiKey?: string;
playerMode?: "builder" | "player";
requirePrivoLogin?: boolean;
allowedBiosOptions?: ("local" | "studio" | "enter join code" | "join inst" | "static inst" | "local inst" | "public inst" | "private inst" | "free inst" | "free" | "studio inst" | "sign in" | "sign up" | "sign out" | "delete inst")[];
defaultBiosOption?: "local" | "studio" | "enter join code" | "join inst" | "static inst" | "local inst" | "public inst" | "private inst" | "free inst" | "free" | "studio inst" | "sign in" | "sign up" | "sign out" | "delete inst";
automaticBiosOption?: "local" | "studio" | "enter join code" | "join inst" | "static inst" | "local inst" | "public inst" | "private inst" | "free inst" | "free" | "studio inst" | "sign in" | "sign up" | "sign out" | "delete inst";
logoUrl?: string;
logoBackgroundColor?: string;
logoTitle?: string;
}>;
//# sourceMappingURL=WebConfig.d.ts.map