fluent-convex 0.7.1 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,18 @@
1
+ import type { GenericDataModel } from "convex/server";
2
+ import { ConvexBuilderDef } from "./types";
3
+ import { ConvexBuilderWithFunctionKind } from "./ConvexBuilderWithFunctionKind";
4
+ import type { ConvexMiddleware } from "./middleware";
5
+ import type { QueryCtx, MutationCtx, ActionCtx, Context, EmptyObject } from "./types";
6
+ export declare class ConvexBuilder<TDataModel extends GenericDataModel = GenericDataModel> {
7
+ private def;
8
+ constructor(def: ConvexBuilderDef<undefined, undefined, undefined, "public">);
9
+ query(): ConvexBuilderWithFunctionKind<TDataModel, "query", QueryCtx<TDataModel>, QueryCtx<TDataModel>>;
10
+ mutation(): ConvexBuilderWithFunctionKind<TDataModel, "mutation", MutationCtx<TDataModel>, MutationCtx<TDataModel>>;
11
+ action(): ConvexBuilderWithFunctionKind<TDataModel, "action", ActionCtx<TDataModel>, ActionCtx<TDataModel>>;
12
+ $context<U extends Context>(): {
13
+ middleware<UOutContext extends Context>(middleware: ConvexMiddleware<U, UOutContext>): ConvexMiddleware<U, UOutContext>;
14
+ };
15
+ middleware<UOutContext extends Context>(middleware: ConvexMiddleware<EmptyObject, UOutContext>): ConvexMiddleware<EmptyObject, UOutContext>;
16
+ middleware<UInContext extends Context, UOutContext extends Context>(middleware: ConvexMiddleware<UInContext, UOutContext>): ConvexMiddleware<UInContext, UOutContext>;
17
+ }
18
+ //# sourceMappingURL=ConvexBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvexBuilder.d.ts","sourceRoot":"","sources":["../src/ConvexBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAa,CACxB,UAAU,SAAS,gBAAgB,GAAG,gBAAgB;IAEtD,OAAO,CAAC,GAAG,CAA8D;gBAGvE,GAAG,EAAE,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;IAKlE,KAAK,IAAI,6BAA6B,CACpC,UAAU,EACV,OAAO,EACP,QAAQ,CAAC,UAAU,CAAC,EACpB,QAAQ,CAAC,UAAU,CAAC,CACrB;IAYD,QAAQ,IAAI,6BAA6B,CACvC,UAAU,EACV,UAAU,EACV,WAAW,CAAC,UAAU,CAAC,EACvB,WAAW,CAAC,UAAU,CAAC,CACxB;IAYD,MAAM,IAAI,6BAA6B,CACrC,UAAU,EACV,QAAQ,EACR,SAAS,CAAC,UAAU,CAAC,EACrB,SAAS,CAAC,UAAU,CAAC,CACtB;IAYD,QAAQ,CAAC,CAAC,SAAS,OAAO,KAAK;QAC7B,UAAU,CAAC,WAAW,SAAS,OAAO,EACpC,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,GAC3C,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;KACrC;IAWD,UAAU,CAAC,WAAW,SAAS,OAAO,EACpC,UAAU,EAAE,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,GACrD,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC7C,UAAU,CAAC,UAAU,SAAS,OAAO,EAAE,WAAW,SAAS,OAAO,EAChE,UAAU,EAAE,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,GACpD,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC;CAM7C"}
@@ -0,0 +1,37 @@
1
+ import { ConvexBuilderWithFunctionKind } from "./ConvexBuilderWithFunctionKind";
2
+ export class ConvexBuilder {
3
+ def;
4
+ constructor(def) {
5
+ this.def = def;
6
+ }
7
+ query() {
8
+ return new ConvexBuilderWithFunctionKind({
9
+ ...this.def,
10
+ functionType: "query",
11
+ });
12
+ }
13
+ mutation() {
14
+ return new ConvexBuilderWithFunctionKind({
15
+ ...this.def,
16
+ functionType: "mutation",
17
+ });
18
+ }
19
+ action() {
20
+ return new ConvexBuilderWithFunctionKind({
21
+ ...this.def,
22
+ functionType: "action",
23
+ });
24
+ }
25
+ $context() {
26
+ // Return an object that allows middleware creation with a specific context type
27
+ return {
28
+ middleware(middleware) {
29
+ return middleware;
30
+ },
31
+ };
32
+ }
33
+ middleware(middleware) {
34
+ return middleware;
35
+ }
36
+ }
37
+ //# sourceMappingURL=ConvexBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvexBuilder.js","sourceRoot":"","sources":["../src/ConvexBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAUhF,MAAM,OAAO,aAAa;IAGhB,GAAG,CAA8D;IAEzE,YACE,GAAgE;QAEhE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK;QAMH,OAAO,IAAI,6BAA6B,CAKtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAMN,OAAO,IAAI,6BAA6B,CAKtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QAMJ,OAAO,IAAI,6BAA6B,CAKtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QAKN,gFAAgF;QAChF,OAAO;YACL,UAAU,CACR,UAA4C;gBAE5C,OAAO,UAAU,CAAC;YACpB,CAAC;SACF,CAAC;IACJ,CAAC;IAQD,UAAU,CACR,UAAqD;QAErD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ import type { GenericDataModel } from "convex/server";
2
+ import { ConvexBuilderWithHandler } from "./ConvexBuilderWithHandler";
3
+ import { InferredArgs } from "./types";
4
+ import { ExpectedReturnType } from "./types";
5
+ import { ConvexBuilderDef } from "./types";
6
+ import { CallableBuilder } from "./types";
7
+ import type { ConvexMiddleware } from "./middleware";
8
+ import type { FunctionType, Context, EmptyObject, ConvexArgsValidator, ConvexReturnsValidator, Visibility } from "./types";
9
+ import { type ValidatorInput, type ToConvexArgsValidator, type ReturnsValidatorInput, type ToConvexReturnsValidator } from "./zod_support";
10
+ export declare class ConvexBuilderWithFunctionKind<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType = FunctionType, TInitialContext extends Context = EmptyObject, TCurrentContext extends Context = EmptyObject, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined, TVisibility extends Visibility = "public", THasHandler extends boolean = false, THandlerReturn = any> {
11
+ protected def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>;
12
+ constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>);
13
+ $context<U extends Context>(): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, U & EmptyObject, U, TArgsValidator, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
14
+ middleware<UOutContext extends Context>(middleware: ConvexMiddleware<TInitialContext, UOutContext>): ConvexMiddleware<TInitialContext, UOutContext>;
15
+ middleware<UInContext extends Context, UOutContext extends Context>(middleware: ConvexMiddleware<UInContext, UOutContext>): ConvexMiddleware<UInContext, UOutContext>;
16
+ use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
17
+ input<UInput extends ValidatorInput>(validator: UInput): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext, ToConvexArgsValidator<UInput>, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
18
+ returns<UReturns extends ReturnsValidatorInput>(validator: UReturns): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, ToConvexReturnsValidator<UReturns>, TVisibility, THasHandler, THandlerReturn>;
19
+ handler<TReturn extends [TReturnsValidator] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : any = [TReturnsValidator] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : any>(handlerFn: (options: {
20
+ context: TCurrentContext;
21
+ input: InferredArgs<TArgsValidator>;
22
+ }) => Promise<TReturn>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility, [
23
+ TReturnsValidator
24
+ ] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : TReturn> & CallableBuilder<TCurrentContext, TArgsValidator, [
25
+ TReturnsValidator
26
+ ] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : TReturn>;
27
+ }
28
+ //# sourceMappingURL=ConvexBuilderWithFunctionKind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvexBuilderWithFunctionKind.d.ts","sourceRoot":"","sources":["../src/ConvexBuilderWithFunctionKind.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { ConvexBuilderWithHandler } from "./ConvexBuilderWithHandler";
2
+ import { isZodSchema, toConvexValidator, } from "./zod_support";
3
+ export class ConvexBuilderWithFunctionKind {
4
+ def;
5
+ constructor(def) {
6
+ this.def = def;
7
+ }
8
+ $context() {
9
+ return new ConvexBuilderWithFunctionKind({
10
+ ...this.def,
11
+ middlewares: [],
12
+ });
13
+ }
14
+ middleware(middleware) {
15
+ return middleware;
16
+ }
17
+ use(middleware) {
18
+ return new ConvexBuilderWithFunctionKind({
19
+ ...this.def,
20
+ middlewares: [...this.def.middlewares, middleware],
21
+ });
22
+ }
23
+ input(validator) {
24
+ const convexValidator = isZodSchema(validator)
25
+ ? toConvexValidator(validator)
26
+ : validator;
27
+ return new ConvexBuilderWithFunctionKind({
28
+ ...this.def,
29
+ argsValidator: convexValidator,
30
+ });
31
+ }
32
+ returns(validator) {
33
+ const convexValidator = isZodSchema(validator)
34
+ ? toConvexValidator(validator)
35
+ : validator;
36
+ return new ConvexBuilderWithFunctionKind({
37
+ ...this.def,
38
+ returnsValidator: convexValidator,
39
+ });
40
+ }
41
+ handler(handlerFn) {
42
+ if (this.def.handler) {
43
+ throw new Error("Handler already defined. Only one handler can be set per function chain.");
44
+ }
45
+ // Store the raw handler function - it will be composed with all middlewares
46
+ // (including those added after .handler()) when .public() or .internal() is called
47
+ // The handler signature matches what Convex expects: (ctx, args) => Promise<return>
48
+ const rawHandler = async (transformedCtx, baseArgs) => {
49
+ return handlerFn({
50
+ context: transformedCtx,
51
+ input: baseArgs,
52
+ });
53
+ };
54
+ return new ConvexBuilderWithHandler({
55
+ ...this.def,
56
+ handler: rawHandler,
57
+ });
58
+ }
59
+ }
60
+ //# sourceMappingURL=ConvexBuilderWithFunctionKind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvexBuilderWithFunctionKind.js","sourceRoot":"","sources":["../src/ConvexBuilderWithFunctionKind.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AActE,OAAO,EAGL,WAAW,EACX,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AAEvB,MAAM,OAAO,6BAA6B;IAW9B,GAAG,CAKX;IAEF,YACE,GAKC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,QAAQ;QAWN,OAAO,IAAI,6BAA6B,CAUtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC;IACL,CAAC;IAQD,UAAU,CACR,UAAqD;QAErD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,GAAG,CACD,UAA0D;QAY1D,OAAO,IAAI,6BAA6B,CAUtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAiC,CAAC;SAC1E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CACH,SAAiB;QAYjB,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAE,iBAAiB,CAAC,SAAS,CAAmC;YACjE,CAAC,CAAE,SAA2C,CAAC;QAEjD,OAAO,IAAI,6BAA6B,CAUtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,aAAa,EAAE,eAAe;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,SAAmB;QAYnB,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAE,iBAAiB,CAAC,SAAS,CAAwC;YACtE,CAAC,CAAE,SAAgD,CAAC;QAEtD,OAAO,IAAI,6BAA6B,CAUtC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,gBAAgB,EAAE,eAAe;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAOL,SAGsB;QAoBtB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,mFAAmF;QACnF,oFAAoF;QACpF,MAAM,UAAU,GAAG,KAAK,EACtB,cAAuB,EACvB,QAAsC,EACtC,EAAE;YACF,OAAO,SAAS,CAAC;gBACf,OAAO,EAAE,cAAiC;gBAC1C,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC,CAAC;QAMF,OAAO,IAAI,wBAAwB,CASjC;YACA,GAAG,IAAI,CAAC,GAAG;YACX,OAAO,EAAE,UAAiB;SAC3B,CAUiE,CAAC;IACrE,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { type GenericDataModel, type RegisteredQuery, type RegisteredMutation, type RegisteredAction } from "convex/server";
2
+ import type { ConvexMiddleware } from "./middleware";
3
+ import type { FunctionType, Context, EmptyObject, ConvexArgsValidator, ConvexReturnsValidator, Visibility, ConvexBuilderDef, InferredArgs, CallableBuilder } from "./types";
4
+ export declare class ConvexBuilderWithHandler<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType | undefined = undefined, TInitialContext extends Context = EmptyObject, TCurrentContext extends Context = EmptyObject, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined, TVisibility extends Visibility = "public", THandlerReturn = any> {
5
+ private def;
6
+ constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>);
7
+ private _call;
8
+ use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TInitialContext, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator, TVisibility, THandlerReturn> & CallableBuilder<TCurrentContext & UOutContext, TArgsValidator, THandlerReturn>;
9
+ public(): TFunctionType extends "query" ? RegisteredQuery<"public", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "mutation" ? RegisteredMutation<"public", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "action" ? RegisteredAction<"public", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : never;
10
+ internal(): TFunctionType extends "query" ? RegisteredQuery<"internal", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "mutation" ? RegisteredMutation<"internal", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "action" ? RegisteredAction<"internal", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : never;
11
+ private _register;
12
+ }
13
+ //# sourceMappingURL=ConvexBuilderWithHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvexBuilderWithHandler.d.ts","sourceRoot":"","sources":["../src/ConvexBuilderWithHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAOtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAIhB,MAAM,SAAS,CAAC;AAEjB,qBAAa,wBAAwB,CACnC,UAAU,SAAS,gBAAgB,GAAG,gBAAgB,EACtD,aAAa,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC1D,eAAe,SAAS,OAAO,GAAG,WAAW,EAC7C,eAAe,SAAS,OAAO,GAAG,WAAW,EAC7C,cAAc,SAAS,mBAAmB,GAAG,SAAS,GAAG,SAAS,EAClE,iBAAiB,SAAS,sBAAsB,GAAG,SAAS,GAAG,SAAS,EACxE,WAAW,SAAS,UAAU,GAAG,QAAQ,EACzC,cAAc,GAAG,GAAG;IAEpB,OAAO,CAAC,GAAG,CAKT;gBAGA,GAAG,EAAE,gBAAgB,CACnB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,WAAW,CACZ;IAaH,OAAO,CAAC,KAAK;IA0Bb,GAAG,CAAC,WAAW,SAAS,OAAO,EAC7B,UAAU,EAAE,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC,GACzD,wBAAwB,CACzB,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,GAAG,WAAW,EAC7B,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,cAAc,CACf,GACC,eAAe,CACb,eAAe,GAAG,WAAW,EAC7B,cAAc,EACd,cAAc,CACf;IA8BH,MAAM,IAAI,aAAa,SAAS,OAAO,GACnC,eAAe,CACb,QAAQ,EACR,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,UAAU,GAC9B,kBAAkB,CAChB,QAAQ,EACR,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,QAAQ,GAC5B,gBAAgB,CACd,QAAQ,EACR,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,KAAK;IAIb,QAAQ,IAAI,aAAa,SAAS,OAAO,GACrC,eAAe,CACb,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,UAAU,GAC9B,kBAAkB,CAChB,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,aAAa,SAAS,QAAQ,GAC5B,gBAAgB,CACd,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAC5B,OAAO,CAAC,cAAc,CAAC,CACxB,GACD,KAAK;IAIb,OAAO,CAAC,SAAS;CA2DlB"}
@@ -0,0 +1,81 @@
1
+ import { queryGeneric, internalQueryGeneric, mutationGeneric, internalMutationGeneric, actionGeneric, internalActionGeneric, } from "convex/server";
2
+ export class ConvexBuilderWithHandler {
3
+ def;
4
+ constructor(def) {
5
+ this.def = def;
6
+ // Make the instance callable by returning a Proxy
7
+ return new Proxy(this, {
8
+ apply: (_target, _thisArg, args) => {
9
+ return this._call(args[0]);
10
+ },
11
+ });
12
+ }
13
+ // Internal method to handle the call
14
+ _call(context) {
15
+ const { handler, middlewares } = this.def;
16
+ if (!handler) {
17
+ throw new Error("Handler not set.");
18
+ }
19
+ return async (args) => {
20
+ let currentContext = context;
21
+ // Apply all middlewares in order
22
+ for (const middleware of middlewares) {
23
+ const result = await middleware({
24
+ context: currentContext,
25
+ next: async (options) => ({ context: options.context }),
26
+ });
27
+ currentContext = result.context;
28
+ }
29
+ // Call the raw handler with the transformed context
30
+ return handler(currentContext, args);
31
+ };
32
+ }
33
+ use(middleware) {
34
+ return new ConvexBuilderWithHandler({
35
+ ...this.def,
36
+ middlewares: [...this.def.middlewares, middleware],
37
+ });
38
+ }
39
+ public() {
40
+ return this._register("public");
41
+ }
42
+ internal() {
43
+ return this._register("internal");
44
+ }
45
+ _register(visibility) {
46
+ const { functionType, argsValidator, returnsValidator, handler, middlewares, } = this.def;
47
+ if (!functionType) {
48
+ throw new Error("Function type not set. Call .query(), .mutation(), or .action() first.");
49
+ }
50
+ if (!handler) {
51
+ throw new Error("Handler not set. Call .handler() before .public() or .internal().");
52
+ }
53
+ // Compose the handler with all middlewares (including those added after .handler())
54
+ const composedHandler = async (baseCtx, baseArgs) => {
55
+ let currentContext = baseCtx;
56
+ // Apply all middlewares in order
57
+ for (const middleware of middlewares) {
58
+ const result = await middleware({
59
+ context: currentContext,
60
+ next: async (options) => ({ context: options.context }),
61
+ });
62
+ currentContext = result.context;
63
+ }
64
+ // Call the raw handler with the transformed context
65
+ return handler(currentContext, baseArgs);
66
+ };
67
+ const config = {
68
+ args: argsValidator || {},
69
+ ...(returnsValidator ? { returns: returnsValidator } : {}),
70
+ handler: composedHandler,
71
+ };
72
+ const isPublic = visibility === "public";
73
+ const registrationFn = {
74
+ query: isPublic ? queryGeneric : internalQueryGeneric,
75
+ mutation: isPublic ? mutationGeneric : internalMutationGeneric,
76
+ action: isPublic ? actionGeneric : internalActionGeneric,
77
+ }[functionType];
78
+ return registrationFn(config);
79
+ }
80
+ }
81
+ //# sourceMappingURL=ConvexBuilderWithHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConvexBuilderWithHandler.js","sourceRoot":"","sources":["../src/ConvexBuilderWithHandler.ts"],"names":[],"mappings":"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"}
package/dist/builder.d.ts CHANGED
@@ -1,57 +1,4 @@
1
- import { type RegisteredQuery, type RegisteredMutation, type RegisteredAction, type GenericDataModel } from "convex/server";
2
- import type { ConvexMiddleware, AnyConvexMiddleware } from "./middleware";
3
- import type { Context, ConvexArgsValidator, ConvexReturnsValidator, InferArgs, InferReturns, FunctionType, Visibility, QueryCtx, MutationCtx, ActionCtx, EmptyObject } from "./types";
4
- import { type ValidatorInput, type ReturnsValidatorInput, type ToConvexArgsValidator, type ToConvexReturnsValidator } from "./zod_support";
5
- type InferredArgs<T extends ConvexArgsValidator | undefined> = T extends ConvexArgsValidator ? InferArgs<T> : EmptyObject;
6
- type ExpectedReturnType<TReturnsValidator extends ConvexReturnsValidator | undefined> = TReturnsValidator extends ConvexReturnsValidator ? InferReturns<TReturnsValidator> : any;
7
- type InferHandlerReturn<TReturnsValidator extends ConvexReturnsValidator | undefined, TReturn> = [TReturnsValidator] extends [ConvexReturnsValidator] ? ExpectedReturnType<TReturnsValidator> : TReturn;
8
- interface ConvexBuilderDef<TFunctionType extends FunctionType | undefined, TArgsValidator extends ConvexArgsValidator | undefined, TReturnsValidator extends ConvexReturnsValidator | undefined, TVisibility extends Visibility> {
9
- functionType?: TFunctionType;
10
- middlewares: readonly AnyConvexMiddleware[];
11
- argsValidator?: TArgsValidator;
12
- returnsValidator?: TReturnsValidator;
13
- visibility: TVisibility;
14
- handler?: (context: Context, input: any) => Promise<any>;
15
- }
16
- export declare class ConvexBuilder<TDataModel extends GenericDataModel = GenericDataModel> {
17
- private def;
18
- constructor(def: ConvexBuilderDef<undefined, undefined, undefined, "public">);
19
- query(): ConvexBuilderWithFunctionKind<TDataModel, "query", QueryCtx<TDataModel>, QueryCtx<TDataModel>>;
20
- mutation(): ConvexBuilderWithFunctionKind<TDataModel, "mutation", MutationCtx<TDataModel>, MutationCtx<TDataModel>>;
21
- action(): ConvexBuilderWithFunctionKind<TDataModel, "action", ActionCtx<TDataModel>, ActionCtx<TDataModel>>;
22
- $context<U extends Context>(): {
23
- middleware<UOutContext extends Context>(middleware: ConvexMiddleware<U, UOutContext>): ConvexMiddleware<U, UOutContext>;
24
- };
25
- middleware<UOutContext extends Context>(middleware: ConvexMiddleware<EmptyObject, UOutContext>): ConvexMiddleware<EmptyObject, UOutContext>;
26
- middleware<UInContext extends Context, UOutContext extends Context>(middleware: ConvexMiddleware<UInContext, UOutContext>): ConvexMiddleware<UInContext, UOutContext>;
27
- }
28
- export declare class ConvexBuilderWithFunctionKind<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType = FunctionType, TInitialContext extends Context = EmptyObject, TCurrentContext extends Context = EmptyObject, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined, TVisibility extends Visibility = "public", THasHandler extends boolean = false, THandlerReturn = any> {
29
- protected def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>;
30
- constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>);
31
- $context<U extends Context>(): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, U & EmptyObject, U, TArgsValidator, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
32
- middleware<UOutContext extends Context>(middleware: ConvexMiddleware<TInitialContext, UOutContext>): ConvexMiddleware<TInitialContext, UOutContext>;
33
- middleware<UInContext extends Context, UOutContext extends Context>(middleware: ConvexMiddleware<UInContext, UOutContext>): ConvexMiddleware<UInContext, UOutContext>;
34
- use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
35
- input<UInput extends ValidatorInput>(validator: UInput): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext, ToConvexArgsValidator<UInput>, TReturnsValidator, TVisibility, THasHandler, THandlerReturn>;
36
- returns<UReturns extends ReturnsValidatorInput>(validator: UReturns): ConvexBuilderWithFunctionKind<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, ToConvexReturnsValidator<UReturns>, TVisibility, THasHandler, THandlerReturn>;
37
- handler<TReturn extends InferHandlerReturn<TReturnsValidator, any> = InferHandlerReturn<TReturnsValidator, any>>(handlerFn: (options: {
38
- context: TCurrentContext;
39
- input: InferredArgs<TArgsValidator>;
40
- }) => Promise<TReturn>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TInitialContext, TCurrentContext, TArgsValidator, TReturnsValidator, TVisibility, InferHandlerReturn<TReturnsValidator, TReturn>> & CallableBuilder<TCurrentContext, TArgsValidator, InferHandlerReturn<TReturnsValidator, TReturn>>;
41
- }
42
- type CallableBuilder<TCurrentContext extends Context, TArgsValidator extends ConvexArgsValidator | undefined, THandlerReturn> = {
43
- (context: TCurrentContext): (args: InferredArgs<TArgsValidator>) => Promise<THandlerReturn>;
44
- };
45
- export declare class ConvexBuilderWithHandler<TDataModel extends GenericDataModel = GenericDataModel, TFunctionType extends FunctionType | undefined = undefined, TInitialContext extends Context = EmptyObject, TCurrentContext extends Context = EmptyObject, TArgsValidator extends ConvexArgsValidator | undefined = undefined, TReturnsValidator extends ConvexReturnsValidator | undefined = undefined, TVisibility extends Visibility = "public", THandlerReturn = any> {
46
- private def;
47
- constructor(def: ConvexBuilderDef<TFunctionType, TArgsValidator, TReturnsValidator, TVisibility>);
48
- private _call;
49
- private _applyMiddlewares;
50
- use<UOutContext extends Context>(middleware: ConvexMiddleware<TCurrentContext, UOutContext>): ConvexBuilderWithHandler<TDataModel, TFunctionType, TInitialContext, TCurrentContext & UOutContext, TArgsValidator, TReturnsValidator, TVisibility, THandlerReturn> & CallableBuilder<TCurrentContext & UOutContext, TArgsValidator, THandlerReturn>;
51
- public(): TFunctionType extends "query" ? RegisteredQuery<"public", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "mutation" ? RegisteredMutation<"public", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "action" ? RegisteredAction<"public", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : never;
52
- internal(): TFunctionType extends "query" ? RegisteredQuery<"internal", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "mutation" ? RegisteredMutation<"internal", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : TFunctionType extends "action" ? RegisteredAction<"internal", InferredArgs<TArgsValidator>, Promise<THandlerReturn>> : never;
53
- private _register;
54
- }
1
+ import { type GenericDataModel } from "convex/server";
2
+ import { ConvexBuilder } from "./ConvexBuilder";
55
3
  export declare function createBuilder<TDataModel extends GenericDataModel>(): ConvexBuilder<TDataModel>;
56
- export {};
57
4
  //# sourceMappingURL=builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,wBAAgB,aAAa,CAC3B,UAAU,SAAS,gBAAgB,KAChC,aAAa,CAAC,UAAU,CAAC,CAK7B"}
package/dist/builder.js CHANGED
@@ -1,165 +1,4 @@
1
- import { queryGeneric, internalQueryGeneric, mutationGeneric, internalMutationGeneric, actionGeneric, internalActionGeneric, } from "convex/server";
2
- import { isZodSchema, toConvexValidator, } from "./zod_support";
3
- export class ConvexBuilder {
4
- def;
5
- constructor(def) {
6
- this.def = def;
7
- }
8
- query() {
9
- return new ConvexBuilderWithFunctionKind({
10
- ...this.def,
11
- functionType: "query",
12
- });
13
- }
14
- mutation() {
15
- return new ConvexBuilderWithFunctionKind({
16
- ...this.def,
17
- functionType: "mutation",
18
- });
19
- }
20
- action() {
21
- return new ConvexBuilderWithFunctionKind({
22
- ...this.def,
23
- functionType: "action",
24
- });
25
- }
26
- $context() {
27
- // Return an object that allows middleware creation with a specific context type
28
- return {
29
- middleware(middleware) {
30
- return middleware;
31
- },
32
- };
33
- }
34
- middleware(middleware) {
35
- return middleware;
36
- }
37
- }
38
- export class ConvexBuilderWithFunctionKind {
39
- def;
40
- constructor(def) {
41
- this.def = def;
42
- }
43
- $context() {
44
- return new ConvexBuilderWithFunctionKind({
45
- ...this.def,
46
- middlewares: [],
47
- });
48
- }
49
- middleware(middleware) {
50
- return middleware;
51
- }
52
- use(middleware) {
53
- return new ConvexBuilderWithFunctionKind({
54
- ...this.def,
55
- middlewares: [...this.def.middlewares, middleware],
56
- });
57
- }
58
- input(validator) {
59
- const convexValidator = (isZodSchema(validator) ? toConvexValidator(validator) : validator);
60
- return new ConvexBuilderWithFunctionKind({
61
- ...this.def,
62
- argsValidator: convexValidator,
63
- });
64
- }
65
- returns(validator) {
66
- const convexValidator = (isZodSchema(validator) ? toConvexValidator(validator) : validator);
67
- return new ConvexBuilderWithFunctionKind({
68
- ...this.def,
69
- returnsValidator: convexValidator,
70
- });
71
- }
72
- handler(handlerFn) {
73
- if (this.def.handler) {
74
- throw new Error("Handler already defined. Only one handler can be set per function chain.");
75
- }
76
- // Store the raw handler function - it will be composed with all middlewares
77
- // (including those added after .handler()) when .public() or .internal() is called
78
- // The handler signature matches what Convex expects: (ctx, args) => Promise<return>
79
- const rawHandler = async (transformedCtx, baseArgs) => {
80
- return handlerFn({
81
- context: transformedCtx,
82
- input: baseArgs,
83
- });
84
- };
85
- return new ConvexBuilderWithHandler({
86
- ...this.def,
87
- handler: rawHandler,
88
- });
89
- }
90
- }
91
- export class ConvexBuilderWithHandler {
92
- def;
93
- constructor(def) {
94
- this.def = def;
95
- // Make the instance callable by returning a Proxy
96
- return new Proxy(this, {
97
- apply: (_target, _thisArg, args) => {
98
- return this._call(args[0]);
99
- },
100
- });
101
- }
102
- // Internal method to handle the call
103
- _call(context) {
104
- const { handler, middlewares } = this.def;
105
- if (!handler) {
106
- throw new Error("Handler not set.");
107
- }
108
- return async (args) => {
109
- const transformedContext = await this._applyMiddlewares(context, middlewares);
110
- return handler(transformedContext, args);
111
- };
112
- }
113
- async _applyMiddlewares(initialContext, middlewares) {
114
- let currentContext = initialContext;
115
- for (const middleware of middlewares) {
116
- const result = await middleware({
117
- context: currentContext,
118
- next: async (options) => ({ context: options.context }),
119
- });
120
- currentContext = result.context;
121
- }
122
- return currentContext;
123
- }
124
- use(middleware) {
125
- return new ConvexBuilderWithHandler({
126
- ...this.def,
127
- middlewares: [...this.def.middlewares, middleware],
128
- });
129
- }
130
- public() {
131
- return this._register("public");
132
- }
133
- internal() {
134
- return this._register("internal");
135
- }
136
- _register(visibility) {
137
- const { functionType, argsValidator, returnsValidator, handler, middlewares, } = this.def;
138
- if (!functionType) {
139
- throw new Error("Function type not set. Call .query(), .mutation(), or .action() first.");
140
- }
141
- if (!handler) {
142
- throw new Error("Handler not set. Call .handler() before .public() or .internal().");
143
- }
144
- // Compose the handler with all middlewares (including those added after .handler())
145
- const composedHandler = async (baseCtx, baseArgs) => {
146
- const transformedContext = await this._applyMiddlewares(baseCtx, middlewares);
147
- return handler(transformedContext, baseArgs);
148
- };
149
- const config = {
150
- args: argsValidator || {},
151
- ...(returnsValidator ? { returns: returnsValidator } : {}),
152
- handler: composedHandler,
153
- };
154
- const isPublic = visibility === "public";
155
- const registrationFn = {
156
- query: isPublic ? queryGeneric : internalQueryGeneric,
157
- mutation: isPublic ? mutationGeneric : internalMutationGeneric,
158
- action: isPublic ? actionGeneric : internalActionGeneric,
159
- }[functionType];
160
- return registrationFn(config);
161
- }
162
- }
1
+ import { ConvexBuilder } from "./ConvexBuilder";
163
2
  export function createBuilder() {
164
3
  return new ConvexBuilder({
165
4
  middlewares: [],
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,aAAa;IAG3B,OAAO,IAAI,aAAa,CAAa;QACnC,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,QAAQ;KACrB,CAAC,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { ConvexBuilder, createBuilder } from "./builder";
1
+ export { createBuilder } from "./builder";
2
2
  export type { ConvexMiddleware, ConvexMiddlewareOptions, AnyConvexMiddleware, } from "./middleware";
3
3
  export type { Context, ConvexArgsValidator, ConvexReturnsValidator, InferArgs, QueryCtx, MutationCtx, ActionCtx, FunctionType, Visibility, } from "./types";
4
4
  export { isZodSchema, toConvexValidator, type ValidatorInput, type ReturnsValidatorInput, } from "./zod_support";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,OAAO,EACP,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,OAAO,EACP,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,OAAO,EACP,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,OAAO,EACP,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { ConvexBuilder, createBuilder } from "./builder";
1
+ export { createBuilder } from "./builder";
2
2
  export { isZodSchema, toConvexValidator, } from "./zod_support";
3
3
  export { input, returns, getMetadata, getMethodMetadataFromClass, makeCallableMethods, makeCallable, } from "./decorators";
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAoBzD,OAAO,EACL,WAAW,EACX,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,OAAO,EACP,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAoB1C,OAAO,EACL,WAAW,EACX,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,OAAO,EACP,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,GACb,MAAM,cAAc,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { PropertyValidators, GenericValidator } from "convex/values";
2
2
  import type { GenericActionCtx, GenericMutationCtx, GenericQueryCtx, GenericDataModel } from "convex/server";
3
+ import type { AnyConvexMiddleware } from "./middleware";
3
4
  export type Context = object;
4
5
  export type ConvexArgsValidator = PropertyValidators | GenericValidator;
5
6
  export type ConvexReturnsValidator = GenericValidator;
@@ -26,5 +27,18 @@ export type MutationCtx<DataModel extends GenericDataModel = GenericDataModel> =
26
27
  export type ActionCtx<DataModel extends GenericDataModel = GenericDataModel> = GenericActionCtx<DataModel>;
27
28
  export type FunctionType = "query" | "mutation" | "action";
28
29
  export type Visibility = "public" | "internal";
30
+ export type CallableBuilder<TCurrentContext extends Context, TArgsValidator extends ConvexArgsValidator | undefined, THandlerReturn> = {
31
+ (context: TCurrentContext): (args: InferredArgs<TArgsValidator>) => Promise<THandlerReturn>;
32
+ };
33
+ export interface ConvexBuilderDef<TFunctionType extends FunctionType | undefined, TArgsValidator extends ConvexArgsValidator | undefined, TReturnsValidator extends ConvexReturnsValidator | undefined, TVisibility extends Visibility> {
34
+ functionType?: TFunctionType;
35
+ middlewares: readonly AnyConvexMiddleware[];
36
+ argsValidator?: TArgsValidator;
37
+ returnsValidator?: TReturnsValidator;
38
+ visibility: TVisibility;
39
+ handler?: (context: Context, input: any) => Promise<any>;
40
+ }
41
+ export type ExpectedReturnType<TReturnsValidator extends ConvexReturnsValidator | undefined> = TReturnsValidator extends ConvexReturnsValidator ? InferReturns<TReturnsValidator> : any;
42
+ export type InferredArgs<T extends ConvexArgsValidator | undefined> = T extends ConvexArgsValidator ? InferArgs<T> : EmptyObject;
29
43
  export {};
30
44
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluent-convex",
3
- "version": "0.7.1",
3
+ "version": "0.7.4",
4
4
  "description": "A fluent API builder for Convex functions with middleware support, inspired by oRPC",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",