mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-14 23:24:52 +09:00
Instances can be marked as a base with instance.is_base and other instances inherit config values from it through instance.base_id. The controller copies base values into inheriting configs and keeps track of inherited fields in the hidden instance.inherited_fields, so hosts receive resolved configs and need no changes. Setting a field stops inheriting it, `instance config inherit` undoes that. Bases cannot be assigned to a host, are hidden from `instance list` unless --bases is given, and cannot be deleted or unmarked while other instances inherit from them. Chains of bases are allowed and cycles are rejected. Part of #200 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
181 lines
5.5 KiB
TypeScript
181 lines
5.5 KiB
TypeScript
import * as core from "../data/messages_core.js";
|
|
import * as controller from "../data/messages_controller.js";
|
|
import * as host from "../data/messages_host.js";
|
|
import * as instance from "../data/messages_instance.js";
|
|
import * as mod from "../data/messages_mod.js";
|
|
import * as user from "../data/messages_user.js";
|
|
import * as role from "../data/messages_role.js";
|
|
import * as note from "../data/messages_note.js";
|
|
import * as plugin from "../data/messages_plugin.js";
|
|
import * as subscriptions from "../subscriptions.js";
|
|
import * as errors from "../errors.js";
|
|
import type { RequestClass, EventClass, ErrorClass } from "./link.js";
|
|
|
|
/**
|
|
* Event and Request payloads registered with the Link class. Used to decode
|
|
* the data payload of incomming requsts and event messages into instances of
|
|
* their proper classes.
|
|
* @internal
|
|
*/
|
|
export const dataClasses: (RequestClass<unknown, unknown> | EventClass<unknown>)[] = [
|
|
core.PingRequest,
|
|
core.AccountUpdateEvent,
|
|
|
|
controller.ControllerStopRequest,
|
|
controller.ControllerRestartRequest,
|
|
controller.ControllerMarkRestartRequiredRequest,
|
|
controller.ControllerUpdateRequest,
|
|
controller.ControllerConfigGetRequest,
|
|
controller.ControllerConfigSetRequest,
|
|
controller.ControllerConfigSetFieldRequest,
|
|
controller.ControllerConfigSetPropRequest,
|
|
controller.HostPairingListRequest,
|
|
controller.HostPairingUpdatesEvent,
|
|
controller.HostPairingApproveRequest,
|
|
controller.HostPairingRejectRequest,
|
|
controller.GetFactorioCredentialsRequest,
|
|
controller.LogSetSubscriptionsRequest,
|
|
controller.LogQueryRequest,
|
|
controller.LogMessageEvent,
|
|
controller.SystemInfoRequest,
|
|
controller.SystemInfoUpdateEvent,
|
|
controller.DebugDumpWsRequest,
|
|
controller.DebugWsMessageEvent,
|
|
controller.FactorioVersionsRequest,
|
|
controller.LatestReleasesRequest,
|
|
|
|
subscriptions.SubscriptionRequest,
|
|
|
|
host.HostStopRequest,
|
|
host.HostRestartRequest,
|
|
host.HostMarkRestartRequiredRequest,
|
|
host.HostUpdateRequest,
|
|
host.HostConfigGetRequest,
|
|
host.HostConfigSetRequest,
|
|
host.HostConfigSetFieldRequest,
|
|
host.HostConfigSetPropRequest,
|
|
host.HostListRequest,
|
|
host.HostInfoUpdateEvent,
|
|
host.HostUpdatesEvent,
|
|
host.HostMetricsRequest,
|
|
host.ControllerConnectionEvent,
|
|
host.PrepareControllerDisconnectRequest,
|
|
host.SyncUserListsEvent,
|
|
host.HostRevokeRequest,
|
|
|
|
instance.InstanceDetailsGetRequest,
|
|
instance.InstanceDetailsListRequest,
|
|
instance.InstanceDetailsUpdatesEvent,
|
|
instance.InstanceCreateRequest,
|
|
instance.InstanceConfigGetRequest,
|
|
instance.InstanceConfigSetRequest,
|
|
instance.InstanceConfigSetFieldRequest,
|
|
instance.InstanceConfigSetPropRequest,
|
|
instance.InstanceConfigInheritFieldRequest,
|
|
instance.InstanceAssignRequest,
|
|
instance.InstanceMetricsRequest,
|
|
instance.InstanceStartRequest,
|
|
instance.InstanceRestartRequest,
|
|
instance.InstanceSaveDetailsListRequest,
|
|
instance.InstanceSaveDetailsUpdatesEvent,
|
|
instance.InstanceCreateSaveRequest,
|
|
instance.InstanceSaveGameRequest,
|
|
instance.InstanceRenameSaveRequest,
|
|
instance.InstanceCopySaveRequest,
|
|
instance.InstanceDeleteSaveRequest,
|
|
instance.InstanceDownloadSaveRequest,
|
|
instance.InstanceTransferSaveRequest,
|
|
instance.InstancePullSaveRequest,
|
|
instance.InstancePushSaveRequest,
|
|
instance.InstanceLoadScenarioRequest,
|
|
instance.InstanceExportDataRequest,
|
|
instance.InstanceExtractPlayersRequest,
|
|
instance.InstanceStopRequest,
|
|
instance.InstanceKillRequest,
|
|
instance.InstanceDeleteRequest,
|
|
instance.InstanceDeleteInternalRequest,
|
|
instance.InstanceSendRconRequest,
|
|
instance.InstancesUpdateRequest,
|
|
instance.InstanceAssignInternalRequest,
|
|
instance.InstanceUnassignInternalRequest,
|
|
instance.InstanceInitialisedEvent,
|
|
instance.InstanceStatusChangedEvent,
|
|
instance.InstanceDetailsChangedEvent,
|
|
instance.InstanceBanlistUpdateEvent,
|
|
instance.InstanceAdminlistUpdateEvent,
|
|
instance.InstanceWhitelistUpdateEvent,
|
|
instance.InstancePlayerUpdateEvent,
|
|
|
|
mod.ModPackGetRequest,
|
|
mod.ModPackGetDefaultRequest,
|
|
mod.ModPackListRequest,
|
|
mod.ModPackCreateRequest,
|
|
mod.ModPackUpdateRequest,
|
|
mod.ModPackDeleteRequest,
|
|
mod.ModGetRequest,
|
|
mod.ModListRequest,
|
|
mod.ModSearchRequest,
|
|
mod.ModPortalGetAllRequest,
|
|
mod.ModDownloadRequest,
|
|
mod.ModDeleteRequest,
|
|
mod.ModPackUpdatesEvent,
|
|
mod.ModUpdatesEvent,
|
|
mod.ModPortalDownloadRequest,
|
|
mod.ModDependencyResolveRequest,
|
|
|
|
role.PermissionListRequest,
|
|
role.RoleListRequest,
|
|
role.RoleUpdatesEvent,
|
|
role.RoleCreateRequest,
|
|
role.RoleUpdateRequest,
|
|
role.RoleGrantDefaultPermissionsRequest,
|
|
role.RoleDeleteRequest,
|
|
|
|
note.NoteListRequest,
|
|
note.NoteUpdatesEvent,
|
|
note.NoteSetRequest,
|
|
|
|
user.UserGetRequest,
|
|
user.UserListRequest,
|
|
user.UserCreateRequest,
|
|
user.UserRevokeTokenRequest,
|
|
user.UserUpdateRolesRequest,
|
|
user.UserSetAdminRequest,
|
|
user.UserSetWhitelistedRequest,
|
|
user.UserSetBannedRequest,
|
|
user.UserDeleteRequest,
|
|
user.UserUpdatesEvent,
|
|
user.UserBulkImportRequest,
|
|
user.UserBulkExportRequest,
|
|
|
|
plugin.PluginListRequest,
|
|
plugin.PluginUpdateRequest,
|
|
plugin.PluginInstallRequest,
|
|
plugin.PluginSearchRequest,
|
|
plugin.PluginLatestVersionsRequest,
|
|
plugin.UpdateAllRequest,
|
|
];
|
|
|
|
/**
|
|
* Error classes registered with the Link class. Used to send errors thrown
|
|
* by request handlers back as instances of the same class.
|
|
* @internal
|
|
*/
|
|
export const errorClasses: ErrorClass[] = [
|
|
errors.ClientError,
|
|
errors.ValidationError,
|
|
errors.InvalidValueError,
|
|
errors.InvalidFieldError,
|
|
errors.ForbiddenError,
|
|
errors.PermissionError,
|
|
errors.InvalidAccessError,
|
|
errors.NotFoundError,
|
|
errors.TimeoutError,
|
|
errors.ConflictError,
|
|
errors.ServerError,
|
|
errors.InternalServerError,
|
|
errors.UnavailableError,
|
|
errors.InvalidMessage,
|
|
errors.SessionLost,
|
|
];
|