import type { FunctionSpec, RuntimeAndFunctionType } from "@confect/core"; import type * as FunctionProvenance from "@confect/core/FunctionProvenance"; import type * as NodeServices from "@effect/platform-node/NodeServices"; import type { Effect } from "effect"; import type * as ActionCtx from "./ActionCtx"; import type * as ActionRunner from "./ActionRunner"; import type * as Auth from "./Auth"; import type * as DatabaseReader from "./DatabaseReader"; import type * as DatabaseSchema from "./DatabaseSchema"; import type * as DatabaseWriter from "./DatabaseWriter"; import type * as DataModel from "./DataModel"; import type { ExecutionMetadata } from "./ExecutionMetadata"; import type { RequestMetadata } from "./RequestMetadata"; import type { TransactionMetadata } from "./TransactionMetadata"; import type * as MutationCtx from "./MutationCtx"; import type * as MutationRunner from "./MutationRunner"; import type { MutationTransactionContext } from "./MutationTransactionContext"; import type * as QueryCtx from "./QueryCtx"; import type * as QueryRunner from "./QueryRunner"; import type { QueryTransactionContext } from "./QueryTransactionContext"; import type * as RegisteredFunction from "./RegisteredFunction"; import type * as Scheduler from "./Scheduler"; import type { Storage } from "./Storage"; import type { StorageActionWriter } from "./StorageActionWriter"; import type { StorageReader } from "./StorageReader"; import type { StorageWriter } from "./StorageWriter"; import type * as VectorSearch from "./VectorSearch"; export type Handler< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithProps, R = never, > = FunctionSpec_ extends FunctionSpec.WithFunctionProvenance< FunctionSpec_, FunctionProvenance.AnyConvex > ? ConvexProvenanceHandler : FunctionSpec_ extends FunctionSpec.WithFunctionProvenance< FunctionSpec_, FunctionProvenance.AnyConfect > ? ConfectProvenanceHandler : never; type ConvexProvenanceHandler< FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionProvenance, > = RegisteredFunction.ConvexRegisteredFunction; type ConfectProvenanceHandler< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionProvenance, R = never, > = FunctionSpec_ extends FunctionSpec.WithFunctionType ? ConfectProvenanceQuery : FunctionSpec_ extends FunctionSpec.WithFunctionType< FunctionSpec_, "mutation" > ? ConfectProvenanceMutation : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType< FunctionSpec_, RuntimeAndFunctionType.ConvexAction > ? ConvexRuntimeAction : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType< FunctionSpec_, RuntimeAndFunctionType.NodeAction > ? NodeRuntimeAction : never; export type QueryServices< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, > = | DatabaseReader.DatabaseReader | Auth.Auth | ExecutionMetadata | TransactionMetadata | Storage | StorageReader | QueryRunner.QueryRunner | QueryTransactionContext | QueryCtx.QueryCtx< DataModel.ToConvex> >; export type MutationServices< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, > = | DatabaseReader.DatabaseReader | DatabaseWriter.DatabaseWriter | Auth.Auth | ExecutionMetadata | RequestMetadata | TransactionMetadata | Scheduler.Scheduler | Storage | StorageReader | StorageWriter | QueryRunner.QueryRunner | MutationRunner.MutationRunner | QueryTransactionContext | MutationTransactionContext | MutationCtx.MutationCtx< DataModel.ToConvex> >; /** * Shared by both action runtimes. */ export type ActionServices< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, > = | Scheduler.Scheduler | Auth.Auth | ExecutionMetadata | RequestMetadata | Storage | StorageReader | StorageWriter | StorageActionWriter | QueryRunner.QueryRunner | MutationRunner.MutationRunner | ActionRunner.ActionRunner | VectorSearch.VectorSearch> | ActionCtx.ActionCtx< DataModel.ToConvex> >; export type ConfectProvenanceQuery< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType, R = never, > = Base | R>; export type ConfectProvenanceMutation< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType, R = never, > = Base | R>; export type ConvexRuntimeAction< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType, R = never, > = Base | R>; export type NodeRuntimeAction< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType, R = never, > = Base< FunctionSpec_, ActionServices | NodeServices.NodeServices | R >; type Base = ( args: FunctionSpec.Args, ) => Effect.Effect< FunctionSpec.Returns, FunctionSpec.Error, R >; export type Any = AnyConfectProvenance | AnyConvexProvenance; export type AnyConfectProvenance = Base; export type AnyConvexProvenance = RegisteredFunction.Any; export type WithName< DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithProps, FunctionName extends string, R = never, > = Handler< DatabaseSchema_, FunctionSpec.WithName, R >;