diff --git a/__tests__/__snapshots__/nullables.test.ts.snap b/__tests__/__snapshots__/nullables.test.ts.snap index c82eb19..47ee566 100644 --- a/__tests__/__snapshots__/nullables.test.ts.snap +++ b/__tests__/__snapshots__/nullables.test.ts.snap @@ -106,23 +106,22 @@ export const uploadDataCommandHeaderSchema = v.object({ exports[`header parameters 5`] = ` "import { validator } from "hono/validator"; -import * as v from "valibot"; -import { PublicValibotHonoError } from "@block65/rest-client"; +import type { StandardSchemaV1 } from "@standard-schema/spec"; +import { PublicValidationError } from "@block65/rest-client"; import { uploadDataCommandParamsSchema } from "./valibot.js"; -function toPublicValibotHonoError(err: unknown): never { +async function standardParse(schema: TSchema, value: unknown): Promise> { - if (err instanceof v.ValiError) { - throw PublicValibotHonoError.from(err); + const result = await schema["~standard"].validate(value); + if (result.issues) { + throw PublicValidationError.fromIssues(result.issues); } - throw err; + return result.value; } export const uploadData = [ - validator("param", (value) => { - return v.parseAsync(uploadDataCommandParamsSchema, value).catch(toPublicValibotHonoError); - }), + validator("param", (value) => standardParse(uploadDataCommandParamsSchema, value)), ] as const; " `; diff --git a/__tests__/fixtures/docker/commands-validated.ts b/__tests__/fixtures/docker/commands-validated.ts index 140fa47..bfe2688 100644 --- a/__tests__/fixtures/docker/commands-validated.ts +++ b/__tests__/fixtures/docker/commands-validated.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:18:39.851Z + * Generated on 2026-09-02T06:50:52.307Z (rev 849d2ab9133fcb2a14ee14ff782a9b1c) * */ /** eslint-disable max-classes */ diff --git a/__tests__/fixtures/docker/commands.ts b/__tests__/fixtures/docker/commands.ts index dd63b0f..f5bbc8c 100644 --- a/__tests__/fixtures/docker/commands.ts +++ b/__tests__/fixtures/docker/commands.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:18:39.851Z + * Generated on 2026-09-02T06:50:50.056Z (rev 7b147ca0b88e6b555f4f9a5e18d17f53) * */ /** eslint-disable max-classes */ diff --git a/__tests__/fixtures/docker/enums.ts b/__tests__/fixtures/docker/enums.ts index acf6bea..82911fd 100644 --- a/__tests__/fixtures/docker/enums.ts +++ b/__tests__/fixtures/docker/enums.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:18:39.851Z + * Generated on 2026-09-02T06:50:52.317Z (rev 829fd9f0a511b204e1eed4924527927b) * */ /** diff --git a/__tests__/fixtures/docker/hono-valibot.ts b/__tests__/fixtures/docker/hono-valibot.ts deleted file mode 100644 index 50f46c6..0000000 --- a/__tests__/fixtures/docker/hono-valibot.ts +++ /dev/null @@ -1,1140 +0,0 @@ -import { PublicValibotHonoError } from "@block65/rest-client"; -/** - * This file was auto generated by @block65/openapi-codegen - * - * WARN: Do not edit directly. - * - * Generated on 2026-06-09T09:18:39.851Z - * - */ -import { validator } from "hono/validator"; -import * as v from "valibot"; -import { - buildPruneCommandQuerySchema, - configCreateCommandBodySchema, - configDeleteCommandParamsSchema, - configInspectCommandParamsSchema, - configListCommandQuerySchema, - configUpdateCommandBodySchema, - configUpdateCommandParamsSchema, - configUpdateCommandQuerySchema, - containerArchiveCommandParamsSchema, - containerArchiveCommandQuerySchema, - containerArchiveInfoCommandParamsSchema, - containerArchiveInfoCommandQuerySchema, - containerAttachCommandParamsSchema, - containerAttachCommandQuerySchema, - containerAttachWebsocketCommandParamsSchema, - containerAttachWebsocketCommandQuerySchema, - containerChangesCommandParamsSchema, - containerCreateCommandBodySchema, - containerCreateCommandQuerySchema, - containerDeleteCommandParamsSchema, - containerDeleteCommandQuerySchema, - containerExecCommandBodySchema, - containerExecCommandParamsSchema, - containerExportCommandParamsSchema, - containerInspectCommandParamsSchema, - containerInspectCommandQuerySchema, - containerKillCommandParamsSchema, - containerKillCommandQuerySchema, - containerListCommandQuerySchema, - containerLogsCommandParamsSchema, - containerLogsCommandQuerySchema, - containerPauseCommandParamsSchema, - containerPruneCommandQuerySchema, - containerRenameCommandParamsSchema, - containerRenameCommandQuerySchema, - containerResizeCommandParamsSchema, - containerResizeCommandQuerySchema, - containerRestartCommandParamsSchema, - containerRestartCommandQuerySchema, - containerStartCommandParamsSchema, - containerStartCommandQuerySchema, - containerStatsCommandParamsSchema, - containerStatsCommandQuerySchema, - containerStopCommandParamsSchema, - containerStopCommandQuerySchema, - containerTopCommandParamsSchema, - containerTopCommandQuerySchema, - containerUnpauseCommandParamsSchema, - containerUpdateCommandBodySchema, - containerUpdateCommandParamsSchema, - containerWaitCommandParamsSchema, - containerWaitCommandQuerySchema, - distributionInspectCommandParamsSchema, - execInspectCommandParamsSchema, - execResizeCommandParamsSchema, - execResizeCommandQuerySchema, - execStartCommandBodySchema, - execStartCommandParamsSchema, - getPluginPrivilegesCommandQuerySchema, - imageBuildCommandQuerySchema, - imageCommitCommandBodySchema, - imageCommitCommandQuerySchema, - imageCreateCommandQuerySchema, - imageDeleteCommandParamsSchema, - imageDeleteCommandQuerySchema, - imageGetAllCommandQuerySchema, - imageGetCommandParamsSchema, - imageHistoryCommandParamsSchema, - imageInspectCommandParamsSchema, - imageListCommandQuerySchema, - imageLoadCommandQuerySchema, - imagePruneCommandQuerySchema, - imagePushCommandParamsSchema, - imagePushCommandQuerySchema, - imageSearchCommandQuerySchema, - imageTagCommandParamsSchema, - imageTagCommandQuerySchema, - networkConnectCommandBodySchema, - networkConnectCommandParamsSchema, - networkCreateCommandBodySchema, - networkDeleteCommandParamsSchema, - networkDisconnectCommandBodySchema, - networkDisconnectCommandParamsSchema, - networkInspectCommandParamsSchema, - networkInspectCommandQuerySchema, - networkListCommandQuerySchema, - networkPruneCommandQuerySchema, - nodeDeleteCommandParamsSchema, - nodeDeleteCommandQuerySchema, - nodeInspectCommandParamsSchema, - nodeListCommandQuerySchema, - nodeUpdateCommandBodySchema, - nodeUpdateCommandParamsSchema, - nodeUpdateCommandQuerySchema, - pluginCreateCommandQuerySchema, - pluginDeleteCommandParamsSchema, - pluginDeleteCommandQuerySchema, - pluginDisableCommandParamsSchema, - pluginDisableCommandQuerySchema, - pluginEnableCommandParamsSchema, - pluginEnableCommandQuerySchema, - pluginInspectCommandParamsSchema, - pluginListCommandQuerySchema, - pluginPullCommandBodySchema, - pluginPullCommandQuerySchema, - pluginPushCommandParamsSchema, - pluginSetCommandBodySchema, - pluginSetCommandParamsSchema, - pluginUpgradeCommandBodySchema, - pluginUpgradeCommandParamsSchema, - pluginUpgradeCommandQuerySchema, - putContainerArchiveCommandParamsSchema, - putContainerArchiveCommandQuerySchema, - secretCreateCommandBodySchema, - secretDeleteCommandParamsSchema, - secretInspectCommandParamsSchema, - secretListCommandQuerySchema, - secretUpdateCommandBodySchema, - secretUpdateCommandParamsSchema, - secretUpdateCommandQuerySchema, - serviceCreateCommandBodySchema, - serviceDeleteCommandParamsSchema, - serviceInspectCommandParamsSchema, - serviceInspectCommandQuerySchema, - serviceListCommandQuerySchema, - serviceLogsCommandParamsSchema, - serviceLogsCommandQuerySchema, - serviceUpdateCommandBodySchema, - serviceUpdateCommandParamsSchema, - serviceUpdateCommandQuerySchema, - swarmInitCommandBodySchema, - swarmJoinCommandBodySchema, - swarmLeaveCommandQuerySchema, - swarmUnlockCommandBodySchema, - swarmUpdateCommandBodySchema, - swarmUpdateCommandQuerySchema, - systemAuthCommandBodySchema, - systemDataUsageCommandQuerySchema, - systemEventsCommandQuerySchema, - taskInspectCommandParamsSchema, - taskListCommandQuerySchema, - taskLogsCommandParamsSchema, - taskLogsCommandQuerySchema, - volumeCreateCommandBodySchema, - volumeDeleteCommandParamsSchema, - volumeDeleteCommandQuerySchema, - volumeInspectCommandParamsSchema, - volumeListCommandQuerySchema, - volumePruneCommandQuerySchema, - volumeUpdateCommandBodySchema, - volumeUpdateCommandParamsSchema, - volumeUpdateCommandQuerySchema, -} from "./valibot.js"; - -function toPublicValibotHonoError(err: unknown): never { - if (err instanceof v.ValiError) { - throw PublicValibotHonoError.from(err); - } - throw err; -} - -export const containerList = [ - validator("query", (value) => { - return v - .parseAsync(containerListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerCreate = [ - validator("json", (value) => { - return v - .parseAsync(containerCreateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerCreateCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerInspect = [ - validator("param", (value) => { - return v - .parseAsync(containerInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerInspectCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerTop = [ - validator("param", (value) => { - return v - .parseAsync(containerTopCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerTopCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerLogs = [ - validator("param", (value) => { - return v - .parseAsync(containerLogsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerLogsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerChanges = [ - validator("param", (value) => { - return v - .parseAsync(containerChangesCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerExport = [ - validator("param", (value) => { - return v - .parseAsync(containerExportCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerStats = [ - validator("param", (value) => { - return v - .parseAsync(containerStatsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerStatsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerResize = [ - validator("param", (value) => { - return v - .parseAsync(containerResizeCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerResizeCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerStart = [ - validator("param", (value) => { - return v - .parseAsync(containerStartCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerStartCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerStop = [ - validator("param", (value) => { - return v - .parseAsync(containerStopCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerStopCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerRestart = [ - validator("param", (value) => { - return v - .parseAsync(containerRestartCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerRestartCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerKill = [ - validator("param", (value) => { - return v - .parseAsync(containerKillCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerKillCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerUpdate = [ - validator("json", (value) => { - return v - .parseAsync(containerUpdateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(containerUpdateCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerRename = [ - validator("param", (value) => { - return v - .parseAsync(containerRenameCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerRenameCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerPause = [ - validator("param", (value) => { - return v - .parseAsync(containerPauseCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerUnpause = [ - validator("param", (value) => { - return v - .parseAsync(containerUnpauseCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerAttach = [ - validator("param", (value) => { - return v - .parseAsync(containerAttachCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerAttachCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerAttachWebsocket = [ - validator("param", (value) => { - return v - .parseAsync(containerAttachWebsocketCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerAttachWebsocketCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerWait = [ - validator("param", (value) => { - return v - .parseAsync(containerWaitCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerWaitCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerDelete = [ - validator("param", (value) => { - return v - .parseAsync(containerDeleteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerDeleteCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerArchive = [ - validator("param", (value) => { - return v - .parseAsync(containerArchiveCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerArchiveCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const putContainerArchive = [ - validator("param", (value) => { - return v - .parseAsync(putContainerArchiveCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(putContainerArchiveCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerArchiveInfo = [ - validator("param", (value) => { - return v - .parseAsync(containerArchiveInfoCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(containerArchiveInfoCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerPrune = [ - validator("query", (value) => { - return v - .parseAsync(containerPruneCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageList = [ - validator("query", (value) => { - return v - .parseAsync(imageListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageBuild = [ - validator("query", (value) => { - return v - .parseAsync(imageBuildCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const buildPrune = [ - validator("query", (value) => { - return v - .parseAsync(buildPruneCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageCreate = [ - validator("query", (value) => { - return v - .parseAsync(imageCreateCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageInspect = [ - validator("param", (value) => { - return v - .parseAsync(imageInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageHistory = [ - validator("param", (value) => { - return v - .parseAsync(imageHistoryCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imagePush = [ - validator("param", (value) => { - return v - .parseAsync(imagePushCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(imagePushCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageTag = [ - validator("param", (value) => { - return v - .parseAsync(imageTagCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(imageTagCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageDelete = [ - validator("param", (value) => { - return v - .parseAsync(imageDeleteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(imageDeleteCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageSearch = [ - validator("query", (value) => { - return v - .parseAsync(imageSearchCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imagePrune = [ - validator("query", (value) => { - return v - .parseAsync(imagePruneCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const systemAuth = [ - validator("json", (value) => { - return v - .parseAsync(systemAuthCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const systemInfo = [] as const; -export const systemVersion = [] as const; -export const systemPing = [] as const; -export const systemPingHead = [] as const; -export const imageCommit = [ - validator("json", (value) => { - return v - .parseAsync(imageCommitCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(imageCommitCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const systemEvents = [ - validator("query", (value) => { - return v - .parseAsync(systemEventsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const systemDataUsage = [ - validator("query", (value) => { - return v - .parseAsync(systemDataUsageCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageGet = [ - validator("param", (value) => { - return v - .parseAsync(imageGetCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageGetAll = [ - validator("query", (value) => { - return v - .parseAsync(imageGetAllCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const imageLoad = [ - validator("query", (value) => { - return v - .parseAsync(imageLoadCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const containerExec = [ - validator("json", (value) => { - return v - .parseAsync(containerExecCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(containerExecCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const execStart = [ - validator("json", (value) => { - return v - .parseAsync(execStartCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(execStartCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const execResize = [ - validator("param", (value) => { - return v - .parseAsync(execResizeCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(execResizeCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const execInspect = [ - validator("param", (value) => { - return v - .parseAsync(execInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const volumeList = [ - validator("query", (value) => { - return v - .parseAsync(volumeListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const volumeCreate = [ - validator("json", (value) => { - return v - .parseAsync(volumeCreateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const volumeInspect = [ - validator("param", (value) => { - return v - .parseAsync(volumeInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const volumeUpdate = [ - validator("json", (value) => { - return v - .parseAsync(volumeUpdateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(volumeUpdateCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(volumeUpdateCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const volumeDelete = [ - validator("param", (value) => { - return v - .parseAsync(volumeDeleteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(volumeDeleteCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const volumePrune = [ - validator("query", (value) => { - return v - .parseAsync(volumePruneCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const networkList = [ - validator("query", (value) => { - return v - .parseAsync(networkListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const networkInspect = [ - validator("param", (value) => { - return v - .parseAsync(networkInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(networkInspectCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const networkDelete = [ - validator("param", (value) => { - return v - .parseAsync(networkDeleteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const networkCreate = [ - validator("json", (value) => { - return v - .parseAsync(networkCreateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const networkConnect = [ - validator("json", (value) => { - return v - .parseAsync(networkConnectCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(networkConnectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const networkDisconnect = [ - validator("json", (value) => { - return v - .parseAsync(networkDisconnectCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(networkDisconnectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const networkPrune = [ - validator("query", (value) => { - return v - .parseAsync(networkPruneCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginList = [ - validator("query", (value) => { - return v - .parseAsync(pluginListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getPluginPrivileges = [ - validator("query", (value) => { - return v - .parseAsync(getPluginPrivilegesCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginPull = [ - validator("json", (value) => { - return v - .parseAsync(pluginPullCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(pluginPullCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginInspect = [ - validator("param", (value) => { - return v - .parseAsync(pluginInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginDelete = [ - validator("param", (value) => { - return v - .parseAsync(pluginDeleteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(pluginDeleteCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginEnable = [ - validator("param", (value) => { - return v - .parseAsync(pluginEnableCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(pluginEnableCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginDisable = [ - validator("param", (value) => { - return v - .parseAsync(pluginDisableCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(pluginDisableCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginUpgrade = [ - validator("json", (value) => { - return v - .parseAsync(pluginUpgradeCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(pluginUpgradeCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(pluginUpgradeCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginCreate = [ - validator("query", (value) => { - return v - .parseAsync(pluginCreateCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginPush = [ - validator("param", (value) => { - return v - .parseAsync(pluginPushCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const pluginSet = [ - validator("json", (value) => { - return v - .parseAsync(pluginSetCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(pluginSetCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const nodeList = [ - validator("query", (value) => { - return v - .parseAsync(nodeListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const nodeInspect = [ - validator("param", (value) => { - return v - .parseAsync(nodeInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const nodeDelete = [ - validator("param", (value) => { - return v - .parseAsync(nodeDeleteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(nodeDeleteCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const nodeUpdate = [ - validator("json", (value) => { - return v - .parseAsync(nodeUpdateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(nodeUpdateCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(nodeUpdateCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const swarmInspect = [] as const; -export const swarmInit = [ - validator("json", (value) => { - return v - .parseAsync(swarmInitCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const swarmJoin = [ - validator("json", (value) => { - return v - .parseAsync(swarmJoinCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const swarmLeave = [ - validator("query", (value) => { - return v - .parseAsync(swarmLeaveCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const swarmUpdate = [ - validator("json", (value) => { - return v - .parseAsync(swarmUpdateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(swarmUpdateCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const swarmUnlockkey = [] as const; -export const swarmUnlock = [ - validator("json", (value) => { - return v - .parseAsync(swarmUnlockCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const serviceList = [ - validator("query", (value) => { - return v - .parseAsync(serviceListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const serviceCreate = [ - validator("json", (value) => { - return v - .parseAsync(serviceCreateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const serviceInspect = [ - validator("param", (value) => { - return v - .parseAsync(serviceInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(serviceInspectCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const serviceDelete = [ - validator("param", (value) => { - return v - .parseAsync(serviceDeleteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const serviceUpdate = [ - validator("json", (value) => { - return v - .parseAsync(serviceUpdateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(serviceUpdateCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(serviceUpdateCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const serviceLogs = [ - validator("param", (value) => { - return v - .parseAsync(serviceLogsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(serviceLogsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const taskList = [ - validator("query", (value) => { - return v - .parseAsync(taskListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const taskInspect = [ - validator("param", (value) => { - return v - .parseAsync(taskInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const taskLogs = [ - validator("param", (value) => { - return v - .parseAsync(taskLogsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(taskLogsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const secretList = [ - validator("query", (value) => { - return v - .parseAsync(secretListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const secretCreate = [ - validator("json", (value) => { - return v - .parseAsync(secretCreateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const secretInspect = [ - validator("param", (value) => { - return v - .parseAsync(secretInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const secretDelete = [ - validator("param", (value) => { - return v - .parseAsync(secretDeleteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const secretUpdate = [ - validator("json", (value) => { - return v - .parseAsync(secretUpdateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(secretUpdateCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(secretUpdateCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const configList = [ - validator("query", (value) => { - return v - .parseAsync(configListCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const configCreate = [ - validator("json", (value) => { - return v - .parseAsync(configCreateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const configInspect = [ - validator("param", (value) => { - return v - .parseAsync(configInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const configDelete = [ - validator("param", (value) => { - return v - .parseAsync(configDeleteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const configUpdate = [ - validator("json", (value) => { - return v - .parseAsync(configUpdateCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(configUpdateCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(configUpdateCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const distributionInspect = [ - validator("param", (value) => { - return v - .parseAsync(distributionInspectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const session = [] as const; diff --git a/__tests__/fixtures/docker/hono.ts b/__tests__/fixtures/docker/hono.ts new file mode 100644 index 0000000..15aeeb7 --- /dev/null +++ b/__tests__/fixtures/docker/hono.ts @@ -0,0 +1,840 @@ +import { PublicValidationError } from "@block65/rest-client"; +import type { StandardSchemaV1 } from "@standard-schema/spec"; +/** + * This file was auto generated by @block65/openapi-codegen + * + * WARN: Do not edit directly. + * + * Generated on 2026-09-02T06:50:52.273Z (rev a58a86a27b52546215cc313505eb28b4) + * + */ +import { validator } from "hono/validator"; +import { + buildPruneCommandQuerySchema, + configCreateCommandBodySchema, + configDeleteCommandParamsSchema, + configInspectCommandParamsSchema, + configListCommandQuerySchema, + configUpdateCommandBodySchema, + configUpdateCommandParamsSchema, + configUpdateCommandQuerySchema, + containerArchiveCommandParamsSchema, + containerArchiveCommandQuerySchema, + containerArchiveInfoCommandParamsSchema, + containerArchiveInfoCommandQuerySchema, + containerAttachCommandParamsSchema, + containerAttachCommandQuerySchema, + containerAttachWebsocketCommandParamsSchema, + containerAttachWebsocketCommandQuerySchema, + containerChangesCommandParamsSchema, + containerCreateCommandBodySchema, + containerCreateCommandQuerySchema, + containerDeleteCommandParamsSchema, + containerDeleteCommandQuerySchema, + containerExecCommandBodySchema, + containerExecCommandParamsSchema, + containerExportCommandParamsSchema, + containerInspectCommandParamsSchema, + containerInspectCommandQuerySchema, + containerKillCommandParamsSchema, + containerKillCommandQuerySchema, + containerListCommandQuerySchema, + containerLogsCommandParamsSchema, + containerLogsCommandQuerySchema, + containerPauseCommandParamsSchema, + containerPruneCommandQuerySchema, + containerRenameCommandParamsSchema, + containerRenameCommandQuerySchema, + containerResizeCommandParamsSchema, + containerResizeCommandQuerySchema, + containerRestartCommandParamsSchema, + containerRestartCommandQuerySchema, + containerStartCommandParamsSchema, + containerStartCommandQuerySchema, + containerStatsCommandParamsSchema, + containerStatsCommandQuerySchema, + containerStopCommandParamsSchema, + containerStopCommandQuerySchema, + containerTopCommandParamsSchema, + containerTopCommandQuerySchema, + containerUnpauseCommandParamsSchema, + containerUpdateCommandBodySchema, + containerUpdateCommandParamsSchema, + containerWaitCommandParamsSchema, + containerWaitCommandQuerySchema, + distributionInspectCommandParamsSchema, + execInspectCommandParamsSchema, + execResizeCommandParamsSchema, + execResizeCommandQuerySchema, + execStartCommandBodySchema, + execStartCommandParamsSchema, + getPluginPrivilegesCommandQuerySchema, + imageBuildCommandQuerySchema, + imageCommitCommandBodySchema, + imageCommitCommandQuerySchema, + imageCreateCommandQuerySchema, + imageDeleteCommandParamsSchema, + imageDeleteCommandQuerySchema, + imageGetAllCommandQuerySchema, + imageGetCommandParamsSchema, + imageHistoryCommandParamsSchema, + imageInspectCommandParamsSchema, + imageListCommandQuerySchema, + imageLoadCommandQuerySchema, + imagePruneCommandQuerySchema, + imagePushCommandParamsSchema, + imagePushCommandQuerySchema, + imageSearchCommandQuerySchema, + imageTagCommandParamsSchema, + imageTagCommandQuerySchema, + networkConnectCommandBodySchema, + networkConnectCommandParamsSchema, + networkCreateCommandBodySchema, + networkDeleteCommandParamsSchema, + networkDisconnectCommandBodySchema, + networkDisconnectCommandParamsSchema, + networkInspectCommandParamsSchema, + networkInspectCommandQuerySchema, + networkListCommandQuerySchema, + networkPruneCommandQuerySchema, + nodeDeleteCommandParamsSchema, + nodeDeleteCommandQuerySchema, + nodeInspectCommandParamsSchema, + nodeListCommandQuerySchema, + nodeUpdateCommandBodySchema, + nodeUpdateCommandParamsSchema, + nodeUpdateCommandQuerySchema, + pluginCreateCommandQuerySchema, + pluginDeleteCommandParamsSchema, + pluginDeleteCommandQuerySchema, + pluginDisableCommandParamsSchema, + pluginDisableCommandQuerySchema, + pluginEnableCommandParamsSchema, + pluginEnableCommandQuerySchema, + pluginInspectCommandParamsSchema, + pluginListCommandQuerySchema, + pluginPullCommandBodySchema, + pluginPullCommandQuerySchema, + pluginPushCommandParamsSchema, + pluginSetCommandBodySchema, + pluginSetCommandParamsSchema, + pluginUpgradeCommandBodySchema, + pluginUpgradeCommandParamsSchema, + pluginUpgradeCommandQuerySchema, + putContainerArchiveCommandParamsSchema, + putContainerArchiveCommandQuerySchema, + secretCreateCommandBodySchema, + secretDeleteCommandParamsSchema, + secretInspectCommandParamsSchema, + secretListCommandQuerySchema, + secretUpdateCommandBodySchema, + secretUpdateCommandParamsSchema, + secretUpdateCommandQuerySchema, + serviceCreateCommandBodySchema, + serviceDeleteCommandParamsSchema, + serviceInspectCommandParamsSchema, + serviceInspectCommandQuerySchema, + serviceListCommandQuerySchema, + serviceLogsCommandParamsSchema, + serviceLogsCommandQuerySchema, + serviceUpdateCommandBodySchema, + serviceUpdateCommandParamsSchema, + serviceUpdateCommandQuerySchema, + swarmInitCommandBodySchema, + swarmJoinCommandBodySchema, + swarmLeaveCommandQuerySchema, + swarmUnlockCommandBodySchema, + swarmUpdateCommandBodySchema, + swarmUpdateCommandQuerySchema, + systemAuthCommandBodySchema, + systemDataUsageCommandQuerySchema, + systemEventsCommandQuerySchema, + taskInspectCommandParamsSchema, + taskListCommandQuerySchema, + taskLogsCommandParamsSchema, + taskLogsCommandQuerySchema, + volumeCreateCommandBodySchema, + volumeDeleteCommandParamsSchema, + volumeDeleteCommandQuerySchema, + volumeInspectCommandParamsSchema, + volumeListCommandQuerySchema, + volumePruneCommandQuerySchema, + volumeUpdateCommandBodySchema, + volumeUpdateCommandParamsSchema, + volumeUpdateCommandQuerySchema, +} from "./valibot.js"; + +async function standardParse( + schema: TSchema, + value: unknown, +): Promise> { + const result = await schema["~standard"].validate(value); + if (result.issues) { + throw PublicValidationError.fromIssues(result.issues); + } + return result.value; +} + +export const containerList = [ + validator("query", (value) => + standardParse(containerListCommandQuerySchema, value), + ), +] as const; +export const containerCreate = [ + validator("json", (value) => + standardParse(containerCreateCommandBodySchema, value), + ), + validator("query", (value) => + standardParse(containerCreateCommandQuerySchema, value), + ), +] as const; +export const containerInspect = [ + validator("param", (value) => + standardParse(containerInspectCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerInspectCommandQuerySchema, value), + ), +] as const; +export const containerTop = [ + validator("param", (value) => + standardParse(containerTopCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerTopCommandQuerySchema, value), + ), +] as const; +export const containerLogs = [ + validator("param", (value) => + standardParse(containerLogsCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerLogsCommandQuerySchema, value), + ), +] as const; +export const containerChanges = [ + validator("param", (value) => + standardParse(containerChangesCommandParamsSchema, value), + ), +] as const; +export const containerExport = [ + validator("param", (value) => + standardParse(containerExportCommandParamsSchema, value), + ), +] as const; +export const containerStats = [ + validator("param", (value) => + standardParse(containerStatsCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerStatsCommandQuerySchema, value), + ), +] as const; +export const containerResize = [ + validator("param", (value) => + standardParse(containerResizeCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerResizeCommandQuerySchema, value), + ), +] as const; +export const containerStart = [ + validator("param", (value) => + standardParse(containerStartCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerStartCommandQuerySchema, value), + ), +] as const; +export const containerStop = [ + validator("param", (value) => + standardParse(containerStopCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerStopCommandQuerySchema, value), + ), +] as const; +export const containerRestart = [ + validator("param", (value) => + standardParse(containerRestartCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerRestartCommandQuerySchema, value), + ), +] as const; +export const containerKill = [ + validator("param", (value) => + standardParse(containerKillCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerKillCommandQuerySchema, value), + ), +] as const; +export const containerUpdate = [ + validator("json", (value) => + standardParse(containerUpdateCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(containerUpdateCommandParamsSchema, value), + ), +] as const; +export const containerRename = [ + validator("param", (value) => + standardParse(containerRenameCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerRenameCommandQuerySchema, value), + ), +] as const; +export const containerPause = [ + validator("param", (value) => + standardParse(containerPauseCommandParamsSchema, value), + ), +] as const; +export const containerUnpause = [ + validator("param", (value) => + standardParse(containerUnpauseCommandParamsSchema, value), + ), +] as const; +export const containerAttach = [ + validator("param", (value) => + standardParse(containerAttachCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerAttachCommandQuerySchema, value), + ), +] as const; +export const containerAttachWebsocket = [ + validator("param", (value) => + standardParse(containerAttachWebsocketCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerAttachWebsocketCommandQuerySchema, value), + ), +] as const; +export const containerWait = [ + validator("param", (value) => + standardParse(containerWaitCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerWaitCommandQuerySchema, value), + ), +] as const; +export const containerDelete = [ + validator("param", (value) => + standardParse(containerDeleteCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerDeleteCommandQuerySchema, value), + ), +] as const; +export const containerArchive = [ + validator("param", (value) => + standardParse(containerArchiveCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerArchiveCommandQuerySchema, value), + ), +] as const; +export const putContainerArchive = [ + validator("param", (value) => + standardParse(putContainerArchiveCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(putContainerArchiveCommandQuerySchema, value), + ), +] as const; +export const containerArchiveInfo = [ + validator("param", (value) => + standardParse(containerArchiveInfoCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(containerArchiveInfoCommandQuerySchema, value), + ), +] as const; +export const containerPrune = [ + validator("query", (value) => + standardParse(containerPruneCommandQuerySchema, value), + ), +] as const; +export const imageList = [ + validator("query", (value) => + standardParse(imageListCommandQuerySchema, value), + ), +] as const; +export const imageBuild = [ + validator("query", (value) => + standardParse(imageBuildCommandQuerySchema, value), + ), +] as const; +export const buildPrune = [ + validator("query", (value) => + standardParse(buildPruneCommandQuerySchema, value), + ), +] as const; +export const imageCreate = [ + validator("query", (value) => + standardParse(imageCreateCommandQuerySchema, value), + ), +] as const; +export const imageInspect = [ + validator("param", (value) => + standardParse(imageInspectCommandParamsSchema, value), + ), +] as const; +export const imageHistory = [ + validator("param", (value) => + standardParse(imageHistoryCommandParamsSchema, value), + ), +] as const; +export const imagePush = [ + validator("param", (value) => + standardParse(imagePushCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(imagePushCommandQuerySchema, value), + ), +] as const; +export const imageTag = [ + validator("param", (value) => + standardParse(imageTagCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(imageTagCommandQuerySchema, value), + ), +] as const; +export const imageDelete = [ + validator("param", (value) => + standardParse(imageDeleteCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(imageDeleteCommandQuerySchema, value), + ), +] as const; +export const imageSearch = [ + validator("query", (value) => + standardParse(imageSearchCommandQuerySchema, value), + ), +] as const; +export const imagePrune = [ + validator("query", (value) => + standardParse(imagePruneCommandQuerySchema, value), + ), +] as const; +export const systemAuth = [ + validator("json", (value) => + standardParse(systemAuthCommandBodySchema, value), + ), +] as const; +export const systemInfo = [] as const; +export const systemVersion = [] as const; +export const systemPing = [] as const; +export const systemPingHead = [] as const; +export const imageCommit = [ + validator("json", (value) => + standardParse(imageCommitCommandBodySchema, value), + ), + validator("query", (value) => + standardParse(imageCommitCommandQuerySchema, value), + ), +] as const; +export const systemEvents = [ + validator("query", (value) => + standardParse(systemEventsCommandQuerySchema, value), + ), +] as const; +export const systemDataUsage = [ + validator("query", (value) => + standardParse(systemDataUsageCommandQuerySchema, value), + ), +] as const; +export const imageGet = [ + validator("param", (value) => + standardParse(imageGetCommandParamsSchema, value), + ), +] as const; +export const imageGetAll = [ + validator("query", (value) => + standardParse(imageGetAllCommandQuerySchema, value), + ), +] as const; +export const imageLoad = [ + validator("query", (value) => + standardParse(imageLoadCommandQuerySchema, value), + ), +] as const; +export const containerExec = [ + validator("json", (value) => + standardParse(containerExecCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(containerExecCommandParamsSchema, value), + ), +] as const; +export const execStart = [ + validator("json", (value) => + standardParse(execStartCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(execStartCommandParamsSchema, value), + ), +] as const; +export const execResize = [ + validator("param", (value) => + standardParse(execResizeCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(execResizeCommandQuerySchema, value), + ), +] as const; +export const execInspect = [ + validator("param", (value) => + standardParse(execInspectCommandParamsSchema, value), + ), +] as const; +export const volumeList = [ + validator("query", (value) => + standardParse(volumeListCommandQuerySchema, value), + ), +] as const; +export const volumeCreate = [ + validator("json", (value) => + standardParse(volumeCreateCommandBodySchema, value), + ), +] as const; +export const volumeInspect = [ + validator("param", (value) => + standardParse(volumeInspectCommandParamsSchema, value), + ), +] as const; +export const volumeUpdate = [ + validator("json", (value) => + standardParse(volumeUpdateCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(volumeUpdateCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(volumeUpdateCommandQuerySchema, value), + ), +] as const; +export const volumeDelete = [ + validator("param", (value) => + standardParse(volumeDeleteCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(volumeDeleteCommandQuerySchema, value), + ), +] as const; +export const volumePrune = [ + validator("query", (value) => + standardParse(volumePruneCommandQuerySchema, value), + ), +] as const; +export const networkList = [ + validator("query", (value) => + standardParse(networkListCommandQuerySchema, value), + ), +] as const; +export const networkInspect = [ + validator("param", (value) => + standardParse(networkInspectCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(networkInspectCommandQuerySchema, value), + ), +] as const; +export const networkDelete = [ + validator("param", (value) => + standardParse(networkDeleteCommandParamsSchema, value), + ), +] as const; +export const networkCreate = [ + validator("json", (value) => + standardParse(networkCreateCommandBodySchema, value), + ), +] as const; +export const networkConnect = [ + validator("json", (value) => + standardParse(networkConnectCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(networkConnectCommandParamsSchema, value), + ), +] as const; +export const networkDisconnect = [ + validator("json", (value) => + standardParse(networkDisconnectCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(networkDisconnectCommandParamsSchema, value), + ), +] as const; +export const networkPrune = [ + validator("query", (value) => + standardParse(networkPruneCommandQuerySchema, value), + ), +] as const; +export const pluginList = [ + validator("query", (value) => + standardParse(pluginListCommandQuerySchema, value), + ), +] as const; +export const getPluginPrivileges = [ + validator("query", (value) => + standardParse(getPluginPrivilegesCommandQuerySchema, value), + ), +] as const; +export const pluginPull = [ + validator("json", (value) => + standardParse(pluginPullCommandBodySchema, value), + ), + validator("query", (value) => + standardParse(pluginPullCommandQuerySchema, value), + ), +] as const; +export const pluginInspect = [ + validator("param", (value) => + standardParse(pluginInspectCommandParamsSchema, value), + ), +] as const; +export const pluginDelete = [ + validator("param", (value) => + standardParse(pluginDeleteCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(pluginDeleteCommandQuerySchema, value), + ), +] as const; +export const pluginEnable = [ + validator("param", (value) => + standardParse(pluginEnableCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(pluginEnableCommandQuerySchema, value), + ), +] as const; +export const pluginDisable = [ + validator("param", (value) => + standardParse(pluginDisableCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(pluginDisableCommandQuerySchema, value), + ), +] as const; +export const pluginUpgrade = [ + validator("json", (value) => + standardParse(pluginUpgradeCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(pluginUpgradeCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(pluginUpgradeCommandQuerySchema, value), + ), +] as const; +export const pluginCreate = [ + validator("query", (value) => + standardParse(pluginCreateCommandQuerySchema, value), + ), +] as const; +export const pluginPush = [ + validator("param", (value) => + standardParse(pluginPushCommandParamsSchema, value), + ), +] as const; +export const pluginSet = [ + validator("json", (value) => + standardParse(pluginSetCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(pluginSetCommandParamsSchema, value), + ), +] as const; +export const nodeList = [ + validator("query", (value) => + standardParse(nodeListCommandQuerySchema, value), + ), +] as const; +export const nodeInspect = [ + validator("param", (value) => + standardParse(nodeInspectCommandParamsSchema, value), + ), +] as const; +export const nodeDelete = [ + validator("param", (value) => + standardParse(nodeDeleteCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(nodeDeleteCommandQuerySchema, value), + ), +] as const; +export const nodeUpdate = [ + validator("json", (value) => + standardParse(nodeUpdateCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(nodeUpdateCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(nodeUpdateCommandQuerySchema, value), + ), +] as const; +export const swarmInspect = [] as const; +export const swarmInit = [ + validator("json", (value) => + standardParse(swarmInitCommandBodySchema, value), + ), +] as const; +export const swarmJoin = [ + validator("json", (value) => + standardParse(swarmJoinCommandBodySchema, value), + ), +] as const; +export const swarmLeave = [ + validator("query", (value) => + standardParse(swarmLeaveCommandQuerySchema, value), + ), +] as const; +export const swarmUpdate = [ + validator("json", (value) => + standardParse(swarmUpdateCommandBodySchema, value), + ), + validator("query", (value) => + standardParse(swarmUpdateCommandQuerySchema, value), + ), +] as const; +export const swarmUnlockkey = [] as const; +export const swarmUnlock = [ + validator("json", (value) => + standardParse(swarmUnlockCommandBodySchema, value), + ), +] as const; +export const serviceList = [ + validator("query", (value) => + standardParse(serviceListCommandQuerySchema, value), + ), +] as const; +export const serviceCreate = [ + validator("json", (value) => + standardParse(serviceCreateCommandBodySchema, value), + ), +] as const; +export const serviceInspect = [ + validator("param", (value) => + standardParse(serviceInspectCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(serviceInspectCommandQuerySchema, value), + ), +] as const; +export const serviceDelete = [ + validator("param", (value) => + standardParse(serviceDeleteCommandParamsSchema, value), + ), +] as const; +export const serviceUpdate = [ + validator("json", (value) => + standardParse(serviceUpdateCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(serviceUpdateCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(serviceUpdateCommandQuerySchema, value), + ), +] as const; +export const serviceLogs = [ + validator("param", (value) => + standardParse(serviceLogsCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(serviceLogsCommandQuerySchema, value), + ), +] as const; +export const taskList = [ + validator("query", (value) => + standardParse(taskListCommandQuerySchema, value), + ), +] as const; +export const taskInspect = [ + validator("param", (value) => + standardParse(taskInspectCommandParamsSchema, value), + ), +] as const; +export const taskLogs = [ + validator("param", (value) => + standardParse(taskLogsCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(taskLogsCommandQuerySchema, value), + ), +] as const; +export const secretList = [ + validator("query", (value) => + standardParse(secretListCommandQuerySchema, value), + ), +] as const; +export const secretCreate = [ + validator("json", (value) => + standardParse(secretCreateCommandBodySchema, value), + ), +] as const; +export const secretInspect = [ + validator("param", (value) => + standardParse(secretInspectCommandParamsSchema, value), + ), +] as const; +export const secretDelete = [ + validator("param", (value) => + standardParse(secretDeleteCommandParamsSchema, value), + ), +] as const; +export const secretUpdate = [ + validator("json", (value) => + standardParse(secretUpdateCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(secretUpdateCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(secretUpdateCommandQuerySchema, value), + ), +] as const; +export const configList = [ + validator("query", (value) => + standardParse(configListCommandQuerySchema, value), + ), +] as const; +export const configCreate = [ + validator("json", (value) => + standardParse(configCreateCommandBodySchema, value), + ), +] as const; +export const configInspect = [ + validator("param", (value) => + standardParse(configInspectCommandParamsSchema, value), + ), +] as const; +export const configDelete = [ + validator("param", (value) => + standardParse(configDeleteCommandParamsSchema, value), + ), +] as const; +export const configUpdate = [ + validator("json", (value) => + standardParse(configUpdateCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(configUpdateCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(configUpdateCommandQuerySchema, value), + ), +] as const; +export const distributionInspect = [ + validator("param", (value) => + standardParse(distributionInspectCommandParamsSchema, value), + ), +] as const; +export const session = [] as const; diff --git a/__tests__/fixtures/docker/main.ts b/__tests__/fixtures/docker/main.ts index c5d955e..7ab8c44 100644 --- a/__tests__/fixtures/docker/main.ts +++ b/__tests__/fixtures/docker/main.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:18:39.851Z + * Generated on 2026-09-02T06:50:50.541Z (rev 58de2e8988d1887aa3674def93a3f438) * */ import { diff --git a/__tests__/fixtures/docker/types.ts b/__tests__/fixtures/docker/types.ts index 69b5c09..564d1d3 100644 --- a/__tests__/fixtures/docker/types.ts +++ b/__tests__/fixtures/docker/types.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:18:39.851Z + * Generated on 2026-09-02T06:50:50.156Z (rev 62542d7746647f792d6ff83347d682c9) * */ import type { Jsonifiable, UndefinedOnPartialDeep } from "type-fest"; diff --git a/__tests__/fixtures/docker/valibot.ts b/__tests__/fixtures/docker/valibot.ts index d73aaa3..8d40785 100644 --- a/__tests__/fixtures/docker/valibot.ts +++ b/__tests__/fixtures/docker/valibot.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:18:39.851Z + * Generated on 2026-09-02T06:50:50.557Z (rev f21d316668b7a29382a1d94d2b4efb32) * */ import * as v from "valibot"; diff --git a/__tests__/fixtures/openai/commands-validated.ts b/__tests__/fixtures/openai/commands-validated.ts index 41813a9..40e3af7 100644 --- a/__tests__/fixtures/openai/commands-validated.ts +++ b/__tests__/fixtures/openai/commands-validated.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:36.716Z + * Generated on 2026-09-02T06:48:37.814Z (rev 9c586c6cd3b6f9d902e16c1b55e764ca) * */ /** eslint-disable max-classes */ diff --git a/__tests__/fixtures/openai/commands.ts b/__tests__/fixtures/openai/commands.ts index 71fd8a0..5e07995 100644 --- a/__tests__/fixtures/openai/commands.ts +++ b/__tests__/fixtures/openai/commands.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:36.716Z + * Generated on 2026-09-02T06:48:37.094Z (rev 91f4e2248d61c60590434de8fcd2d200) * */ /** eslint-disable max-classes */ diff --git a/__tests__/fixtures/openai/enums.ts b/__tests__/fixtures/openai/enums.ts index ff52e70..d9a3a40 100644 --- a/__tests__/fixtures/openai/enums.ts +++ b/__tests__/fixtures/openai/enums.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:36.716Z + * Generated on 2026-09-02T06:48:37.833Z (rev b88a787c96c9710608d0e7d95dcd195e) * */ /** The role of the author of a message */ diff --git a/__tests__/fixtures/openai/hono-valibot.ts b/__tests__/fixtures/openai/hono-valibot.ts deleted file mode 100644 index 5ff13be..0000000 --- a/__tests__/fixtures/openai/hono-valibot.ts +++ /dev/null @@ -1,899 +0,0 @@ -import { PublicValibotHonoError } from "@block65/rest-client"; -/** - * This file was auto generated by @block65/openapi-codegen - * - * WARN: Do not edit directly. - * - * Generated on 2026-06-09T09:17:36.716Z - * - */ -import { validator } from "hono/validator"; -import * as v from "valibot"; -import { - addUploadPartCommandParamsSchema, - archiveProjectCommandParamsSchema, - cancelBatchCommandParamsSchema, - cancelFineTuningJobCommandParamsSchema, - cancelRunCommandParamsSchema, - cancelUploadCommandParamsSchema, - cancelVectorStoreFileBatchCommandParamsSchema, - completeUploadCommandBodySchema, - completeUploadCommandParamsSchema, - createAssistantCommandBodySchema, - createBatchCommandBodySchema, - createChatCompletionCommandBodySchema, - createCompletionCommandBodySchema, - createEmbeddingCommandBodySchema, - createFineTuningJobCommandBodySchema, - createImageCommandBodySchema, - createMessageCommandBodySchema, - createMessageCommandParamsSchema, - createModerationCommandBodySchema, - createProjectCommandBodySchema, - createProjectServiceAccountCommandBodySchema, - createProjectServiceAccountCommandParamsSchema, - createProjectUserCommandBodySchema, - createProjectUserCommandParamsSchema, - createRunCommandBodySchema, - createRunCommandParamsSchema, - createRunCommandQuerySchema, - createSpeechCommandBodySchema, - createThreadAndRunCommandBodySchema, - createThreadCommandBodySchema, - createUploadCommandBodySchema, - createVectorStoreCommandBodySchema, - createVectorStoreFileBatchCommandBodySchema, - createVectorStoreFileBatchCommandParamsSchema, - createVectorStoreFileCommandBodySchema, - createVectorStoreFileCommandParamsSchema, - deleteAssistantCommandParamsSchema, - deleteFileCommandParamsSchema, - deleteInviteCommandParamsSchema, - deleteMessageCommandParamsSchema, - deleteModelCommandParamsSchema, - deleteProjectApiKeyCommandParamsSchema, - deleteProjectServiceAccountCommandParamsSchema, - deleteProjectUserCommandParamsSchema, - deleteThreadCommandParamsSchema, - deleteUserCommandParamsSchema, - deleteVectorStoreCommandParamsSchema, - deleteVectorStoreFileCommandParamsSchema, - downloadFileCommandParamsSchema, - getAssistantCommandParamsSchema, - getMessageCommandParamsSchema, - getRunCommandParamsSchema, - getRunStepCommandParamsSchema, - getRunStepCommandQuerySchema, - getThreadCommandParamsSchema, - getVectorStoreCommandParamsSchema, - getVectorStoreFileBatchCommandParamsSchema, - getVectorStoreFileCommandParamsSchema, - inviteUserCommandBodySchema, - listAssistantsCommandQuerySchema, - listAuditLogsCommandQuerySchema, - listBatchesCommandQuerySchema, - listFilesCommandQuerySchema, - listFilesInVectorStoreBatchCommandParamsSchema, - listFilesInVectorStoreBatchCommandQuerySchema, - listFineTuningEventsCommandParamsSchema, - listFineTuningEventsCommandQuerySchema, - listFineTuningJobCheckpointsCommandParamsSchema, - listFineTuningJobCheckpointsCommandQuerySchema, - listInvitesCommandQuerySchema, - listMessagesCommandParamsSchema, - listMessagesCommandQuerySchema, - listPaginatedFineTuningJobsCommandQuerySchema, - listProjectApiKeysCommandParamsSchema, - listProjectApiKeysCommandQuerySchema, - listProjectServiceAccountsCommandParamsSchema, - listProjectServiceAccountsCommandQuerySchema, - listProjectUsersCommandParamsSchema, - listProjectUsersCommandQuerySchema, - listProjectsCommandQuerySchema, - listRunStepsCommandParamsSchema, - listRunStepsCommandQuerySchema, - listRunsCommandParamsSchema, - listRunsCommandQuerySchema, - listUsersCommandQuerySchema, - listVectorStoreFilesCommandParamsSchema, - listVectorStoreFilesCommandQuerySchema, - listVectorStoresCommandQuerySchema, - modifyAssistantCommandBodySchema, - modifyAssistantCommandParamsSchema, - modifyMessageCommandBodySchema, - modifyMessageCommandParamsSchema, - modifyProjectCommandBodySchema, - modifyProjectCommandParamsSchema, - modifyProjectUserCommandBodySchema, - modifyProjectUserCommandParamsSchema, - modifyRunCommandBodySchema, - modifyRunCommandParamsSchema, - modifyThreadCommandBodySchema, - modifyThreadCommandParamsSchema, - modifyUserCommandBodySchema, - modifyUserCommandParamsSchema, - modifyVectorStoreCommandBodySchema, - modifyVectorStoreCommandParamsSchema, - retrieveBatchCommandParamsSchema, - retrieveFileCommandParamsSchema, - retrieveFineTuningJobCommandParamsSchema, - retrieveInviteCommandParamsSchema, - retrieveModelCommandParamsSchema, - retrieveProjectApiKeyCommandParamsSchema, - retrieveProjectCommandParamsSchema, - retrieveProjectServiceAccountCommandParamsSchema, - retrieveProjectUserCommandParamsSchema, - retrieveUserCommandParamsSchema, - submitToolOuputsToRunCommandBodySchema, - submitToolOuputsToRunCommandParamsSchema, -} from "./valibot.js"; - -function toPublicValibotHonoError(err: unknown): never { - if (err instanceof v.ValiError) { - throw PublicValibotHonoError.from(err); - } - throw err; -} - -export const createChatCompletion = [ - validator("json", (value) => { - return v - .parseAsync(createChatCompletionCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createCompletion = [ - validator("json", (value) => { - return v - .parseAsync(createCompletionCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createImage = [ - validator("json", (value) => { - return v - .parseAsync(createImageCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createImageEdit = [] as const; -export const createImageVariation = [] as const; -export const createEmbedding = [ - validator("json", (value) => { - return v - .parseAsync(createEmbeddingCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createSpeech = [ - validator("json", (value) => { - return v - .parseAsync(createSpeechCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createTranscription = [] as const; -export const createTranslation = [] as const; -export const listFiles = [ - validator("query", (value) => { - return v - .parseAsync(listFilesCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createFile = [] as const; -export const deleteFile = [ - validator("param", (value) => { - return v - .parseAsync(deleteFileCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const retrieveFile = [ - validator("param", (value) => { - return v - .parseAsync(retrieveFileCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const downloadFile = [ - validator("param", (value) => { - return v - .parseAsync(downloadFileCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createUpload = [ - validator("json", (value) => { - return v - .parseAsync(createUploadCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const addUploadPart = [ - validator("param", (value) => { - return v - .parseAsync(addUploadPartCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const completeUpload = [ - validator("json", (value) => { - return v - .parseAsync(completeUploadCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(completeUploadCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const cancelUpload = [ - validator("param", (value) => { - return v - .parseAsync(cancelUploadCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createFineTuningJob = [ - validator("json", (value) => { - return v - .parseAsync(createFineTuningJobCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listPaginatedFineTuningJobs = [ - validator("query", (value) => { - return v - .parseAsync(listPaginatedFineTuningJobsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const retrieveFineTuningJob = [ - validator("param", (value) => { - return v - .parseAsync(retrieveFineTuningJobCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listFineTuningEvents = [ - validator("param", (value) => { - return v - .parseAsync(listFineTuningEventsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listFineTuningEventsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const cancelFineTuningJob = [ - validator("param", (value) => { - return v - .parseAsync(cancelFineTuningJobCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listFineTuningJobCheckpoints = [ - validator("param", (value) => { - return v - .parseAsync(listFineTuningJobCheckpointsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listFineTuningJobCheckpointsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listModels = [] as const; -export const retrieveModel = [ - validator("param", (value) => { - return v - .parseAsync(retrieveModelCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteModel = [ - validator("param", (value) => { - return v - .parseAsync(deleteModelCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createModeration = [ - validator("json", (value) => { - return v - .parseAsync(createModerationCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listAssistants = [ - validator("query", (value) => { - return v - .parseAsync(listAssistantsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createAssistant = [ - validator("json", (value) => { - return v - .parseAsync(createAssistantCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getAssistant = [ - validator("param", (value) => { - return v - .parseAsync(getAssistantCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const modifyAssistant = [ - validator("json", (value) => { - return v - .parseAsync(modifyAssistantCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(modifyAssistantCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteAssistant = [ - validator("param", (value) => { - return v - .parseAsync(deleteAssistantCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createThread = [ - validator("json", (value) => { - return v - .parseAsync(createThreadCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getThread = [ - validator("param", (value) => { - return v - .parseAsync(getThreadCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const modifyThread = [ - validator("json", (value) => { - return v - .parseAsync(modifyThreadCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(modifyThreadCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteThread = [ - validator("param", (value) => { - return v - .parseAsync(deleteThreadCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listMessages = [ - validator("param", (value) => { - return v - .parseAsync(listMessagesCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listMessagesCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createMessage = [ - validator("json", (value) => { - return v - .parseAsync(createMessageCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(createMessageCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getMessage = [ - validator("param", (value) => { - return v - .parseAsync(getMessageCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const modifyMessage = [ - validator("json", (value) => { - return v - .parseAsync(modifyMessageCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(modifyMessageCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteMessage = [ - validator("param", (value) => { - return v - .parseAsync(deleteMessageCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createThreadAndRun = [ - validator("json", (value) => { - return v - .parseAsync(createThreadAndRunCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listRuns = [ - validator("param", (value) => { - return v - .parseAsync(listRunsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listRunsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createRun = [ - validator("json", (value) => { - return v - .parseAsync(createRunCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(createRunCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(createRunCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getRun = [ - validator("param", (value) => { - return v - .parseAsync(getRunCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const modifyRun = [ - validator("json", (value) => { - return v - .parseAsync(modifyRunCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(modifyRunCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const submitToolOuputsToRun = [ - validator("json", (value) => { - return v - .parseAsync(submitToolOuputsToRunCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(submitToolOuputsToRunCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const cancelRun = [ - validator("param", (value) => { - return v - .parseAsync(cancelRunCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listRunSteps = [ - validator("param", (value) => { - return v - .parseAsync(listRunStepsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listRunStepsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getRunStep = [ - validator("param", (value) => { - return v - .parseAsync(getRunStepCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(getRunStepCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listVectorStores = [ - validator("query", (value) => { - return v - .parseAsync(listVectorStoresCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createVectorStore = [ - validator("json", (value) => { - return v - .parseAsync(createVectorStoreCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getVectorStore = [ - validator("param", (value) => { - return v - .parseAsync(getVectorStoreCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const modifyVectorStore = [ - validator("json", (value) => { - return v - .parseAsync(modifyVectorStoreCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(modifyVectorStoreCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteVectorStore = [ - validator("param", (value) => { - return v - .parseAsync(deleteVectorStoreCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listVectorStoreFiles = [ - validator("param", (value) => { - return v - .parseAsync(listVectorStoreFilesCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listVectorStoreFilesCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createVectorStoreFile = [ - validator("json", (value) => { - return v - .parseAsync(createVectorStoreFileCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(createVectorStoreFileCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getVectorStoreFile = [ - validator("param", (value) => { - return v - .parseAsync(getVectorStoreFileCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteVectorStoreFile = [ - validator("param", (value) => { - return v - .parseAsync(deleteVectorStoreFileCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createVectorStoreFileBatch = [ - validator("json", (value) => { - return v - .parseAsync(createVectorStoreFileBatchCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(createVectorStoreFileBatchCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getVectorStoreFileBatch = [ - validator("param", (value) => { - return v - .parseAsync(getVectorStoreFileBatchCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const cancelVectorStoreFileBatch = [ - validator("param", (value) => { - return v - .parseAsync(cancelVectorStoreFileBatchCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listFilesInVectorStoreBatch = [ - validator("param", (value) => { - return v - .parseAsync(listFilesInVectorStoreBatchCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listFilesInVectorStoreBatchCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createBatch = [ - validator("json", (value) => { - return v - .parseAsync(createBatchCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listBatches = [ - validator("query", (value) => { - return v - .parseAsync(listBatchesCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const retrieveBatch = [ - validator("param", (value) => { - return v - .parseAsync(retrieveBatchCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const cancelBatch = [ - validator("param", (value) => { - return v - .parseAsync(cancelBatchCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listauditlogs = [ - validator("query", (value) => { - return v - .parseAsync(listAuditLogsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listinvites = [ - validator("query", (value) => { - return v - .parseAsync(listInvitesCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const inviteUser = [ - validator("json", (value) => { - return v - .parseAsync(inviteUserCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const retrieveinvite = [ - validator("param", (value) => { - return v - .parseAsync(retrieveInviteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteinvite = [ - validator("param", (value) => { - return v - .parseAsync(deleteInviteCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listusers = [ - validator("query", (value) => { - return v - .parseAsync(listUsersCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const retrieveuser = [ - validator("param", (value) => { - return v - .parseAsync(retrieveUserCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const modifyuser = [ - validator("json", (value) => { - return v - .parseAsync(modifyUserCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(modifyUserCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteuser = [ - validator("param", (value) => { - return v - .parseAsync(deleteUserCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listprojects = [ - validator("query", (value) => { - return v - .parseAsync(listProjectsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createproject = [ - validator("json", (value) => { - return v - .parseAsync(createProjectCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const retrieveproject = [ - validator("param", (value) => { - return v - .parseAsync(retrieveProjectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const modifyproject = [ - validator("json", (value) => { - return v - .parseAsync(modifyProjectCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(modifyProjectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const archiveproject = [ - validator("param", (value) => { - return v - .parseAsync(archiveProjectCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listprojectusers = [ - validator("param", (value) => { - return v - .parseAsync(listProjectUsersCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listProjectUsersCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createprojectuser = [ - validator("json", (value) => { - return v - .parseAsync(createProjectUserCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(createProjectUserCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const retrieveprojectuser = [ - validator("param", (value) => { - return v - .parseAsync(retrieveProjectUserCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const modifyprojectuser = [ - validator("json", (value) => { - return v - .parseAsync(modifyProjectUserCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(modifyProjectUserCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteprojectuser = [ - validator("param", (value) => { - return v - .parseAsync(deleteProjectUserCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listprojectserviceaccounts = [ - validator("param", (value) => { - return v - .parseAsync(listProjectServiceAccountsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listProjectServiceAccountsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createprojectserviceaccount = [ - validator("json", (value) => { - return v - .parseAsync(createProjectServiceAccountCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(createProjectServiceAccountCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const retrieveprojectserviceaccount = [ - validator("param", (value) => { - return v - .parseAsync(retrieveProjectServiceAccountCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteprojectserviceaccount = [ - validator("param", (value) => { - return v - .parseAsync(deleteProjectServiceAccountCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listprojectapikeys = [ - validator("param", (value) => { - return v - .parseAsync(listProjectApiKeysCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), - validator("query", (value) => { - return v - .parseAsync(listProjectApiKeysCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const retrieveprojectapikey = [ - validator("param", (value) => { - return v - .parseAsync(retrieveProjectApiKeyCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deleteprojectapikey = [ - validator("param", (value) => { - return v - .parseAsync(deleteProjectApiKeyCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; diff --git a/__tests__/fixtures/openai/hono.ts b/__tests__/fixtures/openai/hono.ts new file mode 100644 index 0000000..133e75e --- /dev/null +++ b/__tests__/fixtures/openai/hono.ts @@ -0,0 +1,671 @@ +import { PublicValidationError } from "@block65/rest-client"; +import type { StandardSchemaV1 } from "@standard-schema/spec"; +/** + * This file was auto generated by @block65/openapi-codegen + * + * WARN: Do not edit directly. + * + * Generated on 2026-09-02T06:48:37.791Z (rev 0b662cef5ddf1b9f903e207afbb88df2) + * + */ +import { validator } from "hono/validator"; +import { + addUploadPartCommandParamsSchema, + archiveProjectCommandParamsSchema, + cancelBatchCommandParamsSchema, + cancelFineTuningJobCommandParamsSchema, + cancelRunCommandParamsSchema, + cancelUploadCommandParamsSchema, + cancelVectorStoreFileBatchCommandParamsSchema, + completeUploadCommandBodySchema, + completeUploadCommandParamsSchema, + createAssistantCommandBodySchema, + createBatchCommandBodySchema, + createChatCompletionCommandBodySchema, + createCompletionCommandBodySchema, + createEmbeddingCommandBodySchema, + createFineTuningJobCommandBodySchema, + createImageCommandBodySchema, + createMessageCommandBodySchema, + createMessageCommandParamsSchema, + createModerationCommandBodySchema, + createProjectCommandBodySchema, + createProjectServiceAccountCommandBodySchema, + createProjectServiceAccountCommandParamsSchema, + createProjectUserCommandBodySchema, + createProjectUserCommandParamsSchema, + createRunCommandBodySchema, + createRunCommandParamsSchema, + createRunCommandQuerySchema, + createSpeechCommandBodySchema, + createThreadAndRunCommandBodySchema, + createThreadCommandBodySchema, + createUploadCommandBodySchema, + createVectorStoreCommandBodySchema, + createVectorStoreFileBatchCommandBodySchema, + createVectorStoreFileBatchCommandParamsSchema, + createVectorStoreFileCommandBodySchema, + createVectorStoreFileCommandParamsSchema, + deleteAssistantCommandParamsSchema, + deleteFileCommandParamsSchema, + deleteInviteCommandParamsSchema, + deleteMessageCommandParamsSchema, + deleteModelCommandParamsSchema, + deleteProjectApiKeyCommandParamsSchema, + deleteProjectServiceAccountCommandParamsSchema, + deleteProjectUserCommandParamsSchema, + deleteThreadCommandParamsSchema, + deleteUserCommandParamsSchema, + deleteVectorStoreCommandParamsSchema, + deleteVectorStoreFileCommandParamsSchema, + downloadFileCommandParamsSchema, + getAssistantCommandParamsSchema, + getMessageCommandParamsSchema, + getRunCommandParamsSchema, + getRunStepCommandParamsSchema, + getRunStepCommandQuerySchema, + getThreadCommandParamsSchema, + getVectorStoreCommandParamsSchema, + getVectorStoreFileBatchCommandParamsSchema, + getVectorStoreFileCommandParamsSchema, + inviteUserCommandBodySchema, + listAssistantsCommandQuerySchema, + listAuditLogsCommandQuerySchema, + listBatchesCommandQuerySchema, + listFilesCommandQuerySchema, + listFilesInVectorStoreBatchCommandParamsSchema, + listFilesInVectorStoreBatchCommandQuerySchema, + listFineTuningEventsCommandParamsSchema, + listFineTuningEventsCommandQuerySchema, + listFineTuningJobCheckpointsCommandParamsSchema, + listFineTuningJobCheckpointsCommandQuerySchema, + listInvitesCommandQuerySchema, + listMessagesCommandParamsSchema, + listMessagesCommandQuerySchema, + listPaginatedFineTuningJobsCommandQuerySchema, + listProjectApiKeysCommandParamsSchema, + listProjectApiKeysCommandQuerySchema, + listProjectServiceAccountsCommandParamsSchema, + listProjectServiceAccountsCommandQuerySchema, + listProjectUsersCommandParamsSchema, + listProjectUsersCommandQuerySchema, + listProjectsCommandQuerySchema, + listRunStepsCommandParamsSchema, + listRunStepsCommandQuerySchema, + listRunsCommandParamsSchema, + listRunsCommandQuerySchema, + listUsersCommandQuerySchema, + listVectorStoreFilesCommandParamsSchema, + listVectorStoreFilesCommandQuerySchema, + listVectorStoresCommandQuerySchema, + modifyAssistantCommandBodySchema, + modifyAssistantCommandParamsSchema, + modifyMessageCommandBodySchema, + modifyMessageCommandParamsSchema, + modifyProjectCommandBodySchema, + modifyProjectCommandParamsSchema, + modifyProjectUserCommandBodySchema, + modifyProjectUserCommandParamsSchema, + modifyRunCommandBodySchema, + modifyRunCommandParamsSchema, + modifyThreadCommandBodySchema, + modifyThreadCommandParamsSchema, + modifyUserCommandBodySchema, + modifyUserCommandParamsSchema, + modifyVectorStoreCommandBodySchema, + modifyVectorStoreCommandParamsSchema, + retrieveBatchCommandParamsSchema, + retrieveFileCommandParamsSchema, + retrieveFineTuningJobCommandParamsSchema, + retrieveInviteCommandParamsSchema, + retrieveModelCommandParamsSchema, + retrieveProjectApiKeyCommandParamsSchema, + retrieveProjectCommandParamsSchema, + retrieveProjectServiceAccountCommandParamsSchema, + retrieveProjectUserCommandParamsSchema, + retrieveUserCommandParamsSchema, + submitToolOuputsToRunCommandBodySchema, + submitToolOuputsToRunCommandParamsSchema, +} from "./valibot.js"; + +async function standardParse( + schema: TSchema, + value: unknown, +): Promise> { + const result = await schema["~standard"].validate(value); + if (result.issues) { + throw PublicValidationError.fromIssues(result.issues); + } + return result.value; +} + +export const createChatCompletion = [ + validator("json", (value) => + standardParse(createChatCompletionCommandBodySchema, value), + ), +] as const; +export const createCompletion = [ + validator("json", (value) => + standardParse(createCompletionCommandBodySchema, value), + ), +] as const; +export const createImage = [ + validator("json", (value) => + standardParse(createImageCommandBodySchema, value), + ), +] as const; +export const createImageEdit = [] as const; +export const createImageVariation = [] as const; +export const createEmbedding = [ + validator("json", (value) => + standardParse(createEmbeddingCommandBodySchema, value), + ), +] as const; +export const createSpeech = [ + validator("json", (value) => + standardParse(createSpeechCommandBodySchema, value), + ), +] as const; +export const createTranscription = [] as const; +export const createTranslation = [] as const; +export const listFiles = [ + validator("query", (value) => + standardParse(listFilesCommandQuerySchema, value), + ), +] as const; +export const createFile = [] as const; +export const deleteFile = [ + validator("param", (value) => + standardParse(deleteFileCommandParamsSchema, value), + ), +] as const; +export const retrieveFile = [ + validator("param", (value) => + standardParse(retrieveFileCommandParamsSchema, value), + ), +] as const; +export const downloadFile = [ + validator("param", (value) => + standardParse(downloadFileCommandParamsSchema, value), + ), +] as const; +export const createUpload = [ + validator("json", (value) => + standardParse(createUploadCommandBodySchema, value), + ), +] as const; +export const addUploadPart = [ + validator("param", (value) => + standardParse(addUploadPartCommandParamsSchema, value), + ), +] as const; +export const completeUpload = [ + validator("json", (value) => + standardParse(completeUploadCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(completeUploadCommandParamsSchema, value), + ), +] as const; +export const cancelUpload = [ + validator("param", (value) => + standardParse(cancelUploadCommandParamsSchema, value), + ), +] as const; +export const createFineTuningJob = [ + validator("json", (value) => + standardParse(createFineTuningJobCommandBodySchema, value), + ), +] as const; +export const listPaginatedFineTuningJobs = [ + validator("query", (value) => + standardParse(listPaginatedFineTuningJobsCommandQuerySchema, value), + ), +] as const; +export const retrieveFineTuningJob = [ + validator("param", (value) => + standardParse(retrieveFineTuningJobCommandParamsSchema, value), + ), +] as const; +export const listFineTuningEvents = [ + validator("param", (value) => + standardParse(listFineTuningEventsCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listFineTuningEventsCommandQuerySchema, value), + ), +] as const; +export const cancelFineTuningJob = [ + validator("param", (value) => + standardParse(cancelFineTuningJobCommandParamsSchema, value), + ), +] as const; +export const listFineTuningJobCheckpoints = [ + validator("param", (value) => + standardParse(listFineTuningJobCheckpointsCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listFineTuningJobCheckpointsCommandQuerySchema, value), + ), +] as const; +export const listModels = [] as const; +export const retrieveModel = [ + validator("param", (value) => + standardParse(retrieveModelCommandParamsSchema, value), + ), +] as const; +export const deleteModel = [ + validator("param", (value) => + standardParse(deleteModelCommandParamsSchema, value), + ), +] as const; +export const createModeration = [ + validator("json", (value) => + standardParse(createModerationCommandBodySchema, value), + ), +] as const; +export const listAssistants = [ + validator("query", (value) => + standardParse(listAssistantsCommandQuerySchema, value), + ), +] as const; +export const createAssistant = [ + validator("json", (value) => + standardParse(createAssistantCommandBodySchema, value), + ), +] as const; +export const getAssistant = [ + validator("param", (value) => + standardParse(getAssistantCommandParamsSchema, value), + ), +] as const; +export const modifyAssistant = [ + validator("json", (value) => + standardParse(modifyAssistantCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(modifyAssistantCommandParamsSchema, value), + ), +] as const; +export const deleteAssistant = [ + validator("param", (value) => + standardParse(deleteAssistantCommandParamsSchema, value), + ), +] as const; +export const createThread = [ + validator("json", (value) => + standardParse(createThreadCommandBodySchema, value), + ), +] as const; +export const getThread = [ + validator("param", (value) => + standardParse(getThreadCommandParamsSchema, value), + ), +] as const; +export const modifyThread = [ + validator("json", (value) => + standardParse(modifyThreadCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(modifyThreadCommandParamsSchema, value), + ), +] as const; +export const deleteThread = [ + validator("param", (value) => + standardParse(deleteThreadCommandParamsSchema, value), + ), +] as const; +export const listMessages = [ + validator("param", (value) => + standardParse(listMessagesCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listMessagesCommandQuerySchema, value), + ), +] as const; +export const createMessage = [ + validator("json", (value) => + standardParse(createMessageCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(createMessageCommandParamsSchema, value), + ), +] as const; +export const getMessage = [ + validator("param", (value) => + standardParse(getMessageCommandParamsSchema, value), + ), +] as const; +export const modifyMessage = [ + validator("json", (value) => + standardParse(modifyMessageCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(modifyMessageCommandParamsSchema, value), + ), +] as const; +export const deleteMessage = [ + validator("param", (value) => + standardParse(deleteMessageCommandParamsSchema, value), + ), +] as const; +export const createThreadAndRun = [ + validator("json", (value) => + standardParse(createThreadAndRunCommandBodySchema, value), + ), +] as const; +export const listRuns = [ + validator("param", (value) => + standardParse(listRunsCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listRunsCommandQuerySchema, value), + ), +] as const; +export const createRun = [ + validator("json", (value) => + standardParse(createRunCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(createRunCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(createRunCommandQuerySchema, value), + ), +] as const; +export const getRun = [ + validator("param", (value) => + standardParse(getRunCommandParamsSchema, value), + ), +] as const; +export const modifyRun = [ + validator("json", (value) => + standardParse(modifyRunCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(modifyRunCommandParamsSchema, value), + ), +] as const; +export const submitToolOuputsToRun = [ + validator("json", (value) => + standardParse(submitToolOuputsToRunCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(submitToolOuputsToRunCommandParamsSchema, value), + ), +] as const; +export const cancelRun = [ + validator("param", (value) => + standardParse(cancelRunCommandParamsSchema, value), + ), +] as const; +export const listRunSteps = [ + validator("param", (value) => + standardParse(listRunStepsCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listRunStepsCommandQuerySchema, value), + ), +] as const; +export const getRunStep = [ + validator("param", (value) => + standardParse(getRunStepCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(getRunStepCommandQuerySchema, value), + ), +] as const; +export const listVectorStores = [ + validator("query", (value) => + standardParse(listVectorStoresCommandQuerySchema, value), + ), +] as const; +export const createVectorStore = [ + validator("json", (value) => + standardParse(createVectorStoreCommandBodySchema, value), + ), +] as const; +export const getVectorStore = [ + validator("param", (value) => + standardParse(getVectorStoreCommandParamsSchema, value), + ), +] as const; +export const modifyVectorStore = [ + validator("json", (value) => + standardParse(modifyVectorStoreCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(modifyVectorStoreCommandParamsSchema, value), + ), +] as const; +export const deleteVectorStore = [ + validator("param", (value) => + standardParse(deleteVectorStoreCommandParamsSchema, value), + ), +] as const; +export const listVectorStoreFiles = [ + validator("param", (value) => + standardParse(listVectorStoreFilesCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listVectorStoreFilesCommandQuerySchema, value), + ), +] as const; +export const createVectorStoreFile = [ + validator("json", (value) => + standardParse(createVectorStoreFileCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(createVectorStoreFileCommandParamsSchema, value), + ), +] as const; +export const getVectorStoreFile = [ + validator("param", (value) => + standardParse(getVectorStoreFileCommandParamsSchema, value), + ), +] as const; +export const deleteVectorStoreFile = [ + validator("param", (value) => + standardParse(deleteVectorStoreFileCommandParamsSchema, value), + ), +] as const; +export const createVectorStoreFileBatch = [ + validator("json", (value) => + standardParse(createVectorStoreFileBatchCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(createVectorStoreFileBatchCommandParamsSchema, value), + ), +] as const; +export const getVectorStoreFileBatch = [ + validator("param", (value) => + standardParse(getVectorStoreFileBatchCommandParamsSchema, value), + ), +] as const; +export const cancelVectorStoreFileBatch = [ + validator("param", (value) => + standardParse(cancelVectorStoreFileBatchCommandParamsSchema, value), + ), +] as const; +export const listFilesInVectorStoreBatch = [ + validator("param", (value) => + standardParse(listFilesInVectorStoreBatchCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listFilesInVectorStoreBatchCommandQuerySchema, value), + ), +] as const; +export const createBatch = [ + validator("json", (value) => + standardParse(createBatchCommandBodySchema, value), + ), +] as const; +export const listBatches = [ + validator("query", (value) => + standardParse(listBatchesCommandQuerySchema, value), + ), +] as const; +export const retrieveBatch = [ + validator("param", (value) => + standardParse(retrieveBatchCommandParamsSchema, value), + ), +] as const; +export const cancelBatch = [ + validator("param", (value) => + standardParse(cancelBatchCommandParamsSchema, value), + ), +] as const; +export const listauditlogs = [ + validator("query", (value) => + standardParse(listAuditLogsCommandQuerySchema, value), + ), +] as const; +export const listinvites = [ + validator("query", (value) => + standardParse(listInvitesCommandQuerySchema, value), + ), +] as const; +export const inviteUser = [ + validator("json", (value) => + standardParse(inviteUserCommandBodySchema, value), + ), +] as const; +export const retrieveinvite = [ + validator("param", (value) => + standardParse(retrieveInviteCommandParamsSchema, value), + ), +] as const; +export const deleteinvite = [ + validator("param", (value) => + standardParse(deleteInviteCommandParamsSchema, value), + ), +] as const; +export const listusers = [ + validator("query", (value) => + standardParse(listUsersCommandQuerySchema, value), + ), +] as const; +export const retrieveuser = [ + validator("param", (value) => + standardParse(retrieveUserCommandParamsSchema, value), + ), +] as const; +export const modifyuser = [ + validator("json", (value) => + standardParse(modifyUserCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(modifyUserCommandParamsSchema, value), + ), +] as const; +export const deleteuser = [ + validator("param", (value) => + standardParse(deleteUserCommandParamsSchema, value), + ), +] as const; +export const listprojects = [ + validator("query", (value) => + standardParse(listProjectsCommandQuerySchema, value), + ), +] as const; +export const createproject = [ + validator("json", (value) => + standardParse(createProjectCommandBodySchema, value), + ), +] as const; +export const retrieveproject = [ + validator("param", (value) => + standardParse(retrieveProjectCommandParamsSchema, value), + ), +] as const; +export const modifyproject = [ + validator("json", (value) => + standardParse(modifyProjectCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(modifyProjectCommandParamsSchema, value), + ), +] as const; +export const archiveproject = [ + validator("param", (value) => + standardParse(archiveProjectCommandParamsSchema, value), + ), +] as const; +export const listprojectusers = [ + validator("param", (value) => + standardParse(listProjectUsersCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listProjectUsersCommandQuerySchema, value), + ), +] as const; +export const createprojectuser = [ + validator("json", (value) => + standardParse(createProjectUserCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(createProjectUserCommandParamsSchema, value), + ), +] as const; +export const retrieveprojectuser = [ + validator("param", (value) => + standardParse(retrieveProjectUserCommandParamsSchema, value), + ), +] as const; +export const modifyprojectuser = [ + validator("json", (value) => + standardParse(modifyProjectUserCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(modifyProjectUserCommandParamsSchema, value), + ), +] as const; +export const deleteprojectuser = [ + validator("param", (value) => + standardParse(deleteProjectUserCommandParamsSchema, value), + ), +] as const; +export const listprojectserviceaccounts = [ + validator("param", (value) => + standardParse(listProjectServiceAccountsCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listProjectServiceAccountsCommandQuerySchema, value), + ), +] as const; +export const createprojectserviceaccount = [ + validator("json", (value) => + standardParse(createProjectServiceAccountCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(createProjectServiceAccountCommandParamsSchema, value), + ), +] as const; +export const retrieveprojectserviceaccount = [ + validator("param", (value) => + standardParse(retrieveProjectServiceAccountCommandParamsSchema, value), + ), +] as const; +export const deleteprojectserviceaccount = [ + validator("param", (value) => + standardParse(deleteProjectServiceAccountCommandParamsSchema, value), + ), +] as const; +export const listprojectapikeys = [ + validator("param", (value) => + standardParse(listProjectApiKeysCommandParamsSchema, value), + ), + validator("query", (value) => + standardParse(listProjectApiKeysCommandQuerySchema, value), + ), +] as const; +export const retrieveprojectapikey = [ + validator("param", (value) => + standardParse(retrieveProjectApiKeyCommandParamsSchema, value), + ), +] as const; +export const deleteprojectapikey = [ + validator("param", (value) => + standardParse(deleteProjectApiKeyCommandParamsSchema, value), + ), +] as const; diff --git a/__tests__/fixtures/openai/main.ts b/__tests__/fixtures/openai/main.ts index 4918a59..c2ee296 100644 --- a/__tests__/fixtures/openai/main.ts +++ b/__tests__/fixtures/openai/main.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:36.716Z + * Generated on 2026-09-02T06:48:37.323Z (rev 3a38968a76e2e1a599ebd4bfb356dd90) * */ import { diff --git a/__tests__/fixtures/openai/types.ts b/__tests__/fixtures/openai/types.ts index 8125b91..423bfc5 100644 --- a/__tests__/fixtures/openai/types.ts +++ b/__tests__/fixtures/openai/types.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:36.716Z + * Generated on 2026-09-02T06:48:37.172Z (rev 4c3c0dbbe0176a5d0dc247ea0eeb36db) * */ import type { Jsonifiable, UndefinedOnPartialDeep } from "type-fest"; diff --git a/__tests__/fixtures/openai/valibot.ts b/__tests__/fixtures/openai/valibot.ts index 26e69ec..e72910e 100644 --- a/__tests__/fixtures/openai/valibot.ts +++ b/__tests__/fixtures/openai/valibot.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:36.716Z + * Generated on 2026-09-02T06:48:37.334Z (rev df9b206378179b4d04211d8b52bb9dc1) * */ import * as v from "valibot"; diff --git a/__tests__/fixtures/petstore/PublicValibotHonoError.ts b/__tests__/fixtures/petstore/PublicValibotHonoError.ts deleted file mode 100644 index 67819ee..0000000 --- a/__tests__/fixtures/petstore/PublicValibotHonoError.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { CustomError } from "@block65/custom-error"; -import type * as v from "valibot"; - -export class PublicValibotHonoError extends CustomError { - static from( - err: v.ValiError< - | v.BaseSchema> - | v.BaseSchemaAsync> - >, - ) { - return new PublicValibotHonoError(err.message, err).addDetail({ - violations: err.issues.map((issue) => ({ - field: issue.path?.join(".") || "", - description: issue.message, - })), - description: err.message, - }); - } -} diff --git a/__tests__/fixtures/petstore/commands-validated.ts b/__tests__/fixtures/petstore/commands-validated.ts index bd859a5..e703c72 100644 --- a/__tests__/fixtures/petstore/commands-validated.ts +++ b/__tests__/fixtures/petstore/commands-validated.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:26.648Z + * Generated on 2026-09-02T06:46:59.018Z (rev b99c2835e3bb260a18d4ee3fd099d40f) * */ /** eslint-disable max-classes */ diff --git a/__tests__/fixtures/petstore/commands.ts b/__tests__/fixtures/petstore/commands.ts index 0e21cc8..97bf681 100644 --- a/__tests__/fixtures/petstore/commands.ts +++ b/__tests__/fixtures/petstore/commands.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:26.648Z + * Generated on 2026-09-02T06:46:58.977Z (rev 39173c31da87c621d0130dcfd3176611) * */ /** eslint-disable max-classes */ diff --git a/__tests__/fixtures/petstore/hono-valibot.ts b/__tests__/fixtures/petstore/hono-valibot.ts deleted file mode 100644 index 53d6654..0000000 --- a/__tests__/fixtures/petstore/hono-valibot.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { PublicValibotHonoError } from "@block65/rest-client"; -/** - * This file was auto generated by @block65/openapi-codegen - * - * WARN: Do not edit directly. - * - * Generated on 2026-06-09T09:17:26.648Z - * - */ -import { validator } from "hono/validator"; -import * as v from "valibot"; -import { - addPetCommandBodySchema, - deletePetCommandParamsSchema, - findPetByIdCommandParamsSchema, - findPetWrappedCommandParamsSchema, - findPetsCommandQuerySchema, -} from "./valibot.js"; - -function toPublicValibotHonoError(err: unknown): never { - if (err instanceof v.ValiError) { - throw PublicValibotHonoError.from(err); - } - throw err; -} - -export const findPets = [ - validator("query", (value) => { - return v - .parseAsync(findPetsCommandQuerySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const addPet = [ - validator("json", (value) => { - return v - .parseAsync(addPetCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const findpetbyid = [ - validator("param", (value) => { - return v - .parseAsync(findPetByIdCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deletePet = [ - validator("param", (value) => { - return v - .parseAsync(deletePetCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const findPetWrapped = [ - validator("param", (value) => { - return v - .parseAsync(findPetWrappedCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; diff --git a/__tests__/fixtures/petstore/hono.ts b/__tests__/fixtures/petstore/hono.ts new file mode 100644 index 0000000..9cecfbe --- /dev/null +++ b/__tests__/fixtures/petstore/hono.ts @@ -0,0 +1,53 @@ +import { PublicValidationError } from "@block65/rest-client"; +import type { StandardSchemaV1 } from "@standard-schema/spec"; +/** + * This file was auto generated by @block65/openapi-codegen + * + * WARN: Do not edit directly. + * + * Generated on 2026-09-02T06:46:59.013Z (rev 1624960f9ee835fe8e0e4b3f96e97255) + * + */ +import { validator } from "hono/validator"; +import { + addPetCommandBodySchema, + deletePetCommandParamsSchema, + findPetByIdCommandParamsSchema, + findPetWrappedCommandParamsSchema, + findPetsCommandQuerySchema, +} from "./valibot.js"; + +async function standardParse( + schema: TSchema, + value: unknown, +): Promise> { + const result = await schema["~standard"].validate(value); + if (result.issues) { + throw PublicValidationError.fromIssues(result.issues); + } + return result.value; +} + +export const findPets = [ + validator("query", (value) => + standardParse(findPetsCommandQuerySchema, value), + ), +] as const; +export const addPet = [ + validator("json", (value) => standardParse(addPetCommandBodySchema, value)), +] as const; +export const findpetbyid = [ + validator("param", (value) => + standardParse(findPetByIdCommandParamsSchema, value), + ), +] as const; +export const deletePet = [ + validator("param", (value) => + standardParse(deletePetCommandParamsSchema, value), + ), +] as const; +export const findPetWrapped = [ + validator("param", (value) => + standardParse(findPetWrappedCommandParamsSchema, value), + ), +] as const; diff --git a/__tests__/fixtures/petstore/main.ts b/__tests__/fixtures/petstore/main.ts index 1fbc3bf..9c3b59e 100644 --- a/__tests__/fixtures/petstore/main.ts +++ b/__tests__/fixtures/petstore/main.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:26.648Z + * Generated on 2026-09-02T06:46:58.998Z (rev c82580757663b9c3a72f0677fdf303aa) * */ import { diff --git a/__tests__/fixtures/petstore/types.ts b/__tests__/fixtures/petstore/types.ts index a325523..a532801 100644 --- a/__tests__/fixtures/petstore/types.ts +++ b/__tests__/fixtures/petstore/types.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:26.648Z + * Generated on 2026-09-02T06:46:58.991Z (rev ba39f344891e60d7b6684b4505d0d7c3) * */ import type { UndefinedOnPartialDeep } from "type-fest"; diff --git a/__tests__/fixtures/petstore/valibot.ts b/__tests__/fixtures/petstore/valibot.ts index 991e021..420fb9e 100644 --- a/__tests__/fixtures/petstore/valibot.ts +++ b/__tests__/fixtures/petstore/valibot.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:26.648Z + * Generated on 2026-09-02T06:46:59.002Z (rev d50866d543f40787b269c953152070c3) * */ import * as v from "valibot"; diff --git a/__tests__/fixtures/test1/commands-validated.ts b/__tests__/fixtures/test1/commands-validated.ts index 2d71ba4..21ce1a9 100644 --- a/__tests__/fixtures/test1/commands-validated.ts +++ b/__tests__/fixtures/test1/commands-validated.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:30.892Z + * Generated on 2026-09-02T06:47:29.095Z (rev 27b0e377b8f23b99910fed036d148bea) * */ /** eslint-disable max-classes */ diff --git a/__tests__/fixtures/test1/commands.ts b/__tests__/fixtures/test1/commands.ts index 5443713..df3f6ec 100644 --- a/__tests__/fixtures/test1/commands.ts +++ b/__tests__/fixtures/test1/commands.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:30.892Z + * Generated on 2026-09-02T06:47:28.988Z (rev 54c0bfa225dd51846825714196acca64) * */ /** eslint-disable max-classes */ diff --git a/__tests__/fixtures/test1/enums.ts b/__tests__/fixtures/test1/enums.ts index 864ef8f..7c5180d 100644 --- a/__tests__/fixtures/test1/enums.ts +++ b/__tests__/fixtures/test1/enums.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:30.892Z + * Generated on 2026-09-02T06:47:29.101Z (rev 6e0ac5f0811859a075f1b40b4001cc15) * */ export const nullableStatus = ["active", "paused", "cancelled"] as const; diff --git a/__tests__/fixtures/test1/hono-valibot.ts b/__tests__/fixtures/test1/hono-valibot.ts deleted file mode 100644 index 7c85c69..0000000 --- a/__tests__/fixtures/test1/hono-valibot.ts +++ /dev/null @@ -1,208 +0,0 @@ -import { PublicValibotHonoError } from "@block65/rest-client"; -/** - * This file was auto generated by @block65/openapi-codegen - * - * WARN: Do not edit directly. - * - * Generated on 2026-06-09T09:17:30.892Z - * - */ -import { validator } from "hono/validator"; -import * as v from "valibot"; -import { - cancelSubscriptionCommandParamsSchema, - createBillingAccountCommandBodySchema, - createBillingSubscriptionCommandBodySchema, - createBillingSubscriptionCommandParamsSchema, - createPaymentMethodCommandParamsSchema, - deletePaymentMethodCommandParamsSchema, - getBillingAccountCommandParamsSchema, - getBillingAccountPortalCommandBodySchema, - getBillingAccountPortalCommandParamsSchema, - getOperationCommandParamsSchema, - getPaymentMethodCommandParamsSchema, - getPaymentMethodFromStripeCommandParamsSchema, - importBillingDataCommandParamsSchema, - linkBillingAccountCommandBodySchema, - linkBillingAccountCommandParamsSchema, - listBillingSubscriptionsCommandParamsSchema, - listPaymentMethodsCommandParamsSchema, - updateBillingAccountCommandBodySchema, - updateBillingAccountCommandParamsSchema, - updateBillingSubscriptionCommandBodySchema, - updateBillingSubscriptionCommandParamsSchema, - updateBillingSubscriptionPromoCodeCommandBodySchema, - updateBillingSubscriptionPromoCodeCommandParamsSchema, - updatePaymentMethodCommandBodySchema, - updatePaymentMethodCommandParamsSchema, -} from "./valibot.js"; - -function toPublicValibotHonoError(err: unknown): never { - if (err instanceof v.ValiError) { - throw PublicValibotHonoError.from(err); - } - throw err; -} - -export const importBillingData = [ - validator("param", (value) => { - return v - .parseAsync(importBillingDataCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getOperation = [ - validator("param", (value) => { - return v - .parseAsync(getOperationCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listBillingAccounts = [] as const; -export const createBillingAccount = [ - validator("json", (value) => { - return v - .parseAsync(createBillingAccountCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getBillingAccount = [ - validator("param", (value) => { - return v - .parseAsync(getBillingAccountCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const updateBillingAccount = [ - validator("json", (value) => { - return v - .parseAsync(updateBillingAccountCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(updateBillingAccountCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getBillingAccountPortal = [ - validator("json", (value) => { - return v - .parseAsync(getBillingAccountPortalCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(getBillingAccountPortalCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const linkBillingAccount = [ - validator("json", (value) => { - return v - .parseAsync(linkBillingAccountCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(linkBillingAccountCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listPaymentMethods = [ - validator("param", (value) => { - return v - .parseAsync(listPaymentMethodsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createPaymentMethod = [ - validator("param", (value) => { - return v - .parseAsync(createPaymentMethodCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getPaymentMethodFromStripe = [ - validator("param", (value) => { - return v - .parseAsync(getPaymentMethodFromStripeCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const getPaymentMethod = [ - validator("param", (value) => { - return v - .parseAsync(getPaymentMethodCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const updatePaymentMethod = [ - validator("json", (value) => { - return v - .parseAsync(updatePaymentMethodCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(updatePaymentMethodCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const deletePaymentMethod = [ - validator("param", (value) => { - return v - .parseAsync(deletePaymentMethodCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const listBillingSubscriptions = [ - validator("param", (value) => { - return v - .parseAsync(listBillingSubscriptionsCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const createBillingSubscription = [ - validator("json", (value) => { - return v - .parseAsync(createBillingSubscriptionCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(createBillingSubscriptionCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const updateBillingSubscription = [ - validator("json", (value) => { - return v - .parseAsync(updateBillingSubscriptionCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(updateBillingSubscriptionCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const cancelSubscription = [ - validator("param", (value) => { - return v - .parseAsync(cancelSubscriptionCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; -export const updateBillingSubscriptionPromoCode = [ - validator("json", (value) => { - return v - .parseAsync(updateBillingSubscriptionPromoCodeCommandBodySchema, value) - .catch(toPublicValibotHonoError); - }), - validator("param", (value) => { - return v - .parseAsync(updateBillingSubscriptionPromoCodeCommandParamsSchema, value) - .catch(toPublicValibotHonoError); - }), -] as const; diff --git a/__tests__/fixtures/test1/hono.ts b/__tests__/fixtures/test1/hono.ts new file mode 100644 index 0000000..1449ff5 --- /dev/null +++ b/__tests__/fixtures/test1/hono.ts @@ -0,0 +1,162 @@ +import { PublicValidationError } from "@block65/rest-client"; +import type { StandardSchemaV1 } from "@standard-schema/spec"; +/** + * This file was auto generated by @block65/openapi-codegen + * + * WARN: Do not edit directly. + * + * Generated on 2026-09-02T06:47:29.085Z (rev 0d4a775044bc0242a271cc11ed388cd9) + * + */ +import { validator } from "hono/validator"; +import { + cancelSubscriptionCommandParamsSchema, + createBillingAccountCommandBodySchema, + createBillingSubscriptionCommandBodySchema, + createBillingSubscriptionCommandParamsSchema, + createPaymentMethodCommandParamsSchema, + deletePaymentMethodCommandParamsSchema, + getBillingAccountCommandParamsSchema, + getBillingAccountPortalCommandBodySchema, + getBillingAccountPortalCommandParamsSchema, + getOperationCommandParamsSchema, + getPaymentMethodCommandParamsSchema, + getPaymentMethodFromStripeCommandParamsSchema, + importBillingDataCommandParamsSchema, + linkBillingAccountCommandBodySchema, + linkBillingAccountCommandParamsSchema, + listBillingSubscriptionsCommandParamsSchema, + listPaymentMethodsCommandParamsSchema, + updateBillingAccountCommandBodySchema, + updateBillingAccountCommandParamsSchema, + updateBillingSubscriptionCommandBodySchema, + updateBillingSubscriptionCommandParamsSchema, + updateBillingSubscriptionPromoCodeCommandBodySchema, + updateBillingSubscriptionPromoCodeCommandParamsSchema, + updatePaymentMethodCommandBodySchema, + updatePaymentMethodCommandParamsSchema, +} from "./valibot.js"; + +async function standardParse( + schema: TSchema, + value: unknown, +): Promise> { + const result = await schema["~standard"].validate(value); + if (result.issues) { + throw PublicValidationError.fromIssues(result.issues); + } + return result.value; +} + +export const importBillingData = [ + validator("param", (value) => + standardParse(importBillingDataCommandParamsSchema, value), + ), +] as const; +export const getOperation = [ + validator("param", (value) => + standardParse(getOperationCommandParamsSchema, value), + ), +] as const; +export const listBillingAccounts = [] as const; +export const createBillingAccount = [ + validator("json", (value) => + standardParse(createBillingAccountCommandBodySchema, value), + ), +] as const; +export const getBillingAccount = [ + validator("param", (value) => + standardParse(getBillingAccountCommandParamsSchema, value), + ), +] as const; +export const updateBillingAccount = [ + validator("json", (value) => + standardParse(updateBillingAccountCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(updateBillingAccountCommandParamsSchema, value), + ), +] as const; +export const getBillingAccountPortal = [ + validator("json", (value) => + standardParse(getBillingAccountPortalCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(getBillingAccountPortalCommandParamsSchema, value), + ), +] as const; +export const linkBillingAccount = [ + validator("json", (value) => + standardParse(linkBillingAccountCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(linkBillingAccountCommandParamsSchema, value), + ), +] as const; +export const listPaymentMethods = [ + validator("param", (value) => + standardParse(listPaymentMethodsCommandParamsSchema, value), + ), +] as const; +export const createPaymentMethod = [ + validator("param", (value) => + standardParse(createPaymentMethodCommandParamsSchema, value), + ), +] as const; +export const getPaymentMethodFromStripe = [ + validator("param", (value) => + standardParse(getPaymentMethodFromStripeCommandParamsSchema, value), + ), +] as const; +export const getPaymentMethod = [ + validator("param", (value) => + standardParse(getPaymentMethodCommandParamsSchema, value), + ), +] as const; +export const updatePaymentMethod = [ + validator("json", (value) => + standardParse(updatePaymentMethodCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(updatePaymentMethodCommandParamsSchema, value), + ), +] as const; +export const deletePaymentMethod = [ + validator("param", (value) => + standardParse(deletePaymentMethodCommandParamsSchema, value), + ), +] as const; +export const listBillingSubscriptions = [ + validator("param", (value) => + standardParse(listBillingSubscriptionsCommandParamsSchema, value), + ), +] as const; +export const createBillingSubscription = [ + validator("json", (value) => + standardParse(createBillingSubscriptionCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(createBillingSubscriptionCommandParamsSchema, value), + ), +] as const; +export const updateBillingSubscription = [ + validator("json", (value) => + standardParse(updateBillingSubscriptionCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(updateBillingSubscriptionCommandParamsSchema, value), + ), +] as const; +export const cancelSubscription = [ + validator("param", (value) => + standardParse(cancelSubscriptionCommandParamsSchema, value), + ), +] as const; +export const updateBillingSubscriptionPromoCode = [ + validator("json", (value) => + standardParse(updateBillingSubscriptionPromoCodeCommandBodySchema, value), + ), + validator("param", (value) => + standardParse(updateBillingSubscriptionPromoCodeCommandParamsSchema, value), + ), +] as const; diff --git a/__tests__/fixtures/test1/main.ts b/__tests__/fixtures/test1/main.ts index c28da93..3a3486c 100644 --- a/__tests__/fixtures/test1/main.ts +++ b/__tests__/fixtures/test1/main.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:30.892Z + * Generated on 2026-09-02T06:47:29.035Z (rev 283c76ce021b35c752ebe4def51cd486) * */ import { diff --git a/__tests__/fixtures/test1/types.ts b/__tests__/fixtures/test1/types.ts index 1471049..ab685e0 100644 --- a/__tests__/fixtures/test1/types.ts +++ b/__tests__/fixtures/test1/types.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:30.892Z + * Generated on 2026-09-02T06:47:29.016Z (rev 1a6ed54de7af70701ab758c0ac1553bd) * */ import type { Jsonifiable, UndefinedOnPartialDeep } from "type-fest"; diff --git a/__tests__/fixtures/test1/valibot.ts b/__tests__/fixtures/test1/valibot.ts index cca4d52..8092927 100644 --- a/__tests__/fixtures/test1/valibot.ts +++ b/__tests__/fixtures/test1/valibot.ts @@ -3,7 +3,7 @@ * * WARN: Do not edit directly. * - * Generated on 2026-06-09T09:17:30.892Z + * Generated on 2026-09-02T06:47:29.040Z (rev 34a7feb953b29908bf66a3a8104b7ad1) * */ import * as v from "valibot"; diff --git a/__tests__/nullables.test.ts b/__tests__/nullables.test.ts index 724cb55..b3d8b59 100644 --- a/__tests__/nullables.test.ts +++ b/__tests__/nullables.test.ts @@ -353,7 +353,7 @@ test("header parameters", async () => { expect(result.commandsFile.getText()).toMatchSnapshot(); expect(result.commandsValidatedFile.getText()).toMatchSnapshot(); expect(result.valibotFile.getText()).toMatchSnapshot(); - expect(result.honoValibotFile.getText()).toMatchSnapshot(); + expect(result.honoFile.getText()).toMatchSnapshot(); }); test("input-only mode omits wire schemas", async () => { diff --git a/lib/build.ts b/lib/build.ts index a6f928c..c928f0e 100644 --- a/lib/build.ts +++ b/lib/build.ts @@ -1,4 +1,5 @@ -import { writeFile } from "node:fs/promises"; +import { createHash } from "node:crypto"; +import { readFile, writeFile } from "node:fs/promises"; import type { oas31 } from "openapi3-ts"; import { type CodegenOptions, @@ -15,13 +16,14 @@ export async function build( with: { type: "json" }, })) as { default: oas31.OpenAPIObject }; - const banner = ` + const banner = (rev: string) => + ` /** * This file was auto generated by @block65/openapi-codegen * * WARN: Do not edit directly. * - * Generated on ${new Date().toISOString()} + * Generated on ${new Date().toISOString()} (rev ${rev}) * */`.trim(); @@ -31,7 +33,7 @@ export async function build( typesFile, mainFile, valibotFile, - honoValibotFile, + honoFile, enumsFile, } = await processOpenApiDocument(outputDir, apischema.default, tags, options); @@ -40,7 +42,7 @@ export async function build( typesFile, mainFile, valibotFile, - honoValibotFile, + honoFile, ...(commandsValidatedFile.getStatements().length > 0 ? [commandsValidatedFile] : []), @@ -52,16 +54,31 @@ export async function build( // eslint-disable-next-line no-restricted-syntax for await (const file of files) { - try { - file.insertStatements(0, banner); - file.formatText(); + // The existing file has usually been reformatted (oxfmt etc.), so its + // bytes never match the raw emitter output. Instead of comparing text, + // each file's banner carries a hash of the raw output that produced it: + // when the fresh output hashes to the stamp already in the file, the + // content is unchanged and the file (and its date) is left untouched. + const rev = createHash("sha256") + .update(file.getFullText()) + .digest("hex") + .slice(0, 32); - await file.save(); + const existing = await readFile(file.getFilePath(), "utf8").catch( + () => undefined, + ); + + if (existing?.includes(`(rev ${rev})`)) { + continue; + } - await writeFile(file.getFilePath(), file.getFullText()); + try { + file.insertStatements(0, banner(rev)); + file.formatText(); } catch (err) { console.warn(err); - await writeFile(file.getFilePath(), file.getFullText()); } + + await writeFile(file.getFilePath(), file.getFullText()); } } diff --git a/lib/hono-valibot.ts b/lib/hono.ts similarity index 59% rename from lib/hono-valibot.ts rename to lib/hono.ts index 93c5f3d..ee74b8a 100644 --- a/lib/hono-valibot.ts +++ b/lib/hono.ts @@ -3,15 +3,13 @@ import camelcase from "camelcase"; import type { Project, SourceFile } from "ts-morph"; import { VariableDeclarationKind } from "ts-morph"; -export function createHonoValibotFile( +export function createHonoFile( project: Project, outputDir: string, ): SourceFile { - const file = project.createSourceFile( - join(outputDir, "hono-valibot.ts"), - "", - { overwrite: true }, - ); + const file = project.createSourceFile(join(outputDir, "hono.ts"), "", { + overwrite: true, + }); file.addImportDeclaration({ moduleSpecifier: "hono/validator", @@ -19,32 +17,39 @@ export function createHonoValibotFile( }); file.addImportDeclaration({ - moduleSpecifier: "valibot", - namespaceImport: "v", + moduleSpecifier: "@standard-schema/spec", + namedImports: ["StandardSchemaV1"], + isTypeOnly: true, }); file.addImportDeclaration({ moduleSpecifier: "@block65/rest-client", - namedImports: ["PublicValibotHonoError"], + namedImports: ["PublicValidationError"], }); file.addFunction({ - name: "toPublicValibotHonoError", - parameters: [{ name: "err", type: "unknown" }], - returnType: "never", + name: "standardParse", + isAsync: true, + typeParameters: [{ name: "TSchema", constraint: "StandardSchemaV1" }], + parameters: [ + { name: "schema", type: "TSchema" }, + { name: "value", type: "unknown" }, + ], + returnType: "Promise>", statements: ` - if (err instanceof v.ValiError) { - throw PublicValibotHonoError.from(err); + const result = await schema["~standard"].validate(value); + if (result.issues) { + throw PublicValidationError.fromIssues(result.issues); } - throw err; + return result.value; `, }); return file; } -export function createHonoValibotMiddleware( - honoValibotFile: SourceFile, +export function createHonoMiddleware( + honoFile: SourceFile, exportName: string, schemas: { json?: string; @@ -54,7 +59,7 @@ export function createHonoValibotMiddleware( header?: string; }, ): void { - honoValibotFile.addVariableStatement({ + honoFile.addVariableStatement({ isExported: true, declarationKind: VariableDeclarationKind.Const, declarations: [ @@ -70,14 +75,8 @@ export function createHonoValibotMiddleware( ([t]) => t !== "header" && t !== "response", )) { writer.writeLine( - `validator(${JSON.stringify(target)}, (value) => {`, + `validator(${JSON.stringify(target)}, (value) => standardParse(${schemaName}, value)),`, ); - writer.indent(() => { - writer.writeLine( - `return v.parseAsync(${schemaName}, value).catch(toPublicValibotHonoError);`, - ); - }); - writer.writeLine("}),"); } }); writer.write("] as const"); @@ -87,15 +86,15 @@ export function createHonoValibotMiddleware( }); } -export function addValibotImportsToHonoValibotFile( - honoValibotFile: SourceFile, +export function addSchemaImportsToHonoFile( + honoFile: SourceFile, schemaNames: string[], ): void { if (schemaNames.length === 0) { return; } - honoValibotFile.addImportDeclaration({ + honoFile.addImportDeclaration({ moduleSpecifier: "./valibot.js", namedImports: schemaNames.toSorted(), }); diff --git a/lib/process-document.ts b/lib/process-document.ts index edca56d..e63c30a 100644 --- a/lib/process-document.ts +++ b/lib/process-document.ts @@ -19,10 +19,10 @@ import { } from "ts-morph"; import type { Simplify } from "type-fest"; import { - addValibotImportsToHonoValibotFile, - createHonoValibotFile, - createHonoValibotMiddleware, -} from "./hono-valibot.ts"; + addSchemaImportsToHonoFile, + createHonoFile, + createHonoMiddleware, +} from "./hono.ts"; import { registerTypesFromSchema, schemaToType } from "./process-schema.ts"; import { camelCase, @@ -1031,7 +1031,7 @@ export async function processOpenApiDocument( // Defer static schema attachment to commands-validated.ts. The lean // commands.ts file carries no schema imports — body/param/query - // schemas aren't read by rest-client anyway (hono-valibot.ts imports + // schemas aren't read by rest-client anyway (hono.ts imports // directly from valibot.ts for server middleware), and the response // schema lives on the validated subclass. // Wire variant is what rest-client + hono consume; falls back to @@ -1410,8 +1410,8 @@ export async function processOpenApiDocument( commandsValidatedFile.fixUnusedIdentifiers(); valibotFile.fixUnusedIdentifiers(); - // Generate hono-valibot file - const honoValibotFile = createHonoValibotFile(project, outputDir); + // Generate hono file + const honoFile = createHonoFile(project, outputDir); // Collect all schema names needed const schemaImports = new Set(); @@ -1424,14 +1424,14 @@ export async function processOpenApiDocument( } // Add imports from valibot.ts - addValibotImportsToHonoValibotFile(honoValibotFile, [...schemaImports]); + addSchemaImportsToHonoFile(honoFile, [...schemaImports]); // Generate middleware exports for each operation for (const op of allOperations) { - createHonoValibotMiddleware(honoValibotFile, op.exportName, op.schemas); + createHonoMiddleware(honoFile, op.exportName, op.schemas); } - honoValibotFile.fixUnusedIdentifiers(); + honoFile.fixUnusedIdentifiers(); return { commandsFile, @@ -1439,7 +1439,7 @@ export async function processOpenApiDocument( typesFile, mainFile, valibotFile, - honoValibotFile, + honoFile, enumsFile, }; } diff --git a/package.json b/package.json index c94c02f..4e40afc 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,8 @@ }, "devDependencies": { "@block65/custom-error": "^14.1.0", - "@block65/rest-client": "^13.1.0", + "@block65/rest-client": "^14.0.0", + "@standard-schema/spec": "^1.1.0", "@tsconfig/node24": "^24.0.4", "@tsconfig/strictest": "^2.0.8", "@types/node": "^25.9.2", @@ -49,7 +50,7 @@ }, "peerDependencies": { "@block65/custom-error": "^14.1.0", - "@block65/rest-client": "^13.1.0", + "@block65/rest-client": "^14.0.0", "hono": "^4.12.23", "valibot": "^1.4.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3c8c49..5603488 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,8 +34,11 @@ importers: specifier: ^14.1.0 version: 14.1.0 '@block65/rest-client': - specifier: ^13.1.0 - version: 13.1.0(valibot@1.4.1(typescript@6.0.3)) + specifier: ^14.0.0 + version: 14.0.0(valibot@1.4.1(typescript@6.0.3)) + '@standard-schema/spec': + specifier: ^1.1.0 + version: 1.1.0 '@tsconfig/node24': specifier: ^24.0.4 version: 24.0.4 @@ -93,10 +96,10 @@ packages: '@block65/custom-error@14.1.0': resolution: {integrity: sha512-smbcm4A4TwTwKDxJz639scvwCSVtU8qmk/Em2n9P5NT2JLGeK/beRI8acUS/yuAK04LYQrjfDqUFSva4472OcQ==} - '@block65/rest-client@13.1.0': - resolution: {integrity: sha512-l/iM1VkV07BOBdPnrKbWjlKeflHLTFPIBGbWpRR4cbQQIJuLSyRaekvLlNarF+56lkZ4/kCfuVxJTgKrpVND8A==} + '@block65/rest-client@14.0.0': + resolution: {integrity: sha512-ErjE6EHsona8OgA2yoZWXdYPcs5xvDa8jS86tltaORbTki8BoQNM0VWMtZLGqIy6zt0hunLPDvyuWIViZKN7gA==} peerDependencies: - valibot: ^1.0.0 + valibot: ^1.4.1 peerDependenciesMeta: valibot: optional: true @@ -983,9 +986,10 @@ snapshots: dependencies: serialize-error: 13.0.1 - '@block65/rest-client@13.1.0(valibot@1.4.1(typescript@6.0.3))': + '@block65/rest-client@14.0.0(valibot@1.4.1(typescript@6.0.3))': dependencies: '@block65/custom-error': 14.1.0 + '@standard-schema/spec': 1.1.0 p-retry: 8.0.0 optionalDependencies: valibot: 1.4.1(typescript@6.0.3)