@anvil-js/client 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schemas/common.ts","../src/schemas/auth.ts","../src/schemas/builds.ts","../src/schemas/licenses.ts","../src/schemas/social.ts","../src/schemas/cosmetics.ts","../src/schemas/chat.ts","../src/schemas/media.ts","../src/router.ts"],"names":["z","initTRPC","TRPCError"],"mappings":"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","file":"server.cjs","sourcesContent":["import { z } from 'zod';\n\n// UUID v4\nexport const UUIDSchema = z.string().uuid();\nexport type UUID = z.infer<typeof UUIDSchema>;\n\n// ISO 8601 date string\nexport const ISODateSchema = z.string().datetime({ offset: true });\nexport type ISODate = z.infer<typeof ISODateSchema>;\n\n// Architecture\nexport const ArchSchema = z.enum(['x64', 'arm64', 'x86']);\nexport type Arch = z.infer<typeof ArchSchema>;\n\n// Platform\nexport const PlatformSchema = z.enum(['windows', 'macos', 'linux']);\nexport type Platform = z.infer<typeof PlatformSchema>;\n\n// Minecraft loader\nexport const LoaderTypeSchema = z.enum(['vanilla', 'fabric', 'forge', 'neoforge', 'quilt']);\nexport type LoaderType = z.infer<typeof LoaderTypeSchema>;\n\n// Localized string (i18n)\nexport const LocalizedStringSchema = z.record(z.string(), z.string());\nexport type LocalizedString = z.infer<typeof LocalizedStringSchema>;\n\n// Generic error envelope\nexport const TRPCErrorSchema = z.object({\n code: z.enum([\n 'BAD_REQUEST',\n 'UNAUTHORIZED',\n 'FORBIDDEN',\n 'NOT_FOUND',\n 'CONFLICT',\n 'TOO_MANY_REQUESTS',\n 'INTERNAL_SERVER_ERROR',\n ]),\n message: z.string(),\n});\nexport type TRPCError = z.infer<typeof TRPCErrorSchema>;\n\n// Pagination\nexport const PaginationInputSchema = z.object({\n page: z.number().int().min(1).default(1),\n pageSize: z.number().int().min(1).max(200).default(50),\n});\nexport type PaginationInput = z.infer<typeof PaginationInputSchema>;\n\nexport const PaginatedSchema = <T extends z.ZodTypeAny>(item: T) =>\n z.object({\n items: z.array(item),\n total: z.number().int().min(0),\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n });\n","// Auth-related Zod schemas.\n// See docs/anvil-api-spec.md §5 for the full procedure surface.\n\nimport { z } from 'zod';\nimport { UUIDSchema, ISODateSchema } from './common';\n\nexport const UserSummarySchema = z.object({\n uuid: UUIDSchema,\n email: z.string().email(),\n username: z.string().min(1).max(64),\n displayName: z.string().min(1).max(128),\n avatarUrl: z.string().url().nullable(),\n role: z.enum(['USER', 'MODERATOR', 'ADMIN']).default('USER'),\n});\nexport type UserSummary = z.infer<typeof UserSummarySchema>;\n\nexport const SessionSchema = z.object({\n anvil: z.object({\n user: UserSummarySchema,\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresAt: ISODateSchema,\n }),\n mojang: z\n .object({\n uuid: UUIDSchema,\n username: z.string(),\n accessToken: z.string(),\n expiresAt: ISODateSchema,\n })\n .nullable(),\n});\nexport type Session = z.infer<typeof SessionSchema>;\n\n// Inputs\nexport const LoginInputSchema = z.object({\n email: z.string().email(),\n password: z.string().min(8).max(128),\n});\nexport type LoginInput = z.infer<typeof LoginInputSchema>;\n\nexport const RegisterInputSchema = z.object({\n email: z.string().email(),\n username: z\n .string()\n .min(3)\n .max(64)\n .regex(/^[a-zA-Z0-9_]+$/),\n password: z.string().min(8).max(128),\n});\nexport type RegisterInput = z.infer<typeof RegisterInputSchema>;\n\nexport const RefreshInputSchema = z.object({\n refreshToken: z.string().min(1),\n});\nexport type RefreshInput = z.infer<typeof RefreshInputSchema>;\n\nexport const ForgotPasswordInputSchema = z.object({\n email: z.string().email(),\n});\nexport type ForgotPasswordInput = z.infer<typeof ForgotPasswordInputSchema>;\n\nexport const ResetPasswordInputSchema = z.object({\n token: z.string().min(1),\n newPassword: z.string().min(8).max(128),\n});\nexport type ResetPasswordInput = z.infer<typeof ResetPasswordInputSchema>;\n\nexport const ValidateInputSchema = z.object({\n token: z.string().min(1),\n});\nexport type ValidateInput = z.infer<typeof ValidateInputSchema>;\n","// Build-related Zod schemas.\n// See docs/anvil-api-spec.md §6 for the full procedure surface.\n\nimport { z } from 'zod';\nimport {\n UUIDSchema,\n ISODateSchema,\n ArchSchema,\n LoaderTypeSchema,\n LocalizedStringSchema,\n} from './common';\n\nexport const BuildSummarySchema = z.object({\n id: UUIDSchema,\n slug: z.string(),\n name: z.string(),\n shortDescription: z.string(),\n iconUrl: z.string().url().nullable(),\n mcVersions: z.array(z.string()),\n loaders: z.array(LoaderTypeSchema),\n visibility: z.enum(['public', 'private', 'unlisted']),\n pricing: z.discriminatedUnion('model', [\n z.object({ model: z.literal('free') }),\n z.object({\n model: z.literal('paid'),\n priceCents: z.number().int().nonnegative(),\n currency: z.string(),\n }),\n z.object({\n model: z.literal('subscription'),\n tiers: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n priceCents: z.number().int().nonnegative(),\n interval: z.enum(['month', 'year']),\n }),\n ),\n }),\n ]),\n stats: z.object({\n downloads: z.number().int().nonnegative(),\n favorites: z.number().int().nonnegative(),\n updatedAt: ISODateSchema,\n }),\n // Provider source -- UI uses this to badge cards (Modrinth / Anvil).\n source: z.enum(['modrinth', 'anvil']).default('anvil'),\n});\nexport type BuildSummary = z.infer<typeof BuildSummarySchema>;\n\nexport const BuildFileSchema = z.object({\n url: z.string().url(),\n sha256: z.string().regex(/^[a-f0-9]{64}$/),\n sizeBytes: z.number().int().nonnegative(),\n primary: z.boolean(),\n});\nexport type BuildFile = z.infer<typeof BuildFileSchema>;\n\nexport const BuildVersionSchema = z.object({\n id: UUIDSchema,\n buildId: UUIDSchema,\n name: z.string(),\n mcVersion: z.string(),\n loader: LoaderTypeSchema,\n loaderVersion: z.string(),\n files: z.array(BuildFileSchema),\n dependencies: z.array(\n z.object({\n kind: z.enum(['required', 'optional', 'incompatible', 'embedded']),\n projectId: z.string(),\n versionId: z.string().optional(),\n }),\n ),\n changelog: z.string().optional(),\n publishedAt: ISODateSchema,\n});\nexport type BuildVersion = z.infer<typeof BuildVersionSchema>;\n\nexport const BuildSchema = BuildSummarySchema.extend({\n versions: z.array(BuildVersionSchema),\n description: z.string().optional(),\n longDescription: LocalizedStringSchema.optional(),\n});\nexport type Build = z.infer<typeof BuildSchema>;\n\n// Inputs\nexport const ListBuildsInputSchema = z.object({\n search: z.string().optional(),\n tags: z.array(z.string()).optional(),\n mcVersions: z.array(z.string()).optional(),\n loaders: z.array(LoaderTypeSchema).optional(),\n visibility: z.array(z.enum(['public', 'private', 'unlisted'])).optional(),\n source: z.array(z.enum(['modrinth', 'anvil'])).optional(),\n page: z.number().int().min(1).default(1),\n pageSize: z.number().int().min(1).max(100).default(24),\n sort: z.enum(['popular', 'recent', 'name']).default('popular'),\n});\nexport type ListBuildsInput = z.infer<typeof ListBuildsInputSchema>;\n\nexport const GetBuildInputSchema = z.object({\n idOrSlug: z.string().min(1),\n});\nexport type GetBuildInput = z.infer<typeof GetBuildInputSchema>;\n\nexport const RequestDownloadInputSchema = z.object({\n versionId: UUIDSchema,\n clientArch: ArchSchema.optional(),\n});\nexport type RequestDownloadInput = z.infer<typeof RequestDownloadInputSchema>;\n\nexport const RequestDownloadOutputSchema = z.object({\n installId: UUIDSchema,\n downloadUrl: z.string().url(),\n expiresAt: ISODateSchema,\n sha256: z.string(),\n sizeBytes: z.number().int().nonnegative(),\n});\nexport type RequestDownloadOutput = z.infer<typeof RequestDownloadInputSchema>;\n","// License-related Zod schemas.\n// See docs/anvil-api-spec.md §9 for the full procedure surface.\n\nimport { z } from 'zod';\nimport { UUIDSchema, ISODateSchema } from './common';\n\nexport const LicenseSchema = z.object({\n id: UUIDSchema,\n buildId: UUIDSchema,\n buildName: z.string(),\n status: z.enum(['active', 'expired', 'revoked']),\n source: z.enum(['purchase', 'subscription', 'gift', 'promo', 'dev_grant']),\n grantedAt: ISODateSchema,\n expiresAt: ISODateSchema.nullable(),\n});\nexport type License = z.infer<typeof LicenseSchema>;\n\nexport const ListLicensesInputSchema = z.object({\n buildId: UUIDSchema.optional(),\n status: z.enum(['active', 'expired', 'revoked']).optional(),\n});\nexport type ListLicensesInput = z.infer<typeof ListLicensesInputSchema>;\n\nexport const CheckLicenseInputSchema = z.object({\n buildId: UUIDSchema,\n});\nexport type CheckLicenseInput = z.infer<typeof CheckLicenseInputSchema>;\n\nexport const CheckLicenseOutputSchema = z.object({\n hasAccess: z.boolean(),\n license: LicenseSchema.optional(),\n reason: z.enum(['no_license', 'expired', 'revoked', 'region_locked']).optional(),\n});\nexport type CheckLicenseOutput = z.infer<typeof CheckLicenseOutputSchema>;\n","// Social & Presence (Essential Mod compat) -- see docs/anvil-api-spec.md §12.\n//\n// Source-of-truth: spec §12. Procedure names mirror the wire format\n// (relationships.create, relationships.list, presence.get, ...).\n// The schema follows essentialws semantics (FRIENDS / BLOCKED /\n// PENDING / VERIFIED / MUTUAL) where possible so a future\n// essentialws -> NestJS port stays mechanical.\n\nimport { z } from 'zod';\nimport { UUIDSchema, ISODateSchema } from './common';\nimport { UserSummarySchema } from './auth';\n\n// ---- Enums ----\n\nexport const RelationshipTypeSchema = z.enum(['FRIENDS', 'BLOCKED', 'NEUTRAL']);\nexport type RelationshipType = z.infer<typeof RelationshipTypeSchema>;\n\n// PENDING (request awaiting the other side) -> VERIFIED (mutual).\n// For BLOCKED the status is always VERIFIED (the block is in effect).\nexport const RelationshipStatusSchema = z.enum(['PENDING', 'VERIFIED']);\nexport type RelationshipStatus = z.infer<typeof RelationshipStatusSchema>;\n\n// Who initiated the request / from whose perspective the row is rendered.\n// MUTUAL is the steady state for verified FRIENDS.\nexport const RelationshipDirectionSchema = z.enum(['INCOMING', 'OUTGOING', 'MUTUAL']);\nexport type RelationshipDirection = z.infer<typeof RelationshipDirectionSchema>;\n\n// INCOMING_PENDING list = requests the current user must accept / decline.\n// OUTGOING_PENDING list = requests the current user has sent (cancellable).\n// FRIENDS / BLOCKED return only VERIFIED rows.\nexport const RelationshipsListKindSchema = z.enum([\n 'FRIENDS',\n 'INCOMING_PENDING',\n 'OUTGOING_PENDING',\n 'BLOCKED',\n]);\nexport type RelationshipsListKind = z.infer<typeof RelationshipsListKindSchema>;\n\n// Presence status (essentialws names)\nexport const PresenceStatusSchema = z.enum(['ONLINE', 'OFFLINE', 'AWAY', 'BUSY']);\nexport type PresenceStatus = z.infer<typeof PresenceStatusSchema>;\n\n// ---- Relationship ----\n\nexport const RelationshipSchema = z.object({\n id: UUIDSchema,\n type: RelationshipTypeSchema,\n status: RelationshipStatusSchema,\n // 'MUTUAL' for verified friends, 'INCOMING' for pending requests\n // sent to the current user, 'OUTGOING' for pending requests the\n // current user sent.\n direction: RelationshipDirectionSchema,\n // The other side of the relationship.\n otherUser: UserSummarySchema,\n since: ISODateSchema,\n // uuid of the user who sent the original request (FRIENDS only;\n // for BLOCKED this is the user who created the block, which may\n // be either side).\n initiatorUuid: UUIDSchema,\n});\nexport type Relationship = z.infer<typeof RelationshipSchema>;\n\n// ---- Trusted Host ----\n\nexport const TrustedHostSchema = z.object({\n id: UUIDSchema,\n name: z.string().min(1).max(64),\n domains: z.array(z.string().min(1).max(255)).min(1).max(32),\n addedAt: ISODateSchema,\n});\nexport type TrustedHost = z.infer<typeof TrustedHostSchema>;\n\n// ---- Presence ----\n\nexport const UserActivitySchema = z.object({\n // 'playing <buildId>' / 'building' / 'browsing' / 'afk'\n type: z.string(),\n metadata: z.record(z.string(), z.string()),\n});\nexport type UserActivity = z.infer<typeof UserActivitySchema>;\n\nexport const PresenceSchema = z.object({\n uuid: UUIDSchema,\n status: PresenceStatusSchema,\n lastOnline: ISODateSchema,\n currentActivity: UserActivitySchema.optional(),\n});\nexport type Presence = z.infer<typeof PresenceSchema>;\n\n// ---- Community rules ----\n\nexport const LocalizedRuleSchema = z.object({\n locale: z.string(),\n title: z.string(),\n body: z.string(),\n});\nexport type LocalizedRule = z.infer<typeof LocalizedRuleSchema>;\n\nexport const CommunityRulesStatusSchema = z.object({\n accepted: z.boolean(),\n version: z.string(),\n rules: z.array(LocalizedRuleSchema),\n updatedAt: ISODateSchema,\n});\nexport type CommunityRulesStatus = z.infer<typeof CommunityRulesStatusSchema>;\n\n// ---- Suspension ----\n\nexport const SuspensionStatusSchema = z.object({\n suspended: z.boolean(),\n reason: z.string().optional(),\n expiresAt: ISODateSchema.optional(),\n});\nexport type SuspensionStatus = z.infer<typeof SuspensionStatusSchema>;\n\n// ---- Inputs ----\n\nexport const CreateRelationshipInputSchema = z.object({\n targetUuid: UUIDSchema,\n type: z.enum(['FRIENDS', 'BLOCKED', 'NEUTRAL']),\n});\nexport type CreateRelationshipInput = z.infer<typeof CreateRelationshipInputSchema>;\n\nexport const DeleteRelationshipInputSchema = z.object({\n targetUuid: UUIDSchema,\n type: z.enum(['FRIENDS', 'BLOCKED', 'NEUTRAL']),\n});\nexport type DeleteRelationshipInput = z.infer<typeof DeleteRelationshipInputSchema>;\n\nexport const ListRelationshipsInputSchema = z.object({\n type: RelationshipsListKindSchema.optional(),\n});\nexport type ListRelationshipsInput = z.infer<typeof ListRelationshipsInputSchema>;\n\nexport const AcceptRequestInputSchema = z.object({\n fromUuid: UUIDSchema,\n});\nexport type AcceptRequestInput = z.infer<typeof AcceptRequestInputSchema>;\n\nexport const CancelRequestInputSchema = z.object({\n toUuid: UUIDSchema,\n});\nexport type CancelRequestInput = z.infer<typeof CancelRequestInputSchema>;\n\nexport const LookupByNameInputSchema = z.object({\n username: z\n .string()\n .min(3)\n .max(64)\n .regex(/^[a-zA-Z0-9_]+$/),\n});\nexport type LookupByNameInput = z.infer<typeof LookupByNameInputSchema>;\n\nexport const ReportActivityInputSchema = z.object({\n type: z.string().min(1).max(64),\n metadata: z.record(z.string(), z.string()),\n});\nexport type ReportActivityInput = z.infer<typeof ReportActivityInputSchema>;\n\nexport const InviteToServerInputSchema = z.object({\n targetUuid: UUIDSchema,\n address: z.string().min(1).max(512),\n});\nexport type InviteToServerInput = z.infer<typeof InviteToServerInputSchema>;\n\nexport const CreateTrustedHostInputSchema = z.object({\n name: z.string().min(1).max(64),\n domains: z.array(z.string().min(1).max(255)).min(1).max(32),\n});\nexport type CreateTrustedHostInput = z.infer<typeof CreateTrustedHostInputSchema>;\n\nexport const DeleteTrustedHostInputSchema = z.object({\n id: UUIDSchema,\n});\nexport type DeleteTrustedHostInput = z.infer<typeof DeleteTrustedHostInputSchema>;\n\n// ---- Lookup output ----\n\nexport const LookupByNameOutputSchema = z.object({\n user: z\n .object({\n uuid: UUIDSchema,\n username: z.string(),\n displayName: z.string(),\n })\n .nullable(),\n nameMap: z.record(UUIDSchema, z.string()),\n});\nexport type LookupByNameOutput = z.infer<typeof LookupByNameOutputSchema>;\n\n// ---- Helpers ----\n\n/**\n * Stable label for the relationship kind (used by the UI for tabs / filters).\n */\nexport const RELATIONSHIP_LABELS: Record<RelationshipsListKind, string> = {\n FRIENDS: 'Friends',\n INCOMING_PENDING: 'Incoming',\n OUTGOING_PENDING: 'Outgoing',\n BLOCKED: 'Blocked',\n};\n\nexport const PRESENCE_COLORS: Record<PresenceStatus, string> = {\n ONLINE: '#10b981', // emerald-500\n AWAY: '#f59e0b', // amber-500\n BUSY: '#ef4444', // red-500\n OFFLINE: '#6b7280', // gray-500\n};\n","// Cosmetics, Outfits, Emote Wheels, Skins (Essential Mod compat).\n// See docs/anvil-api-spec.md §13 - §16.\n\nimport { z } from 'zod';\nimport { UUIDSchema, ISODateSchema, LocalizedStringSchema } from './common';\n\n// =====================================================================\n// Cosmetics\n// =====================================================================\n\nexport const CosmeticTypeSchema = z.enum([\n 'hat',\n 'body',\n 'back',\n 'face',\n 'hand',\n 'feet',\n 'particle',\n 'emote',\n]);\nexport type CosmeticType = z.infer<typeof CosmeticTypeSchema>;\n\nexport const CosmeticRaritySchema = z.enum(['common', 'uncommon', 'rare', 'epic', 'legendary']);\nexport type CosmeticRarity = z.infer<typeof CosmeticRaritySchema>;\n\nexport const CosmeticSchema = z.object({\n id: UUIDSchema,\n type: CosmeticTypeSchema,\n rarity: CosmeticRaritySchema,\n name: LocalizedStringSchema,\n description: LocalizedStringSchema.optional(),\n iconUrl: z.string().url().nullable(),\n modelUrl: z.string().url().nullable(),\n owned: z.boolean().default(false),\n equipped: z.boolean().default(false),\n});\nexport type Cosmetic = z.infer<typeof CosmeticSchema>;\n\n// =====================================================================\n// Outfits\n// =====================================================================\n\nexport const OutfitSlotSchema = z.object({\n type: CosmeticTypeSchema,\n cosmeticId: UUIDSchema.nullable(),\n});\nexport type OutfitSlot = z.infer<typeof OutfitSlotSchema>;\n\nexport const OutfitSchema = z.object({\n id: UUIDSchema,\n name: z.string().min(1).max(64),\n slots: z.array(OutfitSlotSchema).max(8),\n createdAt: ISODateSchema,\n updatedAt: ISODateSchema,\n});\nexport type Outfit = z.infer<typeof OutfitSchema>;\n\n// =====================================================================\n// Emote Wheels\n// =====================================================================\n\nexport const EmoteWheelSlotSchema = z.object({\n position: z.number().int().min(0).max(7),\n emoteId: UUIDSchema.nullable(),\n});\nexport type EmoteWheelSlot = z.infer<typeof EmoteWheelSlotSchema>;\n\nexport const EmoteWheelSchema = z.object({\n id: UUIDSchema,\n name: z.string().min(1).max(64),\n slots: z.array(EmoteWheelSlotSchema).length(8),\n createdAt: ISODateSchema,\n});\nexport type EmoteWheel = z.infer<typeof EmoteWheelSchema>;\n\n// =====================================================================\n// Skins\n// =====================================================================\n\nexport const SkinVariantSchema = z.enum(['classic', 'slim']);\nexport type SkinVariant = z.infer<typeof SkinVariantSchema>;\n\nexport const SkinSchema = z.object({\n id: UUIDSchema,\n name: z.string().min(1).max(64),\n variant: SkinVariantSchema,\n textureUrl: z.string().url(),\n sha256: z.string().regex(/^[a-f0-9]{64}$/),\n sizeBytes: z.number().int().nonnegative(),\n source: z.enum(['uploaded', 'mojang']),\n active: z.boolean().default(false),\n createdAt: ISODateSchema,\n});\nexport type Skin = z.infer<typeof SkinSchema>;\n\n// =====================================================================\n// Inputs\n// =====================================================================\n\nexport const EquipCosmeticInputSchema = z.object({\n cosmeticId: UUIDSchema,\n equipped: z.boolean(),\n});\nexport type EquipCosmeticInput = z.infer<typeof EquipCosmeticInputSchema>;\n\nexport const CreateOutfitInputSchema = z.object({\n name: z.string().min(1).max(64),\n slots: z.array(OutfitSlotSchema).max(8),\n});\nexport type CreateOutfitInput = z.infer<typeof CreateOutfitInputSchema>;\n\nexport const UpdateOutfitInputSchema = z.object({\n id: UUIDSchema,\n name: z.string().min(1).max(64).optional(),\n slots: z.array(OutfitSlotSchema).max(8).optional(),\n});\nexport type UpdateOutfitInput = z.infer<typeof UpdateOutfitInputSchema>;\n\nexport const DeleteOutfitInputSchema = z.object({ id: UUIDSchema });\nexport type DeleteOutfitInput = z.infer<typeof DeleteOutfitInputSchema>;\n\nexport const SaveEmoteWheelInputSchema = z.object({\n id: UUIDSchema.nullable(),\n name: z.string().min(1).max(64),\n slots: z.array(EmoteWheelSlotSchema).length(8),\n});\nexport type SaveEmoteWheelInput = z.infer<typeof SaveEmoteWheelInputSchema>;\n\nexport const UploadSkinInputSchema = z.object({\n name: z.string().min(1).max(64),\n variant: SkinVariantSchema,\n // base64 of the PNG bytes\n data: z.string().min(1),\n});\nexport type UploadSkinInput = z.infer<typeof UploadSkinInputSchema>;\n\nexport const SetActiveSkinInputSchema = z.object({ id: UUIDSchema });\nexport type SetActiveSkinInput = z.infer<typeof SetActiveSkinInputSchema>;\n\n// =====================================================================\n// Helpers\n// =====================================================================\n\nexport const COSMETIC_TYPE_LABELS: Record<CosmeticType, string> = {\n hat: 'Hat',\n body: 'Body',\n back: 'Back',\n face: 'Face',\n hand: 'Hand',\n feet: 'Feet',\n particle: 'Particles',\n emote: 'Emote',\n};\n\nexport const RARITY_COLORS: Record<CosmeticRarity, string> = {\n common: '#9ca3af',\n uncommon: '#10b981',\n rare: '#3b82f6',\n epic: '#a855f7',\n legendary: '#f59e0b',\n};\n","// Chat (DM / Group / Announcement channels). Essential Mod compat.\n// See docs/anvil-api-spec.md §17.\n\nimport { z } from 'zod';\nimport { UUIDSchema, ISODateSchema } from './common';\nimport { UserSummarySchema } from './auth';\n\nexport const ChannelKindSchema = z.enum(['DM', 'GROUP', 'ANNOUNCEMENT']);\nexport type ChannelKind = z.infer<typeof ChannelKindSchema>;\n\nexport const ChatMemberSchema = z.object({\n user: UserSummarySchema,\n role: z.enum(['owner', 'admin', 'member']),\n joinedAt: ISODateSchema,\n lastReadAt: ISODateSchema.nullable(),\n muted: z.boolean().default(false),\n});\nexport type ChatMember = z.infer<typeof ChatMemberSchema>;\n\nexport const ChannelSchema = z.object({\n id: UUIDSchema,\n kind: ChannelKindSchema,\n name: z.string().nullable(), // null for DMs\n members: z.array(ChatMemberSchema),\n createdAt: ISODateSchema,\n lastMessageAt: ISODateSchema.nullable(),\n unreadCount: z.number().int().nonnegative().default(0),\n});\nexport type Channel = z.infer<typeof ChannelSchema>;\n\nexport const MessageSchema = z.object({\n id: UUIDSchema,\n channelId: UUIDSchema,\n authorUuid: UUIDSchema,\n authorDisplayName: z.string(),\n body: z.string(),\n // Markdown can be client-rendered; for the scaffold we ship it raw.\n bodyMarkdown: z.string().optional(),\n createdAt: ISODateSchema,\n editedAt: ISODateSchema.nullable(),\n deletedAt: ISODateSchema.nullable(),\n // Optional references\n replyTo: UUIDSchema.nullable().optional(),\n});\nexport type Message = z.infer<typeof MessageSchema>;\n\n// ---- Inputs ----\n\nexport const ListChannelsInputSchema = z.object({\n kind: ChannelKindSchema.optional(),\n});\nexport type ListChannelsInput = z.infer<typeof ListChannelsInputSchema>;\n\nexport const CreateDMInputSchema = z.object({\n otherUserUuid: UUIDSchema,\n});\nexport type CreateDMInput = z.infer<typeof CreateDMInputSchema>;\n\nexport const CreateGroupInputSchema = z.object({\n name: z.string().min(1).max(64),\n memberUuids: z.array(UUIDSchema).min(1).max(64),\n});\nexport type CreateGroupInput = z.infer<typeof CreateGroupInputSchema>;\n\nexport const ListMessagesInputSchema = z.object({\n channelId: UUIDSchema,\n before: ISODateSchema.optional(),\n limit: z.number().int().min(1).max(200).default(50),\n});\nexport type ListMessagesInput = z.infer<typeof ListMessagesInputSchema>;\n\nexport const SendMessageInputSchema = z.object({\n channelId: UUIDSchema,\n body: z.string().min(1).max(4000),\n replyTo: UUIDSchema.optional(),\n});\nexport type SendMessageInput = z.infer<typeof SendMessageInputSchema>;\n\nexport const EditMessageInputSchema = z.object({\n id: UUIDSchema,\n body: z.string().min(1).max(4000),\n});\nexport type EditMessageInput = z.infer<typeof EditMessageInputSchema>;\n\nexport const DeleteMessageInputSchema = z.object({\n id: UUIDSchema,\n});\nexport type DeleteMessageInput = z.infer<typeof DeleteMessageInputSchema>;\n\nexport const MarkReadInputSchema = z.object({\n channelId: UUIDSchema,\n messageId: UUIDSchema,\n});\nexport type MarkReadInput = z.infer<typeof MarkReadInputSchema>;\n\nexport const ReportMessageInputSchema = z.object({\n messageId: UUIDSchema,\n reason: z.enum(['spam', 'harassment', 'illegal', 'other']),\n note: z.string().max(500).optional(),\n});\nexport type ReportMessageInput = z.infer<typeof ReportMessageInputSchema>;\n\nexport const ChannelReportsInputSchema = z.object({\n channelId: UUIDSchema,\n start: ISODateSchema.optional(),\n end: ISODateSchema.optional(),\n});\nexport type ChannelReportsInput = z.infer<typeof ChannelReportsInputSchema>;\n\n// ---- Helpers ----\n\nexport const CHANNEL_KIND_LABELS: Record<ChannelKind, string> = {\n DM: 'Direct messages',\n GROUP: 'Groups',\n ANNOUNCEMENT: 'Announcements',\n};\n","// Media (gallery), Multiplayer (signaling), UPnP / SPS, Discovery, System.\n// See docs/anvil-api-spec.md §18 - §22.\n\nimport { z } from 'zod';\nimport { UUIDSchema, ISODateSchema, ArchSchema, PlatformSchema, LoaderTypeSchema } from './common';\n\n// =====================================================================\n// Media\n// =====================================================================\n\nexport const MediaKindSchema = z.enum(['screenshot', 'video', 'world', 'skin']);\nexport type MediaKind = z.infer<typeof MediaKindSchema>;\n\nexport const MediaItemSchema = z.object({\n id: UUIDSchema,\n kind: MediaKindSchema,\n url: z.string().url(),\n thumbnailUrl: z.string().url().nullable(),\n sha256: z.string().regex(/^[a-f0-9]{64}$/),\n sizeBytes: z.number().int().nonnegative(),\n width: z.number().int().positive().optional(),\n height: z.number().int().positive().optional(),\n durationSec: z.number().int().nonnegative().optional(),\n createdAt: ISODateSchema,\n});\nexport type MediaItem = z.infer<typeof MediaItemSchema>;\n\nexport const ListMediaInputSchema = z.object({\n kind: MediaKindSchema.optional(),\n limit: z.number().int().min(1).max(200).default(50),\n offset: z.number().int().min(0).default(0),\n});\nexport type ListMediaInput = z.infer<typeof ListMediaInputSchema>;\n\nexport const UploadMediaInputSchema = z.object({\n kind: MediaKindSchema,\n // base64 of the file bytes\n data: z.string().min(1),\n filename: z.string().min(1).max(255),\n width: z.number().int().positive().optional(),\n height: z.number().int().positive().optional(),\n});\nexport type UploadMediaInput = z.infer<typeof UploadMediaInputSchema>;\n\nexport const DeleteMediaInputSchema = z.object({ id: UUIDSchema });\nexport type DeleteMediaInput = z.infer<typeof DeleteMediaInputSchema>;\n\n// =====================================================================\n// Multiplayer signaling\n// =====================================================================\n\nexport const SignalingKindSchema = z.enum(['offer', 'answer', 'candidate']);\nexport type SignalingKind = z.infer<typeof SignalingKindSchema>;\n\nexport const SignalingMessageSchema = z.object({\n id: UUIDSchema,\n kind: SignalingKindSchema,\n fromUuid: UUIDSchema,\n toUuid: UUIDSchema,\n payload: z.string(), // JSON-encoded SDP / ICE\n createdAt: ISODateSchema,\n});\nexport type SignalingMessage = z.infer<typeof SignalingMessageSchema>;\n\nexport const SendSignalingInputSchema = z.object({\n toUuid: UUIDSchema,\n kind: SignalingKindSchema,\n payload: z.string(),\n});\nexport type SendSignalingInput = z.infer<typeof SendSignalingInputSchema>;\n\nexport const ListSignalingInputSchema = z.object({\n fromUuid: UUIDSchema.optional(),\n since: ISODateSchema.optional(),\n});\n\n// =====================================================================\n// UPnP / SPS (hosted worlds)\n// =====================================================================\n\nexport const UpnpSessionStatusSchema = z.enum(['pending', 'active', 'closed', 'error']);\nexport type UpnpSessionStatus = z.infer<typeof UpnpSessionStatusSchema>;\n\nexport const UpnpSessionSchema = z.object({\n id: UUIDSchema,\n ownerUuid: UUIDSchema,\n ownerDisplayName: z.string(),\n publicAddress: z.string(),\n publicPort: z.number().int().min(1).max(65535),\n localAddress: z.string(),\n localPort: z.number().int().min(1).max(65535),\n status: UpnpSessionStatusSchema,\n createdAt: ISODateSchema,\n closedAt: ISODateSchema.nullable(),\n invitedUuids: z.array(UUIDSchema),\n});\nexport type UpnpSession = z.infer<typeof UpnpSessionSchema>;\n\nexport const CreateUpnpInputSchema = z.object({\n localAddress: z.string(),\n localPort: z.number().int().min(1).max(65535),\n invitedUuids: z.array(UUIDSchema).default([]),\n});\nexport type CreateUpnpInput = z.infer<typeof CreateUpnpInputSchema>;\n\nexport const CloseUpnpInputSchema = z.object({ id: UUIDSchema });\nexport type CloseUpnpInput = z.infer<typeof CloseUpnpInputSchema>;\n\n// =====================================================================\n// Discovery (known servers)\n// =====================================================================\n\nexport const KnownServerSchema = z.object({\n id: UUIDSchema,\n name: z.string(),\n address: z.string(),\n description: z.string().optional(),\n iconUrl: z.string().url().nullable(),\n playerCount: z.number().int().nonnegative().nullable(),\n maxPlayers: z.number().int().positive().nullable(),\n version: z.string().nullable(),\n pingMs: z.number().int().nonnegative().nullable(),\n source: z.enum(['anvil', 'community']),\n});\nexport type KnownServer = z.infer<typeof KnownServerSchema>;\n\n// =====================================================================\n// System (status / generic events)\n// =====================================================================\n\nexport const SystemStatusSchema = z.object({\n status: z.enum(['operational', 'degraded', 'outage']),\n maintenanceUntil: ISODateSchema.nullable(),\n message: z.string().nullable(),\n});\nexport type SystemStatus = z.infer<typeof SystemStatusSchema>;\n\n// =====================================================================\n// Minecraft install info\n// =====================================================================\n\nexport const InstalledInstanceSchema = z.object({\n id: UUIDSchema,\n name: z.string(),\n mcVersion: z.string(),\n loader: LoaderTypeSchema,\n loaderVersion: z.string(),\n path: z.string(),\n sizeBytes: z.number().int().nonnegative(),\n lastPlayedAt: ISODateSchema.nullable(),\n installedAt: ISODateSchema,\n});\nexport type InstalledInstance = z.infer<typeof InstalledInstanceSchema>;\n\n// =====================================================================\n// Telemetry / launch\n// =====================================================================\n\nexport const ReportTelemetryInputSchema = z.object({\n event: z.enum(['launch', 'playtime', 'crash']),\n metadata: z.record(z.string(), z.string()).default({}),\n});\nexport type ReportTelemetryInput = z.infer<typeof ReportTelemetryInputSchema>;\n\nexport const LauncherUpdateInfoSchema = z.object({\n currentVersion: z.string(),\n latestVersion: z.string(),\n updateAvailable: z.boolean(),\n changelog: z.string().nullable(),\n downloadUrl: z.string().url().nullable(),\n});\nexport type LauncherUpdateInfo = z.infer<typeof LauncherUpdateInfoSchema>;\n","// AppRouter -- tRPC v11 router definition.\n// Procedures will be implemented in @anvil/api (private repo) and\n// consumed by apps/web via @anvil-js/client. For local dev, MSW handlers\n// in apps/web/src/lib/anvil-api/mock/handlers.ts provide the responses.\n\nimport { initTRPC, TRPCError } from '@trpc/server';\nimport { z } from 'zod';\nimport {\n UUIDSchema,\n UserSummarySchema,\n SessionSchema,\n LoginInputSchema,\n RegisterInputSchema,\n RefreshInputSchema,\n ForgotPasswordInputSchema,\n ResetPasswordInputSchema,\n ValidateInputSchema,\n BuildSummarySchema,\n BuildSchema,\n ListBuildsInputSchema,\n GetBuildInputSchema,\n RequestDownloadInputSchema,\n RequestDownloadOutputSchema,\n LicenseSchema,\n ListLicensesInputSchema,\n CheckLicenseInputSchema,\n CheckLicenseOutputSchema,\n} from './schemas/index';\n\n/**\n * Context shape -- populated by NestJS at request time.\n * See `apps/api/src/v1/auth/auth.guard.ts` (private repo) for the production version.\n */\nexport interface CreateContextOptions {\n userUuid?: string;\n token?: string;\n requestId?: string;\n}\n\nexport const createContext = async (opts: CreateContextOptions) => {\n return {\n userUuid: opts.userUuid,\n token: opts.token,\n requestId:\n opts.requestId ??\n (typeof crypto !== 'undefined' ? crypto.randomUUID() : Math.random().toString()),\n };\n};\n\nexport type Context = Awaited<ReturnType<typeof createContext>>;\n\nconst t = initTRPC.context<Context>().create({\n // No superjson transformer in the scaffold. The MSW dev layer\n // returns plain `{ result: { data } }` envelopes; using\n // superjson here requires the server to wrap responses in\n // `{ result: { data, meta: { values } } }`, which the MSW\n // handlers don't (and shouldn't) emit. All our data is\n // JSON-serializable so the default transformer is correct.\n // When `apps/api` is wired, either re-introduce superjson\n // here AND update the MSW handlers to match, or leave the\n // default transformer in place (the prod NestJS handler can\n // also omit the transformer).\n errorFormatter: ({ shape }) => ({\n ...shape,\n data: {\n code: shape.data.code,\n httpStatus: shape.data.httpStatus,\n },\n }),\n});\n\nexport const router = t.router;\nexport const publicProcedure = t.procedure;\nexport const middleware = t.middleware;\n\nconst isAuthed = middleware(({ ctx, next }) => {\n if (!ctx.userUuid) {\n throw new TRPCError({\n code: 'UNAUTHORIZED',\n message: 'Authentication required',\n });\n }\n const parsed = UUIDSchema.safeParse(ctx.userUuid);\n if (!parsed.success) {\n throw new TRPCError({\n code: 'UNAUTHORIZED',\n message: 'Invalid user identifier',\n });\n }\n return next({ ctx: { ...ctx, userUuid: ctx.userUuid } });\n});\n\nexport const protectedProcedure = t.procedure.use(isAuthed);\n\n// =====================================================================\n// v1.auth.* -- Authentication procedures (spec §5)\n// =====================================================================\n\nconst authRouter = router({\n // --- Anvil auth (email + password) ---\n signIn: publicProcedure\n .input(LoginInputSchema)\n .output(\n z.object({\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresAt: z.string().datetime(),\n user: UserSummarySchema,\n }),\n )\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n signUp: publicProcedure\n .input(RegisterInputSchema)\n .output(\n z.object({\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresAt: z.string().datetime(),\n user: UserSummarySchema,\n }),\n )\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n refresh: publicProcedure\n .input(RefreshInputSchema)\n .output(\n z.object({\n accessToken: z.string(),\n refreshToken: z.string(),\n expiresAt: z.string().datetime(),\n }),\n )\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n validate: publicProcedure\n .input(ValidateInputSchema)\n .output(\n z.object({\n valid: z.boolean(),\n user: UserSummarySchema.optional(),\n expiresAt: z.string().datetime().optional(),\n }),\n )\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n forgotPassword: publicProcedure\n .input(ForgotPasswordInputSchema)\n .output(z.void())\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n resetPassword: publicProcedure\n .input(ResetPasswordInputSchema)\n .output(z.void())\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n signOut: protectedProcedure.output(z.void()).mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n // --- Session (current authenticated user) ---\n session: router({\n current: protectedProcedure.output(SessionSchema).query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n\n // --- Mojang auth (Microsoft OAuth) -- spec §5.1 ---\n mojang: router({\n startDeviceCode: publicProcedure\n .output(\n z.object({\n deviceCode: z.string(),\n userCode: z.string(),\n verificationUri: z.string().url(),\n expiresIn: z.number().int(),\n interval: z.number().int(),\n }),\n )\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n pollDeviceCode: publicProcedure\n .input(z.object({ deviceCode: z.string() }))\n .output(\n z.discriminatedUnion('kind', [\n z.object({\n kind: z.literal('success'),\n mcAccessToken: z.string(),\n mcRefreshToken: z.string(),\n mcExpiresAt: z.string().datetime(),\n profile: z.object({ uuid: UUIDSchema, username: z.string() }),\n }),\n z.object({ kind: z.literal('pending') }),\n z.object({\n kind: z.literal('error'),\n code: z.enum(['authorization_declined', 'expired', 'slow_down']),\n }),\n ]),\n )\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n});\n\n// =====================================================================\n// v1.builds.* -- Content catalog (spec §6)\n// =====================================================================\n\nconst buildsRouter = router({\n list: publicProcedure\n .input(ListBuildsInputSchema)\n .output(\n z.object({\n items: z.array(BuildSummarySchema),\n total: z.number().int().nonnegative(),\n page: z.number().int().min(1),\n pageSize: z.number().int().min(1),\n }),\n )\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n get: publicProcedure\n .input(GetBuildInputSchema)\n .output(BuildSchema)\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n getVersions: publicProcedure\n .input(z.object({ buildId: UUIDSchema }))\n .output(z.array(z.any())) // BuildVersion[]\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n requestDownload: protectedProcedure\n .input(RequestDownloadInputSchema)\n .output(RequestDownloadOutputSchema)\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\n// =====================================================================\n// v1.licenses.* -- License management (spec §9)\n// =====================================================================\n\nconst licensesRouter = router({\n list: protectedProcedure\n .input(ListLicensesInputSchema)\n .output(z.array(LicenseSchema))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n check: protectedProcedure\n .input(CheckLicenseInputSchema)\n .output(CheckLicenseOutputSchema)\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\n// =====================================================================\n// v1.health.* -- Liveness/readiness (spec §4)\n// =====================================================================\n\nconst healthRouter = router({\n ping: publicProcedure\n .output(z.object({ status: z.string(), version: z.string(), timestamp: z.string().datetime() }))\n .query(() => ({\n status: 'ok',\n version: '0.0.0',\n timestamp: new Date().toISOString(),\n })),\n\n version: publicProcedure\n .output(\n z.object({\n api: z.string(),\n minLauncher: z.string(),\n recommendedLauncher: z.string(),\n deprecations: z.array(z.string()),\n }),\n )\n .query(() => ({\n api: '0.0.0',\n minLauncher: '0.0.0',\n recommendedLauncher: '0.0.0',\n deprecations: [] as string[],\n })),\n});\n\n// =====================================================================\n// v1.social.* -- Social & Presence (spec §12, essentialws compat)\n// =====================================================================\n\nimport {\n RelationshipSchema,\n TrustedHostSchema,\n PresenceSchema,\n CommunityRulesStatusSchema,\n SuspensionStatusSchema,\n ISODateSchema,\n CreateRelationshipInputSchema,\n DeleteRelationshipInputSchema,\n ListRelationshipsInputSchema,\n AcceptRequestInputSchema,\n CancelRequestInputSchema,\n LookupByNameInputSchema,\n LookupByNameOutputSchema,\n ReportActivityInputSchema,\n InviteToServerInputSchema,\n CreateTrustedHostInputSchema,\n DeleteTrustedHostInputSchema,\n CosmeticSchema,\n OutfitSchema,\n EmoteWheelSchema,\n SkinSchema,\n EquipCosmeticInputSchema,\n CreateOutfitInputSchema,\n UpdateOutfitInputSchema,\n DeleteOutfitInputSchema,\n SaveEmoteWheelInputSchema,\n UploadSkinInputSchema,\n SetActiveSkinInputSchema,\n ChannelSchema,\n MessageSchema,\n ListChannelsInputSchema,\n CreateDMInputSchema,\n CreateGroupInputSchema,\n ListMessagesInputSchema,\n SendMessageInputSchema,\n EditMessageInputSchema,\n DeleteMessageInputSchema,\n MarkReadInputSchema,\n ReportMessageInputSchema,\n ChannelReportsInputSchema,\n MediaItemSchema,\n ListMediaInputSchema,\n UploadMediaInputSchema,\n DeleteMediaInputSchema,\n SignalingMessageSchema,\n SendSignalingInputSchema,\n UpnpSessionSchema,\n CreateUpnpInputSchema,\n CloseUpnpInputSchema,\n KnownServerSchema,\n SystemStatusSchema,\n InstalledInstanceSchema,\n ReportTelemetryInputSchema,\n LauncherUpdateInfoSchema,\n} from './schemas';\n\nconst socialRouter = router({\n relationships: router({\n create: protectedProcedure\n .input(CreateRelationshipInputSchema)\n .output(z.object({ relationship: RelationshipSchema, created: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n delete: protectedProcedure\n .input(DeleteRelationshipInputSchema)\n .output(z.object({ deleted: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n list: protectedProcedure\n .input(ListRelationshipsInputSchema)\n .output(z.object({ items: z.array(RelationshipSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n acceptRequest: protectedProcedure\n .input(AcceptRequestInputSchema)\n .output(z.object({ relationship: RelationshipSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n cancelRequest: protectedProcedure\n .input(CancelRequestInputSchema)\n .output(z.object({ cancelled: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n\n users: router({\n lookupByName: protectedProcedure\n .input(LookupByNameInputSchema)\n .output(LookupByNameOutputSchema)\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n\n presence: router({\n /**\n * Query (not subscription) in this scaffold. Prod presence streaming\n * will land as a separate /v1/ws subscription multiplexed over the\n * WebSocket gateway. For now the MSW layer returns a snapshot of the\n * current presence map; the client polls every 5s.\n */\n get: protectedProcedure\n .input(z.object({ uuids: z.array(UUIDSchema) }))\n .output(z.object({ items: z.array(PresenceSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n\n activity: router({\n report: protectedProcedure\n .input(ReportActivityInputSchema)\n .output(z.void())\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n\n invites: router({\n toServer: protectedProcedure\n .input(InviteToServerInputSchema)\n .output(z.object({ delivered: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n\n trustedHosts: router({\n list: protectedProcedure\n .input(z.void())\n .output(z.object({ items: z.array(TrustedHostSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n create: protectedProcedure\n .input(CreateTrustedHostInputSchema)\n .output(z.object({ host: TrustedHostSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n delete: protectedProcedure\n .input(DeleteTrustedHostInputSchema)\n .output(z.object({ deleted: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n\n communityRules: router({\n get: protectedProcedure\n .input(z.void())\n .output(CommunityRulesStatusSchema)\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n agree: protectedProcedure\n .input(z.void())\n .output(z.object({ accepted: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n\n suspension: router({\n get: protectedProcedure\n .input(z.void())\n .output(SuspensionStatusSchema)\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n});\n\n// =====================================================================\n// v1.cosmetics.*, v1.outfits.*, v1.emoteWheels.*, v1.skins.* (spec §13 - §16)\n// =====================================================================\n\nconst cosmeticsRouter = router({\n list: protectedProcedure\n .input(\n z.object({\n type: z\n .enum(['hat', 'body', 'back', 'face', 'hand', 'feet', 'particle', 'emote'])\n .optional(),\n owned: z.boolean().optional(),\n limit: z.number().int().min(1).max(200).default(60),\n offset: z.number().int().min(0).default(0),\n }),\n )\n .output(z.object({ items: z.array(CosmeticSchema), total: z.number().int().nonnegative() }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n equip: protectedProcedure\n .input(EquipCosmeticInputSchema)\n .output(z.object({ ok: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst outfitsRouter = router({\n list: protectedProcedure\n .input(z.void())\n .output(z.object({ items: z.array(OutfitSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n create: protectedProcedure\n .input(CreateOutfitInputSchema)\n .output(z.object({ outfit: OutfitSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n update: protectedProcedure\n .input(UpdateOutfitInputSchema)\n .output(z.object({ outfit: OutfitSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n delete: protectedProcedure\n .input(DeleteOutfitInputSchema)\n .output(z.object({ deleted: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst emoteWheelsRouter = router({\n list: protectedProcedure\n .input(z.void())\n .output(z.object({ items: z.array(EmoteWheelSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n save: protectedProcedure\n .input(SaveEmoteWheelInputSchema)\n .output(z.object({ wheel: EmoteWheelSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst skinsRouter = router({\n list: protectedProcedure\n .input(z.void())\n .output(z.object({ items: z.array(SkinSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n upload: protectedProcedure\n .input(UploadSkinInputSchema)\n .output(z.object({ skin: SkinSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n setActive: protectedProcedure\n .input(SetActiveSkinInputSchema)\n .output(z.object({ ok: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\n// =====================================================================\n// v1.chat.* (spec §17)\n// =====================================================================\n\nconst chatRouter = router({\n channels: router({\n list: protectedProcedure\n .input(ListChannelsInputSchema)\n .output(z.object({ items: z.array(ChannelSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n createDM: protectedProcedure\n .input(CreateDMInputSchema)\n .output(z.object({ channel: ChannelSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n createGroup: protectedProcedure\n .input(CreateGroupInputSchema)\n .output(z.object({ channel: ChannelSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n\n messages: router({\n list: protectedProcedure\n .input(ListMessagesInputSchema)\n .output(z.object({ items: z.array(MessageSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n send: protectedProcedure\n .input(SendMessageInputSchema)\n .output(z.object({ message: MessageSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n edit: protectedProcedure\n .input(EditMessageInputSchema)\n .output(z.object({ message: MessageSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n delete: protectedProcedure\n .input(DeleteMessageInputSchema)\n .output(z.object({ deleted: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n markRead: protectedProcedure\n .input(MarkReadInputSchema)\n .output(z.object({ ok: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n report: protectedProcedure\n .input(ReportMessageInputSchema)\n .output(z.object({ reported: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n reports: protectedProcedure\n .input(ChannelReportsInputSchema)\n .output(z.object({ items: z.array(z.any()) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n }),\n});\n\n// =====================================================================\n// v1.media.*, v1.multiplayer.*, v1.upnp.*, v1.discovery.*, v1.system.*,\n// v1.instances.*, v1.telemetry.*, v1.launcher.* (spec §18 - §22)\n// =====================================================================\n\nconst mediaRouter = router({\n list: protectedProcedure\n .input(ListMediaInputSchema)\n .output(z.object({ items: z.array(MediaItemSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n upload: protectedProcedure\n .input(UploadMediaInputSchema)\n .output(z.object({ item: MediaItemSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n delete: protectedProcedure\n .input(DeleteMediaInputSchema)\n .output(z.object({ deleted: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst multiplayerRouter = router({\n sendSignaling: protectedProcedure\n .input(SendSignalingInputSchema)\n .output(z.object({ message: SignalingMessageSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n listSignaling: protectedProcedure\n .input(z.object({ fromUuid: UUIDSchema.optional(), since: ISODateSchema.optional() }))\n .output(z.object({ items: z.array(SignalingMessageSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst upnpRouter = router({\n list: protectedProcedure\n .input(z.void())\n .output(z.object({ items: z.array(UpnpSessionSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n create: protectedProcedure\n .input(CreateUpnpInputSchema)\n .output(z.object({ session: UpnpSessionSchema }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n\n close: protectedProcedure\n .input(CloseUpnpInputSchema)\n .output(z.object({ closed: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst discoveryRouter = router({\n list: protectedProcedure\n .input(z.void())\n .output(z.object({ items: z.array(KnownServerSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst systemRouter = router({\n status: protectedProcedure\n .input(z.void())\n .output(SystemStatusSchema)\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst instancesRouter = router({\n list: protectedProcedure\n .input(z.void())\n .output(z.object({ items: z.array(InstalledInstanceSchema) }))\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst telemetryRouter = router({\n report: protectedProcedure\n .input(ReportTelemetryInputSchema)\n .output(z.object({ ok: z.boolean() }))\n .mutation(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst launcherRouter = router({\n updateCheck: protectedProcedure\n .input(z.void())\n .output(LauncherUpdateInfoSchema)\n .query(() => {\n throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' });\n }),\n});\n\nconst adminRouter = router({\n users: router({\n list: protectedProcedure\n .input(z.object({ limit: z.number().optional(), offset: z.number().optional(), search: z.string().optional() }).optional())\n .query(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n get: protectedProcedure\n .input(z.object({ uuid: z.string() }))\n .query(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n updateRole: protectedProcedure\n .input(z.object({ uuid: z.string(), role: z.enum(['USER', 'MODERATOR', 'ADMIN']) }))\n .mutation(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n ban: protectedProcedure\n .input(z.object({ uuid: z.string() }))\n .mutation(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n }),\n builds: router({\n list: protectedProcedure.query(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n create: protectedProcedure\n .input(z.object({ slug: z.string(), name: z.string(), shortDescription: z.string().optional(), iconUrl: z.string().optional(), visibility: z.enum(['PUBLIC', 'PRIVATE', 'UNLISTED']).optional() }))\n .mutation(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n update: protectedProcedure\n .input(z.object({ id: z.string(), name: z.string().optional(), shortDescription: z.string().optional(), iconUrl: z.string().optional().nullable(), visibility: z.enum(['PUBLIC', 'PRIVATE', 'UNLISTED']).optional() }))\n .mutation(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n delete: protectedProcedure\n .input(z.object({ id: z.string() }))\n .mutation(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n listVersions: protectedProcedure\n .input(z.object({ buildId: z.string() }))\n .query(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n createVersion: protectedProcedure\n .input(z.object({\n buildId: z.string(),\n name: z.string(),\n mcVersion: z.string(),\n loader: z.enum(['VANILLA', 'FABRIC', 'FORGE', 'NEOFORGE', 'QUILT']),\n loaderVersion: z.string().optional(),\n changelog: z.string().optional(),\n downloadUrl: z.string().optional(),\n sha256: z.string().optional(),\n bytes: z.number().optional(),\n }))\n .mutation(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n deleteVersion: protectedProcedure\n .input(z.object({ id: z.string() }))\n .mutation(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n }),\n telemetry: router({\n recent: protectedProcedure.query(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n }),\n stats: protectedProcedure.query(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n});\n\n/**\n * AppRouter -- full router scaffold.\n * Procedures throw 'not implemented' until @anvil/api (private) wires them.\n * For local dev, MSW handlers in apps/web/src/lib/anvil-api/mock/handlers.ts\n * intercept and return canned responses.\n */\nconst profileRouter = router({\n update: protectedProcedure\n .input(z.object({ displayName: z.string().optional(), bio: z.string().optional().nullable(), avatarUrl: z.string().url().optional().nullable() }))\n .mutation(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n changePassword: protectedProcedure\n .input(z.object({ currentPassword: z.string(), newPassword: z.string().min(8) }))\n .mutation(() => { throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'not implemented' }); }),\n});\n\nexport const appRouter = router({\n v1: router({\n health: healthRouter,\n auth: authRouter,\n profile: profileRouter,\n builds: buildsRouter,\n licenses: licensesRouter,\n social: socialRouter,\n cosmetics: cosmeticsRouter,\n admin: adminRouter,\n outfits: outfitsRouter,\n emoteWheels: emoteWheelsRouter,\n skins: skinsRouter,\n chat: chatRouter,\n media: mediaRouter,\n multiplayer: multiplayerRouter,\n upnp: upnpRouter,\n discovery: discoveryRouter,\n system: systemRouter,\n instances: instancesRouter,\n telemetry: telemetryRouter,\n launcher: launcherRouter,\n }),\n});\n\nexport type AppRouter = typeof appRouter;\n\n/**\n * createCaller -- for server-side rendering and tests.\n * Avoids the HTTP transport entirely.\n */\nexport const createCaller = async (ctx: CreateContextOptions) => {\n const context = await createContext(ctx);\n return appRouter.createCaller(context);\n};\n"]}