refactor(schema): simplify validation and OpenAPI generation (#2709)

This commit is contained in:
Hampus authored and GitHub committed 2026-09-11 23:24:26 +02:00
1 parent 4bc5593f9f
commit de1fd95a99
510 files changed
+29494 -36131

No files matched your search

@@ -1,6 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import {assign, getInitialSnapshot, type SnapshotFrom, setup, transition} from 'xstate';
import {assign, initialTransition, type SnapshotFrom, setup, transition} from 'xstate';
export interface ChannelIncomingMessageInput {
hasNonceMatch: boolean;
@@ -111,7 +111,7 @@ export type ChannelIncomingMessageSnapshot = SnapshotFrom<typeof channelIncoming
export function createChannelIncomingMessageSnapshot(
input: ChannelIncomingMessageInput,
): ChannelIncomingMessageSnapshot {
return getInitialSnapshot(channelIncomingMessageMachine, input);
return initialTransition(channelIncomingMessageMachine, input)[0];
}
export function transitionChannelIncomingMessageSnapshot(
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import {compare as compareSnowflakes} from '@fluxer/snowflake/src/SnowflakeUtils';
import {assign, getInitialSnapshot, type SnapshotFrom, setup, transition} from 'xstate';
import {assign, initialTransition, type SnapshotFrom, setup, transition} from 'xstate';
export interface ChannelMessagesLoadInput {
isBefore: boolean;
@@ -124,7 +124,7 @@ export const channelMessagesLoadMachine = setup({
export type ChannelMessagesLoadSnapshot = SnapshotFrom<typeof channelMessagesLoadMachine>;
export function createChannelMessagesLoadSnapshot(input: ChannelMessagesLoadInput): ChannelMessagesLoadSnapshot {
return getInitialSnapshot(channelMessagesLoadMachine, input);
return initialTransition(channelMessagesLoadMachine, input)[0];
}
export function transitionChannelMessagesLoadSnapshot(
@@ -247,7 +247,7 @@ export const channelMessagesWindowMachine = setup({
export type ChannelMessagesWindowSnapshot = SnapshotFrom<typeof channelMessagesWindowMachine>;
export function createChannelMessagesWindowSnapshot(input: ChannelMessagesWindowInput): ChannelMessagesWindowSnapshot {
return getInitialSnapshot(channelMessagesWindowMachine, input);
return initialTransition(channelMessagesWindowMachine, input)[0];
}
export function transitionChannelMessagesWindowSnapshot(
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import {assign, getInitialSnapshot, type SnapshotFrom, setup, transition} from 'xstate';
import {assign, initialTransition, type SnapshotFrom, setup, transition} from 'xstate';
export type MentionType = '@everyone' | '@here' | 'role';
@@ -121,7 +121,7 @@ export const mentionConfirmationStateMachine = setup({
});
export function createMentionConfirmationSnapshot(): MentionConfirmationSnapshot {
return getInitialSnapshot(mentionConfirmationStateMachine);
return initialTransition(mentionConfirmationStateMachine)[0];
}
export function transitionMentionConfirmationSnapshot(
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import {assign, getInitialSnapshot, type SnapshotFrom, setup, transition} from 'xstate';
import {assign, initialTransition, type SnapshotFrom, setup, transition} from 'xstate';
export interface MessageQueuePayloadRouteInput {
payloadType?: string;
@@ -275,7 +275,7 @@ export type MessageLocalSendRateLimitSnapshot = SnapshotFrom<typeof messageLocal
export function createMessageQueuePayloadRouteSnapshot(
input: MessageQueuePayloadRouteInput,
): MessageQueuePayloadRouteSnapshot {
return getInitialSnapshot(messageQueuePayloadRouteMachine, input);
return initialTransition(messageQueuePayloadRouteMachine, input)[0];
}
export function transitionMessageQueuePayloadRouteSnapshot(
@@ -307,7 +307,7 @@ export function resolveMessageQueuePayloadRouteDecision(
export function createMessageQueueSendExecutionSnapshot(
input: MessageQueueSendExecutionInput,
): MessageQueueSendExecutionSnapshot {
return getInitialSnapshot(messageQueueSendExecutionMachine, input);
return initialTransition(messageQueueSendExecutionMachine, input)[0];
}
export function transitionMessageQueueSendExecutionSnapshot(
@@ -337,7 +337,7 @@ export function resolveMessageQueueSendExecutionDecision(
export function createMessageQueueRequestOutcomeSnapshot(
input: MessageQueueRequestOutcomeInput,
): MessageQueueRequestOutcomeSnapshot {
return getInitialSnapshot(messageQueueRequestOutcomeMachine, input);
return initialTransition(messageQueueRequestOutcomeMachine, input)[0];
}
export function transitionMessageQueueRequestOutcomeSnapshot(
@@ -369,7 +369,7 @@ export function resolveMessageQueueRequestOutcomeDecision(
export function createMessageLocalSendRateLimitSnapshot(
input: MessageLocalSendRateLimitInput,
): MessageLocalSendRateLimitSnapshot {
return getInitialSnapshot(messageLocalSendRateLimitMachine, input);
return initialTransition(messageLocalSendRateLimitMachine, input)[0];
}
export function transitionMessageLocalSendRateLimitSnapshot(
@@ -2,7 +2,7 @@
import type {ReactionEmoji} from '@app/features/messaging/utils/ReactionUtils';
import type {MessageReaction} from '@fluxer/schema/src/domains/message/MessageResponseSchemas';
import {assign, getInitialSnapshot, type SnapshotFrom, setup, transition} from 'xstate';
import {assign, initialTransition, type SnapshotFrom, setup, transition} from 'xstate';
export interface ReactionRecord {
emoji: ReactionEmoji;
@@ -366,7 +366,7 @@ export function createReactionMachineSnapshot(
map: ReactionMap = emptyMap(),
currentUserId?: string | null,
): ReactionMachineSnapshot {
return getInitialSnapshot(reactionStateMachine, {map, currentUserId});
return initialTransition(reactionStateMachine, {map, currentUserId})[0];
}
export function transitionReactionSnapshot(
@@ -2,7 +2,7 @@
import {User} from '@app/features/user/models/User';
import type {UserPartial} from '@fluxer/schema/src/domains/user/UserResponseSchemas';
import {assign, getInitialSnapshot, type SnapshotFrom, setup, transition} from 'xstate';
import {assign, initialTransition, type SnapshotFrom, setup, transition} from 'xstate';
export type FetchStatus = 'idle' | 'pending' | 'success' | 'error';
@@ -336,7 +336,7 @@ export const reactionUsersStateMachine = setup({
export type ReactionUsersMachineSnapshot = SnapshotFrom<typeof reactionUsersStateMachine>;
export function createReactionUsersSnapshot(requestSerial = 0): ReactionUsersMachineSnapshot {
return getInitialSnapshot(reactionUsersStateMachine, {requestSerial});
return initialTransition(reactionUsersStateMachine, {requestSerial})[0];
}
export function transitionReactionUsersSnapshot(