refactor(src): split oversized modules
This commit is contained in:
99
src/gateway/protocol/schema/channels.ts
Normal file
99
src/gateway/protocol/schema/channels.ts
Normal file
@@ -0,0 +1,99 @@
|
||||
import { Type } from "@sinclair/typebox";
|
||||
|
||||
import { NonEmptyString } from "./primitives.js";
|
||||
|
||||
export const TalkModeParamsSchema = Type.Object(
|
||||
{
|
||||
enabled: Type.Boolean(),
|
||||
phase: Type.Optional(Type.String()),
|
||||
},
|
||||
{ additionalProperties: false },
|
||||
);
|
||||
|
||||
export const ChannelsStatusParamsSchema = Type.Object(
|
||||
{
|
||||
probe: Type.Optional(Type.Boolean()),
|
||||
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
},
|
||||
{ additionalProperties: false },
|
||||
);
|
||||
|
||||
// Channel docking: channels.status is intentionally schema-light so new
|
||||
// channels can ship without protocol updates.
|
||||
export const ChannelAccountSnapshotSchema = Type.Object(
|
||||
{
|
||||
accountId: NonEmptyString,
|
||||
name: Type.Optional(Type.String()),
|
||||
enabled: Type.Optional(Type.Boolean()),
|
||||
configured: Type.Optional(Type.Boolean()),
|
||||
linked: Type.Optional(Type.Boolean()),
|
||||
running: Type.Optional(Type.Boolean()),
|
||||
connected: Type.Optional(Type.Boolean()),
|
||||
reconnectAttempts: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
lastConnectedAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
lastError: Type.Optional(Type.String()),
|
||||
lastStartAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
lastStopAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
lastInboundAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
lastOutboundAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
lastProbeAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
mode: Type.Optional(Type.String()),
|
||||
dmPolicy: Type.Optional(Type.String()),
|
||||
allowFrom: Type.Optional(Type.Array(Type.String())),
|
||||
tokenSource: Type.Optional(Type.String()),
|
||||
botTokenSource: Type.Optional(Type.String()),
|
||||
appTokenSource: Type.Optional(Type.String()),
|
||||
baseUrl: Type.Optional(Type.String()),
|
||||
allowUnmentionedGroups: Type.Optional(Type.Boolean()),
|
||||
cliPath: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
||||
dbPath: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
||||
port: Type.Optional(
|
||||
Type.Union([Type.Integer({ minimum: 0 }), Type.Null()]),
|
||||
),
|
||||
probe: Type.Optional(Type.Unknown()),
|
||||
audit: Type.Optional(Type.Unknown()),
|
||||
application: Type.Optional(Type.Unknown()),
|
||||
},
|
||||
{ additionalProperties: true },
|
||||
);
|
||||
|
||||
export const ChannelsStatusResultSchema = Type.Object(
|
||||
{
|
||||
ts: Type.Integer({ minimum: 0 }),
|
||||
channelOrder: Type.Array(NonEmptyString),
|
||||
channelLabels: Type.Record(NonEmptyString, NonEmptyString),
|
||||
channels: Type.Record(NonEmptyString, Type.Unknown()),
|
||||
channelAccounts: Type.Record(
|
||||
NonEmptyString,
|
||||
Type.Array(ChannelAccountSnapshotSchema),
|
||||
),
|
||||
channelDefaultAccountId: Type.Record(NonEmptyString, NonEmptyString),
|
||||
},
|
||||
{ additionalProperties: false },
|
||||
);
|
||||
|
||||
export const ChannelsLogoutParamsSchema = Type.Object(
|
||||
{
|
||||
channel: NonEmptyString,
|
||||
accountId: Type.Optional(Type.String()),
|
||||
},
|
||||
{ additionalProperties: false },
|
||||
);
|
||||
|
||||
export const WebLoginStartParamsSchema = Type.Object(
|
||||
{
|
||||
force: Type.Optional(Type.Boolean()),
|
||||
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
verbose: Type.Optional(Type.Boolean()),
|
||||
accountId: Type.Optional(Type.String()),
|
||||
},
|
||||
{ additionalProperties: false },
|
||||
);
|
||||
|
||||
export const WebLoginWaitParamsSchema = Type.Object(
|
||||
{
|
||||
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
||||
accountId: Type.Optional(Type.String()),
|
||||
},
|
||||
{ additionalProperties: false },
|
||||
);
|
||||
Reference in New Issue
Block a user