@gaganref/confect-server 10.3.1-fork.36 → 10.3.1-fork.39

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexFunctionDefinitions.d.ts","sourceRoot":"","sources":["../src/ConvexFunctionDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,KAAK,mBAAmB,MAAM,0BAA0B,CAAC;AAIrE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAC,UAAU,GAAG,WAAW,CAAC;CAC5E;AAED,KAAK,aAAa,CAChB,QAAQ,SAAS,YAAY,CAAC,YAAY,EAC1C,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IACzC,UAAU,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC9C,YAAY,GACZ,GAAG,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;AAErH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAC,YAAY,IAAI;IAC3D,QAAQ,EAAE,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CACvE,wBAAwB,CAAC,UAAU,EACnC;QACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAC1B,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CACxD,CAAC;KACH,CACF;CACF,GAAG;IACF,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAClD;CACF,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,wBAAwB,CAAC,UAAU,GAAG,WAAW,KACvD,KAAK,IAAI,wBAAwB,CAAC,UACL,CAAC;AAWjC,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,eAC9C,WAAW,KACvB,mBAAmB,CAAC,+BAA+B,CAAC,KAAK,CAGK,CAAC;AAElE,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,kBAChD,cAAc,CAAC,YAAY,cAC/B,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KACxD,QAAQ,CAAC,KAAK,CA0BhB,CAAC"}
1
+ {"version":3,"file":"ConvexFunctionDefinitions.d.ts","sourceRoot":"","sources":["../src/ConvexFunctionDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,KAAK,mBAAmB,MAAM,0BAA0B,CAAC;AAIrE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAC,UAAU,GAAG,WAAW,CAAC;CAC5E;AAED,KAAK,aAAa,CAChB,QAAQ,SAAS,YAAY,CAAC,YAAY,EAC1C,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IACzC,UAAU,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC9C,YAAY,GACZ,GAAG,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;AAErH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAC,YAAY,IAAI;IAC3D,QAAQ,EAAE,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CACvE,wBAAwB,CAAC,UAAU,EACnC;QACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAC1B,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CACxD,CAAC;KACH,CACF;CACF,GAAG;IACF,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAClD;CACF,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,wBAAwB,CAAC,UAAU,GAAG,WAAW,KACvD,KAAK,IAAI,wBAAwB,CAAC,UACL,CAAC;AAWjC,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,eAC9C,WAAW,KACvB,mBAAmB,CAAC,+BAA+B,CAAC,KAAK,CAGK,CAAC;AAElE,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,kBAChD,cAAc,CAAC,YAAY,cAC/B,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KACxD,QAAQ,CAAC,KAAK,CA2BhB,CAAC"}
@@ -16,8 +16,8 @@ const isDefinition = (value) => typeof value._tag === "string";
16
16
  const registerDefinitions = (definitions) => Record.map(definitions, (value) => isDefinition(value) ? register$1(value) : registerDefinitions(value));
17
17
  const register = (definitions) => registerDefinitions(definitions);
18
18
  const buildForGroup = (databaseSchema, groupLayer) => {
19
- const { functionRegistryItems, middlewareRegistryItems } = make(groupLayer);
20
- return mapLeaves(functionRegistryItems, isFunctionRegistryItem, (item) => Match.value(item).pipe(Match.tag("Convex", ({ handler }) => Definition.Registered({ handler })), Match.tag("Confect", (confect) => prepare(databaseSchema, confect, resolve(confect, middlewareRegistryItems))), Match.exhaustive));
19
+ const { functionRegistryItems, middlewareRegistryItems, observability } = make(groupLayer);
20
+ return mapLeaves(functionRegistryItems, isFunctionRegistryItem, (item) => Match.value(item).pipe(Match.tag("Convex", ({ handler }) => Definition.Registered({ handler })), Match.tag("Confect", (confect) => prepare(databaseSchema, confect, resolve(confect, middlewareRegistryItems), observability)), Match.exhaustive));
21
21
  };
22
22
  //#endregion
23
23
  export { ConvexFunctionDefinitions_exports, buildForGroup, isDefinition, register };
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexFunctionDefinitions.js","names":["RegisteredConvexFunction.register","GroupRegistry.make","FunctionRegistryItem.isFunctionRegistryItem","RegisteredConvexFunction.prepare","ResolvedMiddleware.resolve"],"sources":["../src/ConvexFunctionDefinitions.ts"],"sourcesContent":["import type * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Record from \"effect/Record\";\nimport type * as GroupSpec from \"@confect/core/GroupSpec\";\nimport type * as FunctionSpec from \"@confect/core/FunctionSpec\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as GroupImpl from \"./GroupImpl.js\";\nimport * as GroupRegistry from \"./GroupRegistry.js\";\nimport * as FunctionRegistryItem from \"./FunctionRegistryItem.js\";\nimport * as RegisteredConvexFunction from \"./RegisteredConvexFunction.js\";\nimport type * as RegisteredFunctions from \"./RegisteredFunctions.js\";\nimport * as ResolvedMiddleware from \"./ResolvedMiddleware.js\";\nimport { mapLeaves } from \"./internal/utils.js\";\n\nexport interface Definitions {\n readonly [name: string]: RegisteredConvexFunction.Definition | Definitions;\n}\n\ntype DefinitionTag<\n Function extends FunctionSpec.AnyWithProps,\n Provenance = Function[\"functionProvenance\"],\n> = Provenance extends { readonly _tag: \"Convex\" }\n ? \"Registered\"\n : `${Capitalize<Function[\"functionVisibility\"]>}${Capitalize<Function[\"runtimeAndFunctionType\"][\"functionType\"]>}`;\n\nexport type ForGroup<Group extends GroupSpec.AnyWithProps> = {\n readonly [Name in FunctionSpec.Name<GroupSpec.Functions<Group>>]: Extract<\n RegisteredConvexFunction.Definition,\n {\n readonly _tag: DefinitionTag<\n FunctionSpec.WithName<GroupSpec.Functions<Group>, Name>\n >;\n }\n >;\n} & {\n readonly [Name in GroupSpec.Name<GroupSpec.Groups<Group>>]: ForGroup<\n GroupSpec.WithName<GroupSpec.Groups<Group>, Name>\n >;\n};\n\nexport const isDefinition = (\n value: RegisteredConvexFunction.Definition | Definitions,\n): value is RegisteredConvexFunction.Definition =>\n typeof value._tag === \"string\";\n\nconst registerDefinitions = (\n definitions: Definitions,\n): RegisteredFunctions.AnyWithProps =>\n Record.map(definitions, (value) =>\n isDefinition(value)\n ? RegisteredConvexFunction.register(value)\n : registerDefinitions(value),\n );\n\nexport const register = <Group extends GroupSpec.AnyWithProps>(\n definitions: Definitions,\n): RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group> =>\n registerDefinitions(\n definitions,\n ) as RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group>;\n\nexport const buildForGroup = <Group extends GroupSpec.AnyWithProps>(\n databaseSchema: DatabaseSchema.AnyWithProps,\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n): ForGroup<Group> => {\n const { functionRegistryItems, middlewareRegistryItems } =\n GroupRegistry.make(groupLayer);\n return mapLeaves<\n FunctionRegistryItem.AnyWithProps,\n RegisteredConvexFunction.Definition\n >(\n functionRegistryItems as {\n [key: string]: FunctionRegistryItem.AnyWithProps;\n },\n FunctionRegistryItem.isFunctionRegistryItem,\n (item) =>\n Match.value(item).pipe(\n Match.tag(\"Convex\", ({ handler }) =>\n RegisteredConvexFunction.Definition.Registered({ handler }),\n ),\n Match.tag(\"Confect\", (confect) =>\n RegisteredConvexFunction.prepare(\n databaseSchema,\n confect,\n ResolvedMiddleware.resolve(confect, middlewareRegistryItems),\n ),\n ),\n Match.exhaustive,\n ),\n ) as ForGroup<Group>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAwCA,MAAa,gBACX,UAEA,OAAO,MAAM,SAAS;AAExB,MAAM,uBACJ,gBAEA,OAAO,IAAI,cAAc,UACvB,aAAa,KAAK,IACdA,WAAkC,KAAK,IACvC,oBAAoB,KAAK,CAC/B;AAEF,MAAa,YACX,gBAEA,oBACE,WACF;AAEF,MAAa,iBACX,gBACA,eACoB;CACpB,MAAM,EAAE,uBAAuB,4BAC7BC,KAAmB,UAAU;CAC/B,OAAO,UAIL,uBAGAC,yBACC,SACC,MAAM,MAAM,IAAI,CAAC,CAAC,KAChB,MAAM,IAAI,WAAW,EAAE,cAAA,WACe,WAAW,EAAE,QAAQ,CAAC,CAC5D,GACA,MAAM,IAAI,YAAY,YACpBC,QACE,gBACA,SACAC,QAA2B,SAAS,uBAAuB,CAC7D,CACF,GACA,MAAM,UACR,CACJ;AACF"}
1
+ {"version":3,"file":"ConvexFunctionDefinitions.js","names":["RegisteredConvexFunction.register","GroupRegistry.make","FunctionRegistryItem.isFunctionRegistryItem","RegisteredConvexFunction.prepare","ResolvedMiddleware.resolve"],"sources":["../src/ConvexFunctionDefinitions.ts"],"sourcesContent":["import type * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Record from \"effect/Record\";\nimport type * as GroupSpec from \"@confect/core/GroupSpec\";\nimport type * as FunctionSpec from \"@confect/core/FunctionSpec\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as GroupImpl from \"./GroupImpl.js\";\nimport * as GroupRegistry from \"./GroupRegistry.js\";\nimport * as FunctionRegistryItem from \"./FunctionRegistryItem.js\";\nimport * as RegisteredConvexFunction from \"./RegisteredConvexFunction.js\";\nimport type * as RegisteredFunctions from \"./RegisteredFunctions.js\";\nimport * as ResolvedMiddleware from \"./ResolvedMiddleware.js\";\nimport { mapLeaves } from \"./internal/utils.js\";\n\nexport interface Definitions {\n readonly [name: string]: RegisteredConvexFunction.Definition | Definitions;\n}\n\ntype DefinitionTag<\n Function extends FunctionSpec.AnyWithProps,\n Provenance = Function[\"functionProvenance\"],\n> = Provenance extends { readonly _tag: \"Convex\" }\n ? \"Registered\"\n : `${Capitalize<Function[\"functionVisibility\"]>}${Capitalize<Function[\"runtimeAndFunctionType\"][\"functionType\"]>}`;\n\nexport type ForGroup<Group extends GroupSpec.AnyWithProps> = {\n readonly [Name in FunctionSpec.Name<GroupSpec.Functions<Group>>]: Extract<\n RegisteredConvexFunction.Definition,\n {\n readonly _tag: DefinitionTag<\n FunctionSpec.WithName<GroupSpec.Functions<Group>, Name>\n >;\n }\n >;\n} & {\n readonly [Name in GroupSpec.Name<GroupSpec.Groups<Group>>]: ForGroup<\n GroupSpec.WithName<GroupSpec.Groups<Group>, Name>\n >;\n};\n\nexport const isDefinition = (\n value: RegisteredConvexFunction.Definition | Definitions,\n): value is RegisteredConvexFunction.Definition =>\n typeof value._tag === \"string\";\n\nconst registerDefinitions = (\n definitions: Definitions,\n): RegisteredFunctions.AnyWithProps =>\n Record.map(definitions, (value) =>\n isDefinition(value)\n ? RegisteredConvexFunction.register(value)\n : registerDefinitions(value),\n );\n\nexport const register = <Group extends GroupSpec.AnyWithProps>(\n definitions: Definitions,\n): RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group> =>\n registerDefinitions(\n definitions,\n ) as RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group>;\n\nexport const buildForGroup = <Group extends GroupSpec.AnyWithProps>(\n databaseSchema: DatabaseSchema.AnyWithProps,\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n): ForGroup<Group> => {\n const { functionRegistryItems, middlewareRegistryItems, observability } =\n GroupRegistry.make(groupLayer);\n return mapLeaves<\n FunctionRegistryItem.AnyWithProps,\n RegisteredConvexFunction.Definition\n >(\n functionRegistryItems as {\n [key: string]: FunctionRegistryItem.AnyWithProps;\n },\n FunctionRegistryItem.isFunctionRegistryItem,\n (item) =>\n Match.value(item).pipe(\n Match.tag(\"Convex\", ({ handler }) =>\n RegisteredConvexFunction.Definition.Registered({ handler }),\n ),\n Match.tag(\"Confect\", (confect) =>\n RegisteredConvexFunction.prepare(\n databaseSchema,\n confect,\n ResolvedMiddleware.resolve(confect, middlewareRegistryItems),\n observability,\n ),\n ),\n Match.exhaustive,\n ),\n ) as ForGroup<Group>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAwCA,MAAa,gBACX,UAEA,OAAO,MAAM,SAAS;AAExB,MAAM,uBACJ,gBAEA,OAAO,IAAI,cAAc,UACvB,aAAa,KAAK,IACdA,WAAkC,KAAK,IACvC,oBAAoB,KAAK,CAC/B;AAEF,MAAa,YACX,gBAEA,oBACE,WACF;AAEF,MAAa,iBACX,gBACA,eACoB;CACpB,MAAM,EAAE,uBAAuB,yBAAyB,kBACtDC,KAAmB,UAAU;CAC/B,OAAO,UAIL,uBAGAC,yBACC,SACC,MAAM,MAAM,IAAI,CAAC,CAAC,KAChB,MAAM,IAAI,WAAW,EAAE,cAAA,WACe,WAAW,EAAE,QAAQ,CAAC,CAC5D,GACA,MAAM,IAAI,YAAY,YACpBC,QACE,gBACA,SACAC,QAA2B,SAAS,uBAAuB,GAC3D,aACF,CACF,GACA,MAAM,UACR,CACJ;AACF"}
@@ -2,6 +2,7 @@ import type * as Layer from "effect/Layer";
2
2
  import type * as GroupImpl from "./GroupImpl.js";
3
3
  import * as MiddlewareRegistryItem from "./MiddlewareRegistryItem.js";
4
4
  export declare const make: (groupLayer: Layer.Layer<GroupImpl.GroupImpl<"Finalized">>) => {
5
+ observability: Layer.Layer<never, never, never> | undefined;
5
6
  functionRegistryItems: Record<string, unknown>;
6
7
  middlewareRegistryItems: Map<string, MiddlewareRegistryItem.MiddlewareRegistryItem>;
7
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GroupRegistry.d.ts","sourceRoot":"","sources":["../src/GroupRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AAEtE,eAAO,MAAM,IAAI,eACH,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;;;CAe1D,CAAC"}
1
+ {"version":3,"file":"GroupRegistry.d.ts","sourceRoot":"","sources":["../src/GroupRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AAEtE,eAAO,MAAM,IAAI,eACH,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;;;;CAkB1D,CAAC"}
@@ -1,14 +1,21 @@
1
1
  import { Registry } from "./Registry.js";
2
2
  import { isMiddlewareRegistryItem } from "./MiddlewareRegistryItem.js";
3
+ import { Observability } from "./RegisteredFunction.js";
3
4
  import * as Effect from "effect/Effect";
4
5
  import * as Ref from "effect/Ref";
5
6
  //#region src/GroupRegistry.ts
6
7
  const make = (groupLayer) => {
7
- const registryItems = Effect.gen(function* () {
8
+ const { registryItems, observability } = Effect.gen(function* () {
8
9
  const registry = yield* Registry;
9
- return yield* Ref.get(registry);
10
+ return {
11
+ registryItems: yield* Ref.get(registry),
12
+ observability: yield* Observability
13
+ };
10
14
  }).pipe(Effect.provide(groupLayer), Effect.provideService(Registry, Ref.makeUnsafe({})), Effect.runSync);
11
- return partitionRegistryItems(registryItems);
15
+ return {
16
+ ...partitionRegistryItems(registryItems),
17
+ observability
18
+ };
12
19
  };
13
20
  const partitionRegistryItems = (registryItems) => {
14
21
  const middlewareRegistryItems = /* @__PURE__ */ new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"GroupRegistry.js","names":["Registry.Registry","MiddlewareRegistryItem.isMiddlewareRegistryItem"],"sources":["../src/GroupRegistry.ts"],"sourcesContent":["import * as Effect from \"effect/Effect\";\nimport type * as Layer from \"effect/Layer\";\nimport * as Ref from \"effect/Ref\";\nimport * as Registry from \"./Registry.js\";\nimport type * as RegistryItems from \"./RegistryItems.js\";\nimport type * as GroupImpl from \"./GroupImpl.js\";\nimport * as MiddlewareRegistryItem from \"./MiddlewareRegistryItem.js\";\n\nexport const make = (\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n) => {\n const registryItems = Effect.gen(function* () {\n const registry = yield* Registry.Registry;\n return yield* Ref.get(registry);\n }).pipe(\n Effect.provide(groupLayer),\n Effect.provideService(\n Registry.Registry,\n Ref.makeUnsafe<RegistryItems.RegistryItems>({}),\n ),\n Effect.runSync,\n );\n\n return partitionRegistryItems(registryItems);\n};\n\nconst partitionRegistryItems = (registryItems: RegistryItems.RegistryItems) => {\n const middlewareRegistryItems = new Map<\n string,\n MiddlewareRegistryItem.MiddlewareRegistryItem\n >();\n const functionRegistryItems: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(registryItems)) {\n if (MiddlewareRegistryItem.isMiddlewareRegistryItem(value)) {\n middlewareRegistryItems.set(value.middlewareSpec.key, value);\n } else {\n functionRegistryItems[key] = value;\n }\n }\n return { functionRegistryItems, middlewareRegistryItems };\n};\n"],"mappings":";;;;;AAQA,MAAa,QACX,eACG;CACH,MAAM,gBAAgB,OAAO,IAAI,aAAa;EAC5C,MAAM,WAAW,OAAOA;EACxB,OAAO,OAAO,IAAI,IAAI,QAAQ;CAChC,CAAC,CAAC,CAAC,KACD,OAAO,QAAQ,UAAU,GACzB,OAAO,eACLA,UACA,IAAI,WAAwC,CAAC,CAAC,CAChD,GACA,OAAO,OACT;CAEA,OAAO,uBAAuB,aAAa;AAC7C;AAEA,MAAM,0BAA0B,kBAA+C;CAC7E,MAAM,0CAA0B,IAAI,IAGlC;CACF,MAAM,wBAAiD,CAAC;CACxD,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,aAAa,GACrD,IAAIC,yBAAgD,KAAK,GACvD,wBAAwB,IAAI,MAAM,eAAe,KAAK,KAAK;MAE3D,sBAAsB,OAAO;CAGjC,OAAO;EAAE;EAAuB;CAAwB;AAC1D"}
1
+ {"version":3,"file":"GroupRegistry.js","names":["Registry.Registry","RegisteredFunction.Observability","MiddlewareRegistryItem.isMiddlewareRegistryItem"],"sources":["../src/GroupRegistry.ts"],"sourcesContent":["import * as RegisteredFunction from \"./RegisteredFunction.js\";\nimport * as Effect from \"effect/Effect\";\nimport type * as Layer from \"effect/Layer\";\nimport * as Ref from \"effect/Ref\";\nimport * as Registry from \"./Registry.js\";\nimport type * as RegistryItems from \"./RegistryItems.js\";\nimport type * as GroupImpl from \"./GroupImpl.js\";\nimport * as MiddlewareRegistryItem from \"./MiddlewareRegistryItem.js\";\n\nexport const make = (\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n) => {\n const { registryItems, observability } = Effect.gen(function* () {\n const registry = yield* Registry.Registry;\n return {\n registryItems: yield* Ref.get(registry),\n observability: yield* RegisteredFunction.Observability,\n };\n }).pipe(\n Effect.provide(groupLayer),\n Effect.provideService(\n Registry.Registry,\n Ref.makeUnsafe<RegistryItems.RegistryItems>({}),\n ),\n Effect.runSync,\n );\n\n return { ...partitionRegistryItems(registryItems), observability };\n};\n\nconst partitionRegistryItems = (registryItems: RegistryItems.RegistryItems) => {\n const middlewareRegistryItems = new Map<\n string,\n MiddlewareRegistryItem.MiddlewareRegistryItem\n >();\n const functionRegistryItems: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(registryItems)) {\n if (MiddlewareRegistryItem.isMiddlewareRegistryItem(value)) {\n middlewareRegistryItems.set(value.middlewareSpec.key, value);\n } else {\n functionRegistryItems[key] = value;\n }\n }\n return { functionRegistryItems, middlewareRegistryItems };\n};\n"],"mappings":";;;;;;AASA,MAAa,QACX,eACG;CACH,MAAM,EAAE,eAAe,kBAAkB,OAAO,IAAI,aAAa;EAC/D,MAAM,WAAW,OAAOA;EACxB,OAAO;GACL,eAAe,OAAO,IAAI,IAAI,QAAQ;GACtC,eAAe,OAAOC;EACxB;CACF,CAAC,CAAC,CAAC,KACD,OAAO,QAAQ,UAAU,GACzB,OAAO,eACLD,UACA,IAAI,WAAwC,CAAC,CAAC,CAChD,GACA,OAAO,OACT;CAEA,OAAO;EAAE,GAAG,uBAAuB,aAAa;EAAG;CAAc;AACnE;AAEA,MAAM,0BAA0B,kBAA+C;CAC7E,MAAM,0CAA0B,IAAI,IAGlC;CACF,MAAM,wBAAiD,CAAC;CACxD,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,aAAa,GACrD,IAAIE,yBAAgD,KAAK,GACvD,wBAAwB,IAAI,MAAM,eAAe,KAAK,KAAK;MAE3D,sBAAsB,OAAO;CAGjC,OAAO;EAAE;EAAuB;CAAwB;AAC1D"}
@@ -6,9 +6,9 @@ import * as Array from "effect/Array";
6
6
  import * as Schema from "effect/Schema";
7
7
  import * as Option from "effect/Option";
8
8
  import { getDocumentSize } from "convex/values";
9
+ import * as Cause from "effect/Cause";
9
10
  import * as Stream from "effect/Stream";
10
11
  import * as Tuple from "effect/Tuple";
11
- import * as Cause from "effect/Cause";
12
12
  import * as SynchronizedRef from "effect/SynchronizedRef";
13
13
  //#region src/QueryStreamReadBudget.ts
14
14
  var QueryStreamReadBudget_exports = /* @__PURE__ */ __exportAll({
@@ -263,7 +263,7 @@ export declare const Definition: {
263
263
  readonly handler: RegisteredFunction.Any;
264
264
  }, "_tag">;
265
265
  };
266
- export declare const prepare: (databaseSchema: DatabaseSchema.AnyWithProps, item: FunctionRegistryItem.ConfectFunctionRegistryItem, resolvedMiddlewares?: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>) => {
266
+ export declare const prepare: (databaseSchema: DatabaseSchema.AnyWithProps, item: FunctionRegistryItem.ConfectFunctionRegistryItem, resolvedMiddlewares?: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>, observability?: Layer.Layer<never>) => {
267
267
  readonly _tag: "InternalAction";
268
268
  readonly args: import("convex/values").PropertyValidators;
269
269
  readonly returns: import("convex/values").Validator<any, any, any>;
@@ -296,7 +296,7 @@ export declare const prepare: (databaseSchema: DatabaseSchema.AnyWithProps, item
296
296
  };
297
297
  export declare const make: (databaseSchema: DatabaseSchema.AnyWithProps, item: FunctionRegistryItem.ConfectFunctionRegistryItem, resolvedMiddlewares?: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>) => RegisteredFunction.Any;
298
298
  export declare const register: (self: Definition) => RegisteredFunction.Any;
299
- declare const queryFunction: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Args, ConvexArgs extends DefaultFunctionArgs, Returns, ConvexReturns, E>({ databaseSchema, name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, }: {
299
+ declare const queryFunction: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Args, ConvexArgs extends DefaultFunctionArgs, Returns, ConvexReturns, E>({ databaseSchema, name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, observability, }: {
300
300
  databaseSchema: DatabaseSchema_;
301
301
  name: string;
302
302
  functionVisibility: FunctionVisibility;
@@ -305,6 +305,7 @@ declare const queryFunction: <DatabaseSchema_ extends DatabaseSchema.AnyWithProp
305
305
  error: Schema.Codec<Error, Value> | undefined;
306
306
  handler: (a: Args) => Effect.Effect<Returns, E, Handler.QueryServices<DatabaseSchema_>>;
307
307
  resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;
308
+ observability?: Layer.Layer<never> | undefined;
308
309
  }) => {
309
310
  args: import("convex/values").PropertyValidators;
310
311
  returns: import("convex/values").Validator<any, any, any>;
@@ -328,7 +329,7 @@ export declare const mutationLayer: <Schema extends DatabaseSchema.AnyWithProps>
328
329
  };
329
330
  } | Scheduler.ForScope<DatabaseSchema.Scope<Schema>> | import("./StorageReader.js").ForScope<DatabaseSchema.Scope<Schema>> | import("./StorageWriter.js").ForScope<DatabaseSchema.Scope<Schema>> | Auth.ForTarget<Schema["target"]> | MutationCtx.MutationCtx<DataModel.ToConvex<DataModel.FromSchema<Schema>>, DatabaseSchema.Scope<Schema>>, never, never>;
330
331
  export type MutationServices<Schema extends DatabaseSchema.AnyWithProps> = Handler.MutationServices<Schema>;
331
- declare const mutationFunction: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Args, ConvexArgs extends DefaultFunctionArgs, Returns, ConvexReturns, E>({ databaseSchema, name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, }: {
332
+ declare const mutationFunction: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Args, ConvexArgs extends DefaultFunctionArgs, Returns, ConvexReturns, E>({ databaseSchema, name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, observability, }: {
332
333
  databaseSchema: DatabaseSchema_;
333
334
  name: string;
334
335
  functionVisibility: FunctionVisibility;
@@ -337,12 +338,13 @@ declare const mutationFunction: <DatabaseSchema_ extends DatabaseSchema.AnyWithP
337
338
  error: Schema.Codec<Error, Value> | undefined;
338
339
  handler: (a: Args) => Effect.Effect<Returns, E, MutationServices<DatabaseSchema_>>;
339
340
  resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;
341
+ observability?: Layer.Layer<never> | undefined;
340
342
  }) => {
341
343
  args: import("convex/values").PropertyValidators;
342
344
  returns: import("convex/values").Validator<any, any, any>;
343
345
  handler: (ctx: GenericMutationCtx<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>>, actualArgs: ConvexArgs) => Promise<ConvexReturns>;
344
346
  };
345
- declare const convexActionFunction: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Args, ConvexArgs extends DefaultFunctionArgs, Returns, ConvexReturns, E>(schema: DatabaseSchema_, { name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, }: {
347
+ declare const convexActionFunction: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Args, ConvexArgs extends DefaultFunctionArgs, Returns, ConvexReturns, E>(schema: DatabaseSchema_, { name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, observability, }: {
346
348
  name: string;
347
349
  functionVisibility: FunctionVisibility;
348
350
  args: Schema.Codec<Args, ConvexArgs>;
@@ -350,6 +352,7 @@ declare const convexActionFunction: <DatabaseSchema_ extends DatabaseSchema.AnyW
350
352
  error: Schema.Codec<any, any> | undefined;
351
353
  handler: (a: Args) => Effect.Effect<Returns, E, RegisteredFunction.ActionServices<DatabaseSchema_>>;
352
354
  resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;
355
+ observability?: Layer.Layer<never> | undefined;
353
356
  }) => {
354
357
  args: import("convex/values").PropertyValidators;
355
358
  returns: import("convex/values").Validator<any, any, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"RegisteredConvexFunction.d.ts","sourceRoot":"","sources":["../src/RegisteredConvexFunction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RegisteredConvexFunction.d.ts","sourceRoot":"","sources":["../src/RegisteredConvexFunction.ts"],"names":[],"mappings":"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"}
@@ -6,15 +6,15 @@ import { layer as layer$3 } from "./QueryRunner.js";
6
6
  import { layer as layer$4 } from "./Scheduler.js";
7
7
  import { layerForTarget, mutationLayer as mutationLayer$1 } from "./Auth.js";
8
8
  import { layer as layer$5 } from "./ConvexConfigProvider.js";
9
- import { layer as layer$6 } from "./DatabaseReader.js";
10
- import { layer as layer$7 } from "./DatabaseWriter.js";
11
- import { layer as layer$8 } from "./ExecutionMetadata.js";
12
- import { layer as layer$9 } from "./RequestMetadata.js";
9
+ import { layer as layer$6 } from "./ExecutionMetadata.js";
10
+ import { layer as layer$7 } from "./RequestMetadata.js";
11
+ import { StorageWriter } from "./StorageWriter.js";
12
+ import { actionFunctionBase, actionLayer, applyMiddleware, combineErrorSchemas, runHandlerPromise, storageLayer } from "./RegisteredFunction.js";
13
+ import { layer as layer$8 } from "./DatabaseReader.js";
14
+ import { layer as layer$9 } from "./DatabaseWriter.js";
13
15
  import { layer as layer$10 } from "./TransactionMetadata.js";
14
16
  import { layer as layer$11 } from "./MutationCtx.js";
15
17
  import { layer as layer$12 } from "./QueryCtx.js";
16
- import { StorageWriter } from "./StorageWriter.js";
17
- import { actionFunctionBase, actionLayer, applyMiddleware, combineErrorSchemas, runHandlerPromise, storageLayer } from "./RegisteredFunction.js";
18
18
  import * as Data from "effect/Data";
19
19
  import * as Effect from "effect/Effect";
20
20
  import * as Layer from "effect/Layer";
@@ -35,10 +35,11 @@ var RegisteredConvexFunction_exports = /* @__PURE__ */ __exportAll({
35
35
  register: () => register
36
36
  });
37
37
  const Definition = Data.taggedEnum();
38
- const prepare = (databaseSchema, item, resolvedMiddlewares = []) => Match.value(item.functionType).pipe(Match.when("query", () => {
38
+ const prepare = (databaseSchema, item, resolvedMiddlewares = [], observability) => Match.value(item.functionType).pipe(Match.when("query", () => {
39
39
  const definition = queryFunction({
40
40
  databaseSchema,
41
41
  name: item.name,
42
+ observability,
42
43
  functionVisibility: item.functionVisibility,
43
44
  args: item.args,
44
45
  returns: item.returns,
@@ -51,6 +52,7 @@ const prepare = (databaseSchema, item, resolvedMiddlewares = []) => Match.value(
51
52
  const definition = mutationFunction({
52
53
  databaseSchema,
53
54
  name: item.name,
55
+ observability,
54
56
  functionVisibility: item.functionVisibility,
55
57
  args: item.args,
56
58
  returns: item.returns,
@@ -62,6 +64,7 @@ const prepare = (databaseSchema, item, resolvedMiddlewares = []) => Match.value(
62
64
  }), Match.when("action", () => {
63
65
  const definition = convexActionFunction(databaseSchema, {
64
66
  name: item.name,
67
+ observability,
65
68
  functionVisibility: item.functionVisibility,
66
69
  args: item.args,
67
70
  returns: item.returns,
@@ -108,7 +111,7 @@ const queryClock = {
108
111
  return Effect.sync(() => clearTimeout(handle));
109
112
  })
110
113
  };
111
- const queryFunction = ({ databaseSchema, name, functionVisibility, args, returns, error, handler, resolvedMiddlewares }) => ({
114
+ const queryFunction = ({ databaseSchema, name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, observability }) => ({
112
115
  args: compileArgsSchema(args, databaseSchema.target.scope),
113
116
  returns: compileReturnsSchema(returns, databaseSchema.target.scope),
114
117
  handler: (ctx, actualArgs) => Effect.gen(function* () {
@@ -118,12 +121,17 @@ const queryFunction = ({ databaseSchema, name, functionVisibility, args, returns
118
121
  functionType: "query",
119
122
  functionVisibility,
120
123
  args: decodedArgs
121
- }).pipe(Effect.provide(Layer.mergeAll(layer$6(databaseSchema, ctx.db), layer$8(ctx.meta), layer$10(ctx.meta), layer$2(ctx), layerForTarget(databaseSchema.target, ctx.auth), storageLayer(ctx.storage), layer$3(ctx.runQuery), layer$12(ctx, databaseSchema.target.scope), layer$5)));
124
+ }).pipe(Effect.provide(Layer.mergeAll(layer$8(databaseSchema, ctx.db), layer$6(ctx.meta), layer$10(ctx.meta), layer$2(ctx), layerForTarget(databaseSchema.target, ctx.auth), storageLayer(ctx.storage), layer$3(ctx.runQuery), layer$12(ctx, databaseSchema.target.scope), layer$5)));
122
125
  return yield* pipe(decodedReturns, Schema.encodeEffect(returns), Effect.catchTag("SchemaError", Effect.die));
123
- }).pipe(Effect.provideService(Clock.Clock, queryClock), runHandlerPromise(combineErrorSchemas(error, resolvedMiddlewares), { scheduler: new EffectScheduler.MixedScheduler("sync") }))
126
+ }).pipe(Effect.provideService(Clock.Clock, queryClock), runHandlerPromise(combineErrorSchemas(error, resolvedMiddlewares), {
127
+ scheduler: new EffectScheduler.MixedScheduler("sync"),
128
+ invocation: Effect.promise(() => ctx.meta.getFunctionMetadata()),
129
+ clock: observability === void 0 ? void 0 : queryClock,
130
+ observability
131
+ }))
124
132
  });
125
- const mutationLayer = (schema, ctx) => Layer.mergeAll(layer$6(schema, ctx.db), layer$7(schema, ctx.db), layer$8(ctx.meta), layer$9(ctx.meta), layer$10(ctx.meta), layerForTarget(schema.target, ctx.auth), mutationLayer$1(ctx.auth), layer$4(ctx.scheduler, schema.target.scope), storageLayer(ctx.storage), StorageWriter.layer(ctx.storage, schema.target.scope), layer$3(ctx.runQuery), layer$1(ctx.runMutation), layer$2(ctx), layer(ctx), layer$11(ctx, schema.target.scope), layer$5);
126
- const mutationFunction = ({ databaseSchema, name, functionVisibility, args, returns, error, handler, resolvedMiddlewares }) => ({
133
+ const mutationLayer = (schema, ctx) => Layer.mergeAll(layer$8(schema, ctx.db), layer$9(schema, ctx.db), layer$6(ctx.meta), layer$7(ctx.meta), layer$10(ctx.meta), layerForTarget(schema.target, ctx.auth), mutationLayer$1(ctx.auth), layer$4(ctx.scheduler, schema.target.scope), storageLayer(ctx.storage), StorageWriter.layer(ctx.storage, schema.target.scope), layer$3(ctx.runQuery), layer$1(ctx.runMutation), layer$2(ctx), layer(ctx), layer$11(ctx, schema.target.scope), layer$5);
134
+ const mutationFunction = ({ databaseSchema, name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, observability }) => ({
127
135
  args: compileArgsSchema(args, databaseSchema.target.scope),
128
136
  returns: compileReturnsSchema(returns, databaseSchema.target.scope),
129
137
  handler: (ctx, actualArgs) => Effect.gen(function* () {
@@ -135,9 +143,13 @@ const mutationFunction = ({ databaseSchema, name, functionVisibility, args, retu
135
143
  args: decodedArgs
136
144
  }).pipe(Effect.provide(mutationLayer(databaseSchema, ctx)));
137
145
  return yield* pipe(decodedReturns, Schema.encodeEffect(returns), Effect.catchTag("SchemaError", Effect.die));
138
- }).pipe(runHandlerPromise(combineErrorSchemas(error, resolvedMiddlewares), { scheduler: new EffectScheduler.MixedScheduler("sync") }))
146
+ }).pipe(runHandlerPromise(combineErrorSchemas(error, resolvedMiddlewares), {
147
+ scheduler: new EffectScheduler.MixedScheduler("sync"),
148
+ invocation: Effect.promise(() => ctx.meta.getFunctionMetadata()),
149
+ observability
150
+ }))
139
151
  });
140
- const convexActionFunction = (schema, { name, functionVisibility, args, returns, error, handler, resolvedMiddlewares }) => actionFunctionBase({
152
+ const convexActionFunction = (schema, { name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, observability }) => actionFunctionBase({
141
153
  scope: schema.target.scope,
142
154
  name,
143
155
  functionVisibility,
@@ -146,6 +158,7 @@ const convexActionFunction = (schema, { name, functionVisibility, args, returns,
146
158
  error,
147
159
  handler,
148
160
  resolvedMiddlewares,
161
+ observability,
149
162
  createLayer: (ctx) => Layer.mergeAll(actionLayer(schema, ctx), layer$5)
150
163
  });
151
164
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"RegisteredConvexFunction.js","names":["RegisteredFunction.applyMiddleware","DatabaseReader.layer","ExecutionMetadata.layer","TransactionMetadata.layer","QueryTransactionContext.layer","Auth.layerForTarget","RegisteredFunction.storageLayer","QueryRunner.layer","QueryCtx.layer","ConvexConfigProvider.layer","RegisteredFunction.runHandlerPromise","RegisteredFunction.combineErrorSchemas","DatabaseWriter.layer","RequestMetadata.layer","Auth.mutationLayer","Scheduler.layer","MutationRunner.layer","MutationTransactionContext.layer","MutationCtx.layer","RegisteredFunction.actionFunctionBase","RegisteredFunction.actionLayer"],"sources":["../src/RegisteredConvexFunction.ts"],"sourcesContent":["import {\n compileArgsSchema,\n compileReturnsSchema,\n} from \"@confect/core/SchemaToValidator\";\nimport {\n actionGeneric,\n type DefaultFunctionArgs,\n type FunctionVisibility,\n type GenericMutationCtx,\n type GenericQueryCtx,\n internalActionGeneric,\n internalMutationGeneric,\n internalQueryGeneric,\n mutationGeneric,\n queryGeneric,\n} from \"convex/server\";\nimport type { Value } from \"convex/values\";\nimport { pipe } from \"effect/Function\";\nimport * as Clock from \"effect/Clock\";\nimport * as Data from \"effect/Data\";\nimport * as Duration from \"effect/Duration\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Schema from \"effect/Schema\";\nimport * as EffectScheduler from \"effect/Scheduler\";\nimport * as Auth from \"./Auth.js\";\nimport * as ConvexConfigProvider from \"./ConvexConfigProvider.js\";\nimport * as DatabaseReader from \"./DatabaseReader.js\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport * as DatabaseWriter from \"./DatabaseWriter.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport * as ExecutionMetadata from \"./ExecutionMetadata.js\";\nimport * as RequestMetadata from \"./RequestMetadata.js\";\nimport * as TransactionMetadata from \"./TransactionMetadata.js\";\nimport * as MutationCtx from \"./MutationCtx.js\";\nimport * as MutationRunner from \"./MutationRunner.js\";\nimport * as MutationTransactionContext from \"./MutationTransactionContext.js\";\nimport * as QueryCtx from \"./QueryCtx.js\";\nimport * as QueryRunner from \"./QueryRunner.js\";\nimport * as QueryTransactionContext from \"./QueryTransactionContext.js\";\nimport * as RegisteredFunction from \"./RegisteredFunction.js\";\nimport type * as FunctionRegistryItem from \"./FunctionRegistryItem.js\";\nimport type * as ResolvedMiddleware from \"./ResolvedMiddleware.js\";\nimport * as Scheduler from \"./Scheduler.js\";\nimport { StorageWriter } from \"./StorageWriter.js\";\nimport type * as Handler from \"./Handler.js\";\n\nexport type Definition = Data.TaggedEnum<{\n PublicQuery: ReturnType<typeof queryFunction>;\n InternalQuery: ReturnType<typeof queryFunction>;\n PublicMutation: ReturnType<typeof mutationFunction>;\n InternalMutation: ReturnType<typeof mutationFunction>;\n PublicAction: ReturnType<typeof convexActionFunction>;\n InternalAction: ReturnType<typeof convexActionFunction>;\n Registered: { readonly handler: RegisteredFunction.Any };\n}>;\nexport const Definition = Data.taggedEnum<Definition>();\n\nexport const prepare = (\n databaseSchema: DatabaseSchema.AnyWithProps,\n item: FunctionRegistryItem.ConfectFunctionRegistryItem,\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware> = [],\n) =>\n Match.value(item.functionType).pipe(\n Match.when(\"query\", () => {\n const definition = queryFunction({\n databaseSchema,\n name: item.name,\n functionVisibility: item.functionVisibility,\n args: item.args,\n returns: item.returns,\n error: item.error,\n handler: item.handler,\n resolvedMiddlewares,\n });\n return Match.value(item.functionVisibility).pipe(\n Match.when(\"public\", () => Definition.PublicQuery(definition)),\n Match.when(\"internal\", () => Definition.InternalQuery(definition)),\n Match.exhaustive,\n );\n }),\n Match.when(\"mutation\", () => {\n const definition = mutationFunction({\n databaseSchema,\n name: item.name,\n functionVisibility: item.functionVisibility,\n args: item.args,\n returns: item.returns,\n error: item.error,\n handler: item.handler,\n resolvedMiddlewares,\n });\n return Match.value(item.functionVisibility).pipe(\n Match.when(\"public\", () => Definition.PublicMutation(definition)),\n Match.when(\"internal\", () => Definition.InternalMutation(definition)),\n Match.exhaustive,\n );\n }),\n Match.when(\"action\", () => {\n const definition = convexActionFunction(databaseSchema, {\n name: item.name,\n functionVisibility: item.functionVisibility,\n args: item.args,\n returns: item.returns,\n error: item.error,\n handler: item.handler,\n resolvedMiddlewares,\n });\n return Match.value(item.functionVisibility).pipe(\n Match.when(\"public\", () => Definition.PublicAction(definition)),\n Match.when(\"internal\", () => Definition.InternalAction(definition)),\n Match.exhaustive,\n );\n }),\n Match.exhaustive,\n );\n\nexport const make = (\n databaseSchema: DatabaseSchema.AnyWithProps,\n item: FunctionRegistryItem.ConfectFunctionRegistryItem,\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware> = [],\n): RegisteredFunction.Any =>\n register(prepare(databaseSchema, item, resolvedMiddlewares));\n\nexport const register = (self: Definition): RegisteredFunction.Any =>\n Definition.$match(self, {\n PublicQuery: (definition) => queryGeneric(definition),\n InternalQuery: (definition) => internalQueryGeneric(definition),\n PublicMutation: (definition) => mutationGeneric(definition),\n InternalMutation: (definition) => internalMutationGeneric(definition),\n PublicAction: (definition) => actionGeneric(definition),\n InternalAction: (definition) => internalActionGeneric(definition),\n Registered: ({ handler }) => handler,\n });\n\n/**\n * Convex evicts a query from its cache once the execution observes the current\n * time (every `Date.now()` read is tracked). Effect's logging, span, and\n * elapsed-time machinery reads timestamps through the ambient `Clock`'s unsafe\n * accessors, which would silently opt any logging or timing query out of the\n * cache—and there is no untracked time source in the isolate to serve them\n * from, since Effect's own live clock falls back to `Date.now()` for monotonic\n * time when neither `process.hrtime` nor `performance.now` exists. Queries\n * therefore run with a `Clock` whose unsafe accessors all return constants, so\n * logging and spans never touch the tracker and `Effect.timed` and duration\n * metrics report a zero elapsed time, while the effectful accessors\n * (`Clock.currentTimeMillis`/`currentTimeNanos`/`monotonicTimeNanos`) read the\n * real time, making them an explicit opt-in to cache eviction. Raw `Date.now()`\n * calls in handler code likewise opt out honestly.\n */\nconst queryClock: Clock.Clock = {\n currentTimeMillisUnsafe: () => 0,\n currentTimeNanosUnsafe: () => 0n,\n monotonicTimeNanosUnsafe: () => 0n,\n // oxlint-disable-next-line effecttsgo/global-date-in-effect -- This access intentionally notifies Convex's query-cache tracker.\n currentTimeMillis: Effect.sync(() => Date.now()),\n // oxlint-disable-next-line effecttsgo/global-date-in-effect -- This access intentionally notifies Convex's query-cache tracker.\n currentTimeNanos: Effect.sync(() => BigInt(Date.now()) * 1_000_000n),\n // oxlint-disable-next-line effecttsgo/global-date-in-effect -- This access intentionally notifies Convex's query-cache tracker.\n monotonicTimeNanos: Effect.sync(() => BigInt(Date.now()) * 1_000_000n),\n // `Effect.sleep` resolves the ambient clock, so it cannot be used here—it\n // would recurse straight back into this `sleep`.\n sleep: (duration) =>\n Effect.callback<void>((resume) => {\n // oxlint-disable-next-line effecttsgo/global-timers-in-effect -- Effect.sleep would resolve this Clock and recurse.\n const handle = setTimeout(\n () => resume(Effect.void),\n Duration.toMillis(duration),\n );\n return Effect.sync(() => clearTimeout(handle));\n }),\n};\n\nconst queryFunction = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Args,\n ConvexArgs extends DefaultFunctionArgs,\n Returns,\n ConvexReturns,\n E,\n>({\n databaseSchema,\n name,\n functionVisibility,\n args,\n returns,\n error,\n handler,\n resolvedMiddlewares,\n}: {\n databaseSchema: DatabaseSchema_;\n name: string;\n functionVisibility: FunctionVisibility;\n args: Schema.Codec<Args, ConvexArgs>;\n returns: Schema.Codec<Returns, ConvexReturns>;\n error: Schema.Codec<Error, Value> | undefined;\n handler: (\n a: Args,\n ) => Effect.Effect<Returns, E, Handler.QueryServices<DatabaseSchema_>>;\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;\n}) => ({\n args: compileArgsSchema(args, databaseSchema.target.scope),\n returns: compileReturnsSchema(returns, databaseSchema.target.scope),\n handler: (\n ctx: GenericQueryCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n actualArgs: ConvexArgs,\n ): Promise<ConvexReturns> =>\n Effect.gen(function* () {\n const decodedArgs = yield* pipe(\n actualArgs,\n Schema.decodeUnknownEffect(args),\n Effect.catchTag(\"SchemaError\", Effect.die),\n );\n // oxlint-disable-next-line effecttsgo/any-unknown-in-error-context -- Middleware errors are intentionally erased here and validated by runHandlerPromise against the combined error schema below.\n const decodedReturns = yield* RegisteredFunction.applyMiddleware(\n handler(decodedArgs),\n resolvedMiddlewares,\n {\n name,\n functionType: \"query\",\n functionVisibility,\n args: decodedArgs,\n },\n ).pipe(\n Effect.provide(\n Layer.mergeAll(\n DatabaseReader.layer(databaseSchema, ctx.db),\n ExecutionMetadata.layer(ctx.meta),\n TransactionMetadata.layer(ctx.meta),\n QueryTransactionContext.layer(ctx),\n Auth.layerForTarget<DatabaseSchema_[\"target\"]>(\n databaseSchema.target,\n ctx.auth,\n ),\n RegisteredFunction.storageLayer<\n DatabaseSchema.Scope<DatabaseSchema_>\n >(ctx.storage),\n QueryRunner.layer(ctx.runQuery),\n QueryCtx.layer<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >(ctx, databaseSchema.target.scope),\n ConvexConfigProvider.layer,\n ),\n ),\n );\n return yield* pipe(\n decodedReturns,\n Schema.encodeEffect(returns),\n Effect.catchTag(\"SchemaError\", Effect.die),\n );\n }).pipe(\n Effect.provideService(Clock.Clock, queryClock),\n RegisteredFunction.runHandlerPromise(\n RegisteredFunction.combineErrorSchemas(error, resolvedMiddlewares),\n {\n scheduler: new EffectScheduler.MixedScheduler(\"sync\"),\n },\n ),\n ),\n});\n\nexport const mutationLayer = <Schema extends DatabaseSchema.AnyWithProps>(\n schema: Schema,\n ctx: GenericMutationCtx<DataModel.ToConvex<DataModel.FromSchema<Schema>>>,\n) =>\n Layer.mergeAll(\n DatabaseReader.layer(schema, ctx.db),\n DatabaseWriter.layer(schema, ctx.db),\n ExecutionMetadata.layer(ctx.meta),\n RequestMetadata.layer(ctx.meta),\n TransactionMetadata.layer(ctx.meta),\n Auth.layerForTarget<Schema[\"target\"]>(schema.target, ctx.auth),\n Auth.mutationLayer(ctx.auth),\n Scheduler.layer<DatabaseSchema.Scope<Schema>>(\n ctx.scheduler,\n schema.target.scope,\n ),\n RegisteredFunction.storageLayer<DatabaseSchema.Scope<Schema>>(ctx.storage),\n StorageWriter.layer<DatabaseSchema.Scope<Schema>>(\n ctx.storage,\n schema.target.scope,\n ),\n QueryRunner.layer(ctx.runQuery),\n MutationRunner.layer(ctx.runMutation),\n QueryTransactionContext.layer(ctx),\n MutationTransactionContext.layer(ctx),\n MutationCtx.layer<\n DataModel.ToConvex<DataModel.FromSchema<Schema>>,\n DatabaseSchema.Scope<Schema>\n >(ctx, schema.target.scope),\n ConvexConfigProvider.layer,\n );\n\nexport type MutationServices<Schema extends DatabaseSchema.AnyWithProps> =\n Handler.MutationServices<Schema>;\n\nconst mutationFunction = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Args,\n ConvexArgs extends DefaultFunctionArgs,\n Returns,\n ConvexReturns,\n E,\n>({\n databaseSchema,\n name,\n functionVisibility,\n args,\n returns,\n error,\n handler,\n resolvedMiddlewares,\n}: {\n databaseSchema: DatabaseSchema_;\n name: string;\n functionVisibility: FunctionVisibility;\n args: Schema.Codec<Args, ConvexArgs>;\n returns: Schema.Codec<Returns, ConvexReturns>;\n error: Schema.Codec<Error, Value> | undefined;\n handler: (\n a: Args,\n ) => Effect.Effect<Returns, E, MutationServices<DatabaseSchema_>>;\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;\n}) => ({\n args: compileArgsSchema(args, databaseSchema.target.scope),\n returns: compileReturnsSchema(returns, databaseSchema.target.scope),\n handler: (\n ctx: GenericMutationCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n actualArgs: ConvexArgs,\n ): Promise<ConvexReturns> =>\n Effect.gen(function* () {\n const decodedArgs = yield* pipe(\n actualArgs,\n Schema.decodeUnknownEffect(args),\n Effect.catchTag(\"SchemaError\", Effect.die),\n );\n // oxlint-disable-next-line effecttsgo/any-unknown-in-error-context -- Middleware errors are intentionally erased here and validated by runHandlerPromise against the combined error schema below.\n const decodedReturns = yield* RegisteredFunction.applyMiddleware(\n handler(decodedArgs),\n resolvedMiddlewares,\n {\n name,\n functionType: \"mutation\",\n functionVisibility,\n args: decodedArgs,\n },\n ).pipe(Effect.provide(mutationLayer(databaseSchema, ctx)));\n return yield* pipe(\n decodedReturns,\n Schema.encodeEffect(returns),\n Effect.catchTag(\"SchemaError\", Effect.die),\n );\n }).pipe(\n RegisteredFunction.runHandlerPromise(\n RegisteredFunction.combineErrorSchemas(error, resolvedMiddlewares),\n {\n scheduler: new EffectScheduler.MixedScheduler(\"sync\"),\n },\n ),\n ),\n});\n\nconst convexActionFunction = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Args,\n ConvexArgs extends DefaultFunctionArgs,\n Returns,\n ConvexReturns,\n E,\n>(\n schema: DatabaseSchema_,\n {\n name,\n functionVisibility,\n args,\n returns,\n error,\n handler,\n resolvedMiddlewares,\n }: {\n name: string;\n functionVisibility: FunctionVisibility;\n args: Schema.Codec<Args, ConvexArgs>;\n returns: Schema.Codec<Returns, ConvexReturns>;\n error: Schema.Codec<any, any> | undefined;\n handler: (\n a: Args,\n ) => Effect.Effect<\n Returns,\n E,\n RegisteredFunction.ActionServices<DatabaseSchema_>\n >;\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;\n },\n) =>\n RegisteredFunction.actionFunctionBase({\n scope: schema.target.scope,\n name,\n functionVisibility,\n args,\n returns,\n error,\n handler,\n resolvedMiddlewares,\n createLayer: (ctx) =>\n Layer.mergeAll(\n RegisteredFunction.actionLayer(schema, ctx),\n ConvexConfigProvider.layer,\n ),\n });\n"],"mappings":"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"}
1
+ {"version":3,"file":"RegisteredConvexFunction.js","names":["RegisteredFunction.applyMiddleware","DatabaseReader.layer","ExecutionMetadata.layer","TransactionMetadata.layer","QueryTransactionContext.layer","Auth.layerForTarget","RegisteredFunction.storageLayer","QueryRunner.layer","QueryCtx.layer","ConvexConfigProvider.layer","RegisteredFunction.runHandlerPromise","RegisteredFunction.combineErrorSchemas","DatabaseWriter.layer","RequestMetadata.layer","Auth.mutationLayer","Scheduler.layer","MutationRunner.layer","MutationTransactionContext.layer","MutationCtx.layer","RegisteredFunction.actionFunctionBase","RegisteredFunction.actionLayer"],"sources":["../src/RegisteredConvexFunction.ts"],"sourcesContent":["import {\n compileArgsSchema,\n compileReturnsSchema,\n} from \"@confect/core/SchemaToValidator\";\nimport {\n actionGeneric,\n type DefaultFunctionArgs,\n type FunctionVisibility,\n type GenericMutationCtx,\n type GenericQueryCtx,\n internalActionGeneric,\n internalMutationGeneric,\n internalQueryGeneric,\n mutationGeneric,\n queryGeneric,\n} from \"convex/server\";\nimport type { Value } from \"convex/values\";\nimport { pipe } from \"effect/Function\";\nimport * as Clock from \"effect/Clock\";\nimport * as Data from \"effect/Data\";\nimport * as Duration from \"effect/Duration\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Schema from \"effect/Schema\";\nimport * as EffectScheduler from \"effect/Scheduler\";\nimport * as Auth from \"./Auth.js\";\nimport * as ConvexConfigProvider from \"./ConvexConfigProvider.js\";\nimport * as DatabaseReader from \"./DatabaseReader.js\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport * as DatabaseWriter from \"./DatabaseWriter.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport * as ExecutionMetadata from \"./ExecutionMetadata.js\";\nimport * as RequestMetadata from \"./RequestMetadata.js\";\nimport * as TransactionMetadata from \"./TransactionMetadata.js\";\nimport * as MutationCtx from \"./MutationCtx.js\";\nimport * as MutationRunner from \"./MutationRunner.js\";\nimport * as MutationTransactionContext from \"./MutationTransactionContext.js\";\nimport * as QueryCtx from \"./QueryCtx.js\";\nimport * as QueryRunner from \"./QueryRunner.js\";\nimport * as QueryTransactionContext from \"./QueryTransactionContext.js\";\nimport * as RegisteredFunction from \"./RegisteredFunction.js\";\nimport type * as FunctionRegistryItem from \"./FunctionRegistryItem.js\";\nimport type * as ResolvedMiddleware from \"./ResolvedMiddleware.js\";\nimport * as Scheduler from \"./Scheduler.js\";\nimport { StorageWriter } from \"./StorageWriter.js\";\nimport type * as Handler from \"./Handler.js\";\n\nexport type Definition = Data.TaggedEnum<{\n PublicQuery: ReturnType<typeof queryFunction>;\n InternalQuery: ReturnType<typeof queryFunction>;\n PublicMutation: ReturnType<typeof mutationFunction>;\n InternalMutation: ReturnType<typeof mutationFunction>;\n PublicAction: ReturnType<typeof convexActionFunction>;\n InternalAction: ReturnType<typeof convexActionFunction>;\n Registered: { readonly handler: RegisteredFunction.Any };\n}>;\nexport const Definition = Data.taggedEnum<Definition>();\n\nexport const prepare = (\n databaseSchema: DatabaseSchema.AnyWithProps,\n item: FunctionRegistryItem.ConfectFunctionRegistryItem,\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware> = [],\n observability?: Layer.Layer<never>,\n) =>\n Match.value(item.functionType).pipe(\n Match.when(\"query\", () => {\n const definition = queryFunction({\n databaseSchema,\n name: item.name,\n observability,\n functionVisibility: item.functionVisibility,\n args: item.args,\n returns: item.returns,\n error: item.error,\n handler: item.handler,\n resolvedMiddlewares,\n });\n return Match.value(item.functionVisibility).pipe(\n Match.when(\"public\", () => Definition.PublicQuery(definition)),\n Match.when(\"internal\", () => Definition.InternalQuery(definition)),\n Match.exhaustive,\n );\n }),\n Match.when(\"mutation\", () => {\n const definition = mutationFunction({\n databaseSchema,\n name: item.name,\n observability,\n functionVisibility: item.functionVisibility,\n args: item.args,\n returns: item.returns,\n error: item.error,\n handler: item.handler,\n resolvedMiddlewares,\n });\n return Match.value(item.functionVisibility).pipe(\n Match.when(\"public\", () => Definition.PublicMutation(definition)),\n Match.when(\"internal\", () => Definition.InternalMutation(definition)),\n Match.exhaustive,\n );\n }),\n Match.when(\"action\", () => {\n const definition = convexActionFunction(databaseSchema, {\n name: item.name,\n observability,\n functionVisibility: item.functionVisibility,\n args: item.args,\n returns: item.returns,\n error: item.error,\n handler: item.handler,\n resolvedMiddlewares,\n });\n return Match.value(item.functionVisibility).pipe(\n Match.when(\"public\", () => Definition.PublicAction(definition)),\n Match.when(\"internal\", () => Definition.InternalAction(definition)),\n Match.exhaustive,\n );\n }),\n Match.exhaustive,\n );\n\nexport const make = (\n databaseSchema: DatabaseSchema.AnyWithProps,\n item: FunctionRegistryItem.ConfectFunctionRegistryItem,\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware> = [],\n): RegisteredFunction.Any =>\n register(prepare(databaseSchema, item, resolvedMiddlewares));\n\nexport const register = (self: Definition): RegisteredFunction.Any =>\n Definition.$match(self, {\n PublicQuery: (definition) => queryGeneric(definition),\n InternalQuery: (definition) => internalQueryGeneric(definition),\n PublicMutation: (definition) => mutationGeneric(definition),\n InternalMutation: (definition) => internalMutationGeneric(definition),\n PublicAction: (definition) => actionGeneric(definition),\n InternalAction: (definition) => internalActionGeneric(definition),\n Registered: ({ handler }) => handler,\n });\n\n/**\n * Convex evicts a query from its cache once the execution observes the current\n * time (every `Date.now()` read is tracked). Effect's logging, span, and\n * elapsed-time machinery reads timestamps through the ambient `Clock`'s unsafe\n * accessors, which would silently opt any logging or timing query out of the\n * cache—and there is no untracked time source in the isolate to serve them\n * from, since Effect's own live clock falls back to `Date.now()` for monotonic\n * time when neither `process.hrtime` nor `performance.now` exists. Queries\n * therefore run with a `Clock` whose unsafe accessors all return constants, so\n * logging and spans never touch the tracker and `Effect.timed` and duration\n * metrics report a zero elapsed time, while the effectful accessors\n * (`Clock.currentTimeMillis`/`currentTimeNanos`/`monotonicTimeNanos`) read the\n * real time, making them an explicit opt-in to cache eviction. Raw `Date.now()`\n * calls in handler code likewise opt out honestly.\n */\nconst queryClock: Clock.Clock = {\n currentTimeMillisUnsafe: () => 0,\n currentTimeNanosUnsafe: () => 0n,\n monotonicTimeNanosUnsafe: () => 0n,\n // oxlint-disable-next-line effecttsgo/global-date-in-effect -- This access intentionally notifies Convex's query-cache tracker.\n currentTimeMillis: Effect.sync(() => Date.now()),\n // oxlint-disable-next-line effecttsgo/global-date-in-effect -- This access intentionally notifies Convex's query-cache tracker.\n currentTimeNanos: Effect.sync(() => BigInt(Date.now()) * 1_000_000n),\n // oxlint-disable-next-line effecttsgo/global-date-in-effect -- This access intentionally notifies Convex's query-cache tracker.\n monotonicTimeNanos: Effect.sync(() => BigInt(Date.now()) * 1_000_000n),\n // `Effect.sleep` resolves the ambient clock, so it cannot be used here—it\n // would recurse straight back into this `sleep`.\n sleep: (duration) =>\n Effect.callback<void>((resume) => {\n // oxlint-disable-next-line effecttsgo/global-timers-in-effect -- Effect.sleep would resolve this Clock and recurse.\n const handle = setTimeout(\n () => resume(Effect.void),\n Duration.toMillis(duration),\n );\n return Effect.sync(() => clearTimeout(handle));\n }),\n};\n\nconst queryFunction = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Args,\n ConvexArgs extends DefaultFunctionArgs,\n Returns,\n ConvexReturns,\n E,\n>({\n databaseSchema,\n name,\n functionVisibility,\n args,\n returns,\n error,\n handler,\n resolvedMiddlewares,\n observability,\n}: {\n databaseSchema: DatabaseSchema_;\n name: string;\n functionVisibility: FunctionVisibility;\n args: Schema.Codec<Args, ConvexArgs>;\n returns: Schema.Codec<Returns, ConvexReturns>;\n error: Schema.Codec<Error, Value> | undefined;\n handler: (\n a: Args,\n ) => Effect.Effect<Returns, E, Handler.QueryServices<DatabaseSchema_>>;\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;\n observability?: Layer.Layer<never> | undefined;\n}) => ({\n args: compileArgsSchema(args, databaseSchema.target.scope),\n returns: compileReturnsSchema(returns, databaseSchema.target.scope),\n handler: (\n ctx: GenericQueryCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n actualArgs: ConvexArgs,\n ): Promise<ConvexReturns> =>\n Effect.gen(function* () {\n const decodedArgs = yield* pipe(\n actualArgs,\n Schema.decodeUnknownEffect(args),\n Effect.catchTag(\"SchemaError\", Effect.die),\n );\n // oxlint-disable-next-line effecttsgo/any-unknown-in-error-context -- Middleware errors are intentionally erased here and validated by runHandlerPromise against the combined error schema below.\n const decodedReturns = yield* RegisteredFunction.applyMiddleware(\n handler(decodedArgs),\n resolvedMiddlewares,\n {\n name,\n functionType: \"query\",\n functionVisibility,\n args: decodedArgs,\n },\n ).pipe(\n Effect.provide(\n Layer.mergeAll(\n DatabaseReader.layer(databaseSchema, ctx.db),\n ExecutionMetadata.layer(ctx.meta),\n TransactionMetadata.layer(ctx.meta),\n QueryTransactionContext.layer(ctx),\n Auth.layerForTarget<DatabaseSchema_[\"target\"]>(\n databaseSchema.target,\n ctx.auth,\n ),\n RegisteredFunction.storageLayer<\n DatabaseSchema.Scope<DatabaseSchema_>\n >(ctx.storage),\n QueryRunner.layer(ctx.runQuery),\n QueryCtx.layer<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >(ctx, databaseSchema.target.scope),\n ConvexConfigProvider.layer,\n ),\n ),\n );\n return yield* pipe(\n decodedReturns,\n Schema.encodeEffect(returns),\n Effect.catchTag(\"SchemaError\", Effect.die),\n );\n }).pipe(\n Effect.provideService(Clock.Clock, queryClock),\n RegisteredFunction.runHandlerPromise(\n RegisteredFunction.combineErrorSchemas(error, resolvedMiddlewares),\n {\n scheduler: new EffectScheduler.MixedScheduler(\"sync\"),\n invocation: Effect.promise(() => ctx.meta.getFunctionMetadata()),\n clock: observability === undefined ? undefined : queryClock,\n observability,\n },\n ),\n ),\n});\n\nexport const mutationLayer = <Schema extends DatabaseSchema.AnyWithProps>(\n schema: Schema,\n ctx: GenericMutationCtx<DataModel.ToConvex<DataModel.FromSchema<Schema>>>,\n) =>\n Layer.mergeAll(\n DatabaseReader.layer(schema, ctx.db),\n DatabaseWriter.layer(schema, ctx.db),\n ExecutionMetadata.layer(ctx.meta),\n RequestMetadata.layer(ctx.meta),\n TransactionMetadata.layer(ctx.meta),\n Auth.layerForTarget<Schema[\"target\"]>(schema.target, ctx.auth),\n Auth.mutationLayer(ctx.auth),\n Scheduler.layer<DatabaseSchema.Scope<Schema>>(\n ctx.scheduler,\n schema.target.scope,\n ),\n RegisteredFunction.storageLayer<DatabaseSchema.Scope<Schema>>(ctx.storage),\n StorageWriter.layer<DatabaseSchema.Scope<Schema>>(\n ctx.storage,\n schema.target.scope,\n ),\n QueryRunner.layer(ctx.runQuery),\n MutationRunner.layer(ctx.runMutation),\n QueryTransactionContext.layer(ctx),\n MutationTransactionContext.layer(ctx),\n MutationCtx.layer<\n DataModel.ToConvex<DataModel.FromSchema<Schema>>,\n DatabaseSchema.Scope<Schema>\n >(ctx, schema.target.scope),\n ConvexConfigProvider.layer,\n );\n\nexport type MutationServices<Schema extends DatabaseSchema.AnyWithProps> =\n Handler.MutationServices<Schema>;\n\nconst mutationFunction = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Args,\n ConvexArgs extends DefaultFunctionArgs,\n Returns,\n ConvexReturns,\n E,\n>({\n databaseSchema,\n name,\n functionVisibility,\n args,\n returns,\n error,\n handler,\n resolvedMiddlewares,\n observability,\n}: {\n databaseSchema: DatabaseSchema_;\n name: string;\n functionVisibility: FunctionVisibility;\n args: Schema.Codec<Args, ConvexArgs>;\n returns: Schema.Codec<Returns, ConvexReturns>;\n error: Schema.Codec<Error, Value> | undefined;\n handler: (\n a: Args,\n ) => Effect.Effect<Returns, E, MutationServices<DatabaseSchema_>>;\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;\n observability?: Layer.Layer<never> | undefined;\n}) => ({\n args: compileArgsSchema(args, databaseSchema.target.scope),\n returns: compileReturnsSchema(returns, databaseSchema.target.scope),\n handler: (\n ctx: GenericMutationCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n actualArgs: ConvexArgs,\n ): Promise<ConvexReturns> =>\n Effect.gen(function* () {\n const decodedArgs = yield* pipe(\n actualArgs,\n Schema.decodeUnknownEffect(args),\n Effect.catchTag(\"SchemaError\", Effect.die),\n );\n // oxlint-disable-next-line effecttsgo/any-unknown-in-error-context -- Middleware errors are intentionally erased here and validated by runHandlerPromise against the combined error schema below.\n const decodedReturns = yield* RegisteredFunction.applyMiddleware(\n handler(decodedArgs),\n resolvedMiddlewares,\n {\n name,\n functionType: \"mutation\",\n functionVisibility,\n args: decodedArgs,\n },\n ).pipe(Effect.provide(mutationLayer(databaseSchema, ctx)));\n return yield* pipe(\n decodedReturns,\n Schema.encodeEffect(returns),\n Effect.catchTag(\"SchemaError\", Effect.die),\n );\n }).pipe(\n RegisteredFunction.runHandlerPromise(\n RegisteredFunction.combineErrorSchemas(error, resolvedMiddlewares),\n {\n scheduler: new EffectScheduler.MixedScheduler(\"sync\"),\n invocation: Effect.promise(() => ctx.meta.getFunctionMetadata()),\n observability,\n },\n ),\n ),\n});\n\nconst convexActionFunction = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Args,\n ConvexArgs extends DefaultFunctionArgs,\n Returns,\n ConvexReturns,\n E,\n>(\n schema: DatabaseSchema_,\n {\n name,\n functionVisibility,\n args,\n returns,\n error,\n handler,\n resolvedMiddlewares,\n observability,\n }: {\n name: string;\n functionVisibility: FunctionVisibility;\n args: Schema.Codec<Args, ConvexArgs>;\n returns: Schema.Codec<Returns, ConvexReturns>;\n error: Schema.Codec<any, any> | undefined;\n handler: (\n a: Args,\n ) => Effect.Effect<\n Returns,\n E,\n RegisteredFunction.ActionServices<DatabaseSchema_>\n >;\n resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;\n observability?: Layer.Layer<never> | undefined;\n },\n) =>\n RegisteredFunction.actionFunctionBase({\n scope: schema.target.scope,\n name,\n functionVisibility,\n args,\n returns,\n error,\n handler,\n resolvedMiddlewares,\n observability,\n createLayer: (ctx) =>\n Layer.mergeAll(\n RegisteredFunction.actionLayer(schema, ctx),\n ConvexConfigProvider.layer,\n ),\n });\n"],"mappings":"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"}
@@ -2,8 +2,10 @@ import type { FunctionSpec, RuntimeAndFunctionType } from "@confect/core";
2
2
  import * as IdScope from "@confect/core/IdScope";
3
3
  import type * as FunctionProvenance from "@confect/core/FunctionProvenance";
4
4
  import * as MiddlewareSpec from "@confect/core/MiddlewareSpec";
5
- import { type DefaultFunctionArgs, type FunctionVisibility, type GenericActionCtx, type GenericDataModel, type StorageReader as ConvexStorageReader, type RegisteredAction, type RegisteredMutation, type RegisteredQuery } from "convex/server";
5
+ import { type DefaultFunctionArgs, type FunctionVisibility, type FunctionMetadata, type GenericActionCtx, type GenericDataModel, type StorageReader as ConvexStorageReader, type RegisteredAction, type RegisteredMutation, type RegisteredQuery } from "convex/server";
6
6
  import type { Value } from "convex/values";
7
+ import * as Clock from "effect/Clock";
8
+ import * as Context from "effect/Context";
7
9
  import * as Effect from "effect/Effect";
8
10
  import * as Layer from "effect/Layer";
9
11
  import * as Schema from "effect/Schema";
@@ -24,6 +26,7 @@ import type * as StorageReader from "./StorageReader.js";
24
26
  import * as StorageWriter from "./StorageWriter.js";
25
27
  import * as VectorSearch from "./VectorSearch.js";
26
28
  import type * as Handler from "./Handler.js";
29
+ export declare const Observability: Context.Reference<Layer.Layer<never, never, never> | undefined>;
27
30
  export type Any = RegisteredQuery<FunctionVisibility, DefaultFunctionArgs, any> | RegisteredMutation<FunctionVisibility, DefaultFunctionArgs, any> | RegisteredAction<FunctionVisibility, DefaultFunctionArgs, any>;
28
31
  type ConfectRegisteredFunction<FunctionSpec_ extends FunctionSpec.AnyWithProps> = FunctionSpec.EncodedArgs<FunctionSpec_> extends infer Args_ extends DefaultFunctionArgs ? RuntimeAndFunctionType.GetFunctionType<FunctionSpec_["runtimeAndFunctionType"]> extends "query" ? RegisteredQuery<FunctionSpec.GetFunctionVisibility<FunctionSpec_>, Args_, Promise<FunctionSpec.EncodedReturns<FunctionSpec_>>> : RuntimeAndFunctionType.GetFunctionType<FunctionSpec_["runtimeAndFunctionType"]> extends "mutation" ? RegisteredMutation<FunctionSpec.GetFunctionVisibility<FunctionSpec_>, Args_, Promise<FunctionSpec.EncodedReturns<FunctionSpec_>>> : RuntimeAndFunctionType.GetFunctionType<FunctionSpec_["runtimeAndFunctionType"]> extends "action" ? RegisteredAction<FunctionSpec.GetFunctionVisibility<FunctionSpec_>, Args_, Promise<FunctionSpec.EncodedReturns<FunctionSpec_>>> : never : never;
29
32
  export type ConvexRegisteredFunction<FunctionSpec_ extends FunctionSpec.AnyWithProps> = FunctionSpec_ extends FunctionSpec.AnyWithProps ? FunctionSpec.GetFunctionProvenance<FunctionSpec_> extends FunctionProvenance.Convex<infer Args_ extends DefaultFunctionArgs, infer Returns_> ? RuntimeAndFunctionType.GetFunctionType<FunctionSpec_["runtimeAndFunctionType"]> extends "query" ? RegisteredQuery<FunctionSpec.GetFunctionVisibility<FunctionSpec_>, Args_, Returns_> : RuntimeAndFunctionType.GetFunctionType<FunctionSpec_["runtimeAndFunctionType"]> extends "mutation" ? RegisteredMutation<FunctionSpec.GetFunctionVisibility<FunctionSpec_>, Args_, Returns_> : RuntimeAndFunctionType.GetFunctionType<FunctionSpec_["runtimeAndFunctionType"]> extends "action" ? RegisteredAction<FunctionSpec.GetFunctionVisibility<FunctionSpec_>, Args_, Returns_> : never : never : never;
@@ -46,36 +49,36 @@ export declare const applyMiddleware: <A, E, R>(effect: Effect.Effect<A, E, R>,
46
49
  */
47
50
  export declare const combineErrorSchemas: (error: Schema.Codec<any, any> | undefined, resolvedMiddlewares: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>) => Schema.Codec<any, any> | undefined;
48
51
  /**
49
- * Run the `Effect` as a `Promise`. The error schema acts as an allowlist of
50
- * failures that may be surfaced to the client as a `ConvexError`:
52
+ * Run the `Effect` as a `Promise`. Inspect the complete `Exit` before encoding
53
+ * a declared error so a typed failure cannot hide a defect.
51
54
  *
52
- * - With a schema: typed errors are schema-encoded and wrapped in a
53
- * `ConvexError`, then thrown so Convex surfaces the data to the client.
54
- * `Effect.either` escapes the failure channel before `runPromise` so the
55
- * thrown `ConvexError` retains its `Symbol.for("ConvexError")` identity
56
- * instead of being wrapped in Effect's `FiberFailure`.
57
- * - Without a schema: every failure is converted to a defect via `Effect.orDie`,
58
- * so nothing—not even a `ConvexError` the handler placed in its error
59
- * channel—reaches the client as a `ConvexError`. The fiber dies and
60
- * `runPromise` rejects with a generic failure.
55
+ * Any `Die` reason takes the defect path. Without a `Die`, the first `Fail` in
56
+ * cause order is schema-encoded and thrown as a `ConvexError` outside the
57
+ * Effect runtime so Convex surfaces its data to the client. Other failures and
58
+ * interruptions alongside that `Fail` are ignored. Without an error schema, the
59
+ * selected failure is treated as a defect.
61
60
  *
62
- * Either way, a `ConvexError` _defect_—thrown imperatively rather than placed
63
- * in the error channel, e.g. the pagination protocol's `InvalidCursor` signal
64
- * from `QueryStream.paginate`—is rethrown bare so it retains its identity and
65
- * Convex serializes its `data` to the client, matching how a thrown
66
- * `ConvexError` behaves in a plain Convex handler.
61
+ * A lone `ConvexError` defect or a selected undeclared `ConvexError` failure is
62
+ * rethrown bare so it keeps Convex's meaning. Pagination and Workpool rely on
63
+ * its data for their control signals. Other causes with a `Die`, interrupt-only
64
+ * or empty causes, and error-encoding failures reject with a plain `Error`
65
+ * whose message renders the complete cause and whose `cause` holds it for
66
+ * server diagnostics.
67
67
  *
68
68
  * A `scheduler` in `runOptions` must be passed here as a run option rather than
69
69
  * provided via `Effect.provideService` inside `effect`: the run option lands in
70
70
  * the fiber's root context, while a service provided within `effect` pops
71
- * before the `orDie`/`catch`/`result` wrappers this function adds. The fiber's
72
- * op counter survives context pops, so a cooperative yield can fire inside
73
- * those wrappers—only a root-context scheduler covers them.
71
+ * before the exit/encoding wrappers this function adds. The fiber's op counter
72
+ * survives context pops, so a cooperative yield can fire inside those wrappers.
73
+ * Only a root-context scheduler covers them.
74
74
  */
75
75
  export declare const runHandlerPromise: (errorSchema: Schema.Codec<any, any> | undefined, runOptions?: {
76
76
  readonly scheduler?: EffectScheduler.Scheduler | undefined;
77
+ readonly clock?: Clock.Clock | undefined;
78
+ readonly invocation?: Effect.Effect<FunctionMetadata> | undefined;
79
+ readonly observability?: Layer.Layer<never> | undefined;
77
80
  }) => <A, E>(effect: Effect.Effect<A, E>) => Promise<A>;
78
- export declare const actionFunctionBase: <Schema extends DatabaseSchema.AnyWithProps, Args, ConvexArgs extends DefaultFunctionArgs, Returns, ConvexReturns, E, R>({ name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, createLayer, scope, }: {
81
+ export declare const actionFunctionBase: <Schema extends DatabaseSchema.AnyWithProps, Args, ConvexArgs extends DefaultFunctionArgs, Returns, ConvexReturns, E, R>({ name, functionVisibility, args, returns, error, handler, resolvedMiddlewares, createLayer, scope, observability, }: {
79
82
  name: string;
80
83
  functionVisibility: FunctionVisibility;
81
84
  args: Schema.Codec<Args, ConvexArgs>;
@@ -85,6 +88,7 @@ export declare const actionFunctionBase: <Schema extends DatabaseSchema.AnyWithP
85
88
  resolvedMiddlewares?: ReadonlyArray<ResolvedMiddleware.ResolvedMiddleware>;
86
89
  createLayer: (ctx: GenericActionCtx<DataModel.ToConvex<DataModel.FromSchema<Schema>>>) => Layer.Layer<R>;
87
90
  scope?: IdScope.IdScope;
91
+ observability?: Layer.Layer<never> | undefined;
88
92
  }) => {
89
93
  args: import("convex/values").PropertyValidators;
90
94
  returns: import("convex/values").Validator<any, any, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"RegisteredFunction.d.ts","sourceRoot":"","sources":["../src/RegisteredFunction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RegisteredFunction.d.ts","sourceRoot":"","sources":["../src/RegisteredFunction.ts"],"names":[],"mappings":"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"}