@gaganref/confect-core 10.3.1-fork.56 → 10.3.1-fork.58
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.
- package/dist/Callback.d.ts.map +1 -1
- package/dist/Callback.js +2 -1
- package/dist/Callback.js.map +1 -1
- package/dist/FunctionSpec.d.ts +2 -2
- package/dist/FunctionSpec.d.ts.map +1 -1
- package/dist/FunctionSpec.js.map +1 -1
- package/dist/ManifestSection.d.ts +17 -3
- package/dist/ManifestSection.d.ts.map +1 -1
- package/dist/ManifestSection.js.map +1 -1
- package/dist/Ref.d.ts +0 -1
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +3 -13
- package/dist/Ref.js.map +1 -1
- package/dist/RefInternal.d.ts +3 -0
- package/dist/RefInternal.d.ts.map +1 -0
- package/dist/RefInternal.js +16 -0
- package/dist/RefInternal.js.map +1 -0
- package/package.json +1 -1
- package/src/Callback.ts +2 -1
- package/src/FunctionSpec.ts +3 -7
- package/src/ManifestSection.ts +18 -3
- package/src/Ref.ts +2 -22
- package/src/RefInternal.ts +26 -0
package/dist/Callback.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Callback.d.ts","sourceRoot":"","sources":["../src/Callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EACxB,YAAY,EACb,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Callback.d.ts","sourceRoot":"","sources":["../src/Callback.ts"],"names":[],"mappings":"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"}
|
package/dist/Callback.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { Confect } from "./FunctionProvenance.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getFunctionReference } from "./RefInternal.js";
|
|
4
|
+
import { fromProvenance, isRef } from "./Ref.js";
|
|
4
5
|
import * as Schema from "effect/Schema";
|
|
5
6
|
import * as Predicate from "effect/Predicate";
|
|
6
7
|
import * as SchemaGetter from "effect/SchemaGetter";
|
package/dist/Callback.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Callback.js","names":["FunctionProvenance.Confect","Ref.isRef","Ref.fromProvenance","Ref.getFunctionReference"],"sources":["../src/Callback.ts"],"sourcesContent":["import type {\n FunctionReference,\n FunctionReference_future,\n FunctionType,\n} from \"convex/server\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Schema from \"effect/Schema\";\nimport * as SchemaGetter from \"effect/SchemaGetter\";\nimport * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport * as Ref from \"./Ref.js\";\nimport type * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType.js\";\n\nexport const TypeId = \"~@confect/core/Callback\";\nexport type TypeId = typeof TypeId;\n\nconst HandleTypeId = \"~@confect/core/Callback/Handle\";\n\n/**\n * A contract's id, `\"<component>/<event>\"`.\n */\nexport type Id = `${string}/${string}`;\n\n/**\n * A function a component calls back into its host, declared by the component:\n * the args it sends and the returns and errors it accepts. A host proves that\n * one of its functions satisfies the contract when it creates a handle.\n */\nexport interface Contract<\n Id_ extends Id,\n FunctionType_ extends FunctionType,\n ArgsFields_ extends FunctionProvenance.ArgsFields,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n> {\n readonly [TypeId]: TypeId;\n readonly id: Id_;\n readonly functionType: FunctionType_;\n readonly functionProvenance: FunctionProvenance.Confect<\n ArgsFields_,\n Returns_,\n Error_,\n FunctionProvenance.Standard\n >;\n}\n\nexport interface Any {\n readonly [TypeId]: TypeId;\n readonly id: Id;\n readonly functionType: FunctionType;\n readonly functionProvenance: FunctionProvenance.AnyConfect;\n}\n\nexport const isContract = (u: unknown): u is Any =>\n Predicate.hasProperty(u, TypeId) && u[TypeId] === TypeId;\n\ntype ArgsFields<Contract_ extends Any> =\n Contract_[\"functionProvenance\"] extends {\n readonly \"~ArgsFields\": infer ArgsFields_ extends\n FunctionProvenance.ArgsFields;\n }\n ? ArgsFields_\n : never;\n\ntype ReturnsSchema<Contract_ extends Any> =\n Contract_[\"functionProvenance\"][\"returns\"];\n\ntype ErrorSchema<Contract_ extends Any> =\n Contract_[\"functionProvenance\"] extends {\n readonly error?: infer ErrorSchema_;\n }\n ? Extract<ErrorSchema_, Schema.Codec<any, any>>\n : never;\n\nexport type Args<Contract_ extends Any> = Schema.Struct.Type<\n ArgsFields<Contract_>\n>;\n\nexport type Returns<Contract_ extends Any> = ReturnsSchema<Contract_>[\"Type\"];\n\nexport type Error<Contract_ extends Any> = ErrorSchema<Contract_>[\"Type\"];\n\n/**\n * A host function a component received for a contract. It is a ref, so the\n * runners and the scheduler run it with the contract's codecs, and declared\n * errors arrive by tag.\n */\nexport type Handle<Contract_ extends Any> = Ref.ConfectRef<\n Extract<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n {\n readonly runtime: \"Convex\";\n readonly functionType: Contract_[\"functionType\"];\n }\n >,\n \"internal\",\n ArgsFields<Contract_>,\n ReturnsSchema<Contract_>,\n ErrorSchema<Contract_>\n> & { readonly [HandleTypeId]: Contract_[\"id\"] };\n\nconst make =\n <FunctionType_ extends FunctionType>(functionType: FunctionType_) =>\n <\n const Id_ extends Id,\n const ArgsFields_ extends FunctionProvenance.ArgsFields = {},\n Returns_ extends Schema.Codec<any, any> = never,\n Error_ extends Schema.Codec<any, any> = never,\n >(\n id: Id_,\n options: {\n readonly args?: () => ArgsFields_;\n readonly returns: () => Returns_;\n readonly error?: () => Error_;\n },\n ): Contract<Id_, FunctionType_, ArgsFields_, Returns_, Error_> => ({\n [TypeId]: TypeId,\n id,\n functionType,\n functionProvenance: FunctionProvenance.Confect(\n options.args ?? (() => ({}) as ArgsFields_),\n options.returns,\n options.error,\n ),\n });\n\nexport const query = make(\"query\");\nexport const mutation = make(\"mutation\");\nexport const action = make(\"action\");\n\nconst isHandleOf =\n <Contract_ extends Any>(contract: Contract_) =>\n (value: unknown): value is Handle<Contract_> =>\n Ref.isRef(value) &&\n Predicate.hasProperty(value, HandleTypeId) &&\n value[HandleTypeId] === contract.id;\n\nconst fromText = <Contract_ extends Any>(\n contract: Contract_,\n text: string,\n): Handle<Contract_> =>\n Object.assign(\n Ref.fromProvenance(\n text,\n contract.functionProvenance,\n [],\n // Convex types a handle as a string that is also a function reference.\n text as unknown as FunctionReference<any, any>,\n contract.functionType,\n ),\n { [HandleTypeId]: contract.id },\n ) as unknown as Handle<Contract_>;\n\n/**\n * The schema of a handle for `contract`: a string on the wire, a runnable ref\n * once decoded. Use it in a component's function args or tables.\n */\nexport const handle = <Contract_ extends Any>(\n contract: Contract_,\n): Schema.Codec<Handle<Contract_>, string> =>\n Schema.String.pipe(\n Schema.decodeTo(\n Schema.declare(isHandleOf(contract), {\n identifier: `Callback.Handle<${contract.id}>`,\n }),\n {\n decode: SchemaGetter.transform((text: string) =>\n fromText(contract, text),\n ),\n encode: SchemaGetter.transform(\n (ref: Handle<Contract_>) => ref.convexFunctionName,\n ),\n },\n ),\n );\n\ntype EncodedArgs<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly args: {\n readonly fields: infer ArgsFields_ extends FunctionProvenance.ArgsFields;\n };\n}\n ? Schema.Struct.Encoded<ArgsFields_>\n : Ref.Args<Ref_>;\n\ntype EncodedReturns<Ref_> = Ref_ extends { readonly _tag: \"Confect\" }\n ? Ref.ReturnsSchema<Ref_>[\"Encoded\"]\n : Ref.Returns<Ref_>;\n\ntype IsAny<A> = 0 extends 1 & A ? true : false;\n\n/**\n * A Confect ref typed from values alone, such as a bound component's ref, has\n * no codec types left to compare, and middleware attachments typed without\n * their specs erase their errors. True when any variant of `Ref_` is erased.\n */\ntype IsErased<Ref_> = true extends (\n Ref_ extends { readonly _tag: \"Confect\" }\n ? IsAny<Ref.ReturnsSchema<Ref_>[\"Encoded\"]> | IsAny<Ref.EncodedError<Ref_>>\n : false\n)\n ? true\n : false;\n\n/**\n * The shape a value has on the wire: a component's ID brands become `string`,\n * since the contract cannot name the host's scope, while the host's own IDs\n * keep their table. Arrays and tuples lose `readonly`, and an optional field is\n * the same whether or not it admits `undefined`, which Convex never transmits.\n * `unknown` stays `unknown`.\n */\ntype WireShape<A> = unknown extends A\n ? A\n : A extends { readonly \"~@confect/core/ScopedId\": unknown }\n ? string\n : A extends\n | string\n | number\n | bigint\n | boolean\n | null\n | undefined\n | ArrayBuffer\n ? A\n : { -readonly [Key in keyof A]: WireShape<Exclude<A[Key], undefined>> };\n\ntype Identical<A, B> =\n (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2\n ? true\n : false;\n\ntype FirstOf<Checks extends ReadonlyArray<unknown>> = Checks extends readonly [\n infer Head,\n ...infer Rest,\n]\n ? [Head] extends [never]\n ? FirstOf<Rest>\n : Head\n : never;\n\n/**\n * Every obligation a host ref owes a contract, in the order they are reported.\n * Each is `never` when it holds.\n */\ntype Obligations<Contract_ extends Any, Ref_ extends Ref.Any> = [\n IsErased<Ref_> extends true\n ? `the ref's codecs are erased, so its encoding cannot be checked against \"${Contract_[\"id\"]}\"; pass the host's generated ref`\n : never,\n [Ref.GetFunctionType<Ref_>] extends [Contract_[\"functionType\"]]\n ? never\n : `\"${Contract_[\"id\"]}\" needs a ${Contract_[\"functionType\"]}, not a ${Ref.GetFunctionType<Ref_>}`,\n Identical<\n WireShape<EncodedArgs<Handle<Contract_>>>,\n WireShape<EncodedArgs<Ref_>>\n > extends true\n ? never\n : `the ref's encoded args differ from the args \"${Contract_[\"id\"]}\" sends`,\n Identical<\n WireShape<EncodedReturns<Handle<Contract_>>>,\n WireShape<EncodedReturns<Ref_>>\n > extends true\n ? never\n : `the ref's returns are encoded differently from the returns of \"${Contract_[\"id\"]}\"`,\n [Ref.Error<Ref_>] extends [Error<Contract_>]\n ? never\n : `the ref fails with errors \"${Contract_[\"id\"]}\" does not declare`,\n [WireShape<Ref.EncodedError<Ref_>>] extends [\n WireShape<Ref.EncodedError<Handle<Contract_>>>,\n ]\n ? never\n : `the ref's errors are encoded differently from the errors of \"${Contract_[\"id\"]}\"`,\n];\n\ntype Mismatch<Contract_ extends Any, Ref_ extends Ref.Any> = FirstOf<\n Obligations<Contract_, Ref_>\n>;\n\n/**\n * `unknown` when host ref `Ref_` satisfies `Contract_` as far as its types\n * show, otherwise an object type naming the first mismatch. The check compares\n * the types that cross the wire, with a component's IDs compared as strings.\n * The host's encoded args and returns must equal the contract's, and its\n * encoded errors (middleware errors included) must be ones the contract's\n * codecs decode. A ref whose codecs are erased cannot be checked and is\n * refused. Types miss what only the validators show, such as field names behind\n * a `Record` type, so `Callback.create` in `@confect/server` also compares the\n * compiled validators before it creates a handle.\n */\nexport type Check<Contract_ extends Any, Ref_ extends Ref.Any> = [\n Mismatch<Contract_, Ref_>,\n] extends [never]\n ? unknown\n : { readonly \"~CallbackMismatch\": Mismatch<Contract_, Ref_> };\n\n/**\n * View a ref as Convex's `FunctionReference_future`, typed with its wire args\n * and returns, for `createFunctionHandle` and clients that accept it.\n */\nexport const toFuture = <Ref_ extends Ref.Any>(\n ref: Ref_,\n): FunctionReference_future<\n Ref.GetFunctionType<Ref_>,\n Ref.GetFunctionVisibility<Ref_>,\n EncodedArgs<Ref_>,\n EncodedReturns<Ref_>\n> => Ref.getFunctionReference(ref) as never;\n"],"mappings":";;;;;;;;;;;;;;;;AAYA,MAAa,SAAS;AAGtB,MAAM,eAAe;AAqCrB,MAAa,cAAc,MACzB,UAAU,YAAY,GAAA,yBAAS,KAAK,EAAA,+BAAA;AA+CtC,MAAM,QACiC,kBAOnC,IACA,aAKiE;EAChE,SAAS;CACV;CACA;CACA,oBAAoBA,QAClB,QAAQ,gBAAgB,CAAC,KACzB,QAAQ,SACR,QAAQ,KACV;AACF;AAEF,MAAa,QAAQ,KAAK,OAAO;AACjC,MAAa,WAAW,KAAK,UAAU;AACvC,MAAa,SAAS,KAAK,QAAQ;AAEnC,MAAM,cACoB,cACvB,UACCC,MAAU,KAAK,KACf,UAAU,YAAY,OAAO,YAAY,KACzC,MAAM,kBAAkB,SAAS;AAErC,MAAM,YACJ,UACA,SAEA,OAAO,OACLC,eACE,MACA,SAAS,oBACT,CAAC,GAED,MACA,SAAS,YACX,GACA,GAAG,eAAe,SAAS,GAAG,CAChC;;;;;AAMF,MAAa,UACX,aAEA,OAAO,OAAO,KACZ,OAAO,SACL,OAAO,QAAQ,WAAW,QAAQ,GAAG,EACnC,YAAY,mBAAmB,SAAS,GAAG,GAC7C,CAAC,GACD;CACE,QAAQ,aAAa,WAAW,SAC9B,SAAS,UAAU,IAAI,CACzB;CACA,QAAQ,aAAa,WAClB,QAA2B,IAAI,kBAClC;AACF,CACF,CACF;;;;;AA4HF,MAAa,YACX,QAMGC,qBAAyB,GAAG"}
|
|
1
|
+
{"version":3,"file":"Callback.js","names":["FunctionProvenance.Confect","Ref.isRef","Ref.fromProvenance"],"sources":["../src/Callback.ts"],"sourcesContent":["import type {\n FunctionReference,\n FunctionReference_future,\n FunctionType,\n} from \"convex/server\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Schema from \"effect/Schema\";\nimport * as SchemaGetter from \"effect/SchemaGetter\";\nimport * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport * as Ref from \"./Ref.js\";\nimport { getFunctionReference } from \"./RefInternal.js\";\nimport type * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType.js\";\n\nexport const TypeId = \"~@confect/core/Callback\";\nexport type TypeId = typeof TypeId;\n\nconst HandleTypeId = \"~@confect/core/Callback/Handle\";\n\n/**\n * A contract's id, `\"<component>/<event>\"`.\n */\nexport type Id = `${string}/${string}`;\n\n/**\n * A function a component calls back into its host, declared by the component:\n * the args it sends and the returns and errors it accepts. A host proves that\n * one of its functions satisfies the contract when it creates a handle.\n */\nexport interface Contract<\n Id_ extends Id,\n FunctionType_ extends FunctionType,\n ArgsFields_ extends FunctionProvenance.ArgsFields,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n> {\n readonly [TypeId]: TypeId;\n readonly id: Id_;\n readonly functionType: FunctionType_;\n readonly functionProvenance: FunctionProvenance.Confect<\n ArgsFields_,\n Returns_,\n Error_,\n FunctionProvenance.Standard\n >;\n}\n\nexport interface Any {\n readonly [TypeId]: TypeId;\n readonly id: Id;\n readonly functionType: FunctionType;\n readonly functionProvenance: FunctionProvenance.AnyConfect;\n}\n\nexport const isContract = (u: unknown): u is Any =>\n Predicate.hasProperty(u, TypeId) && u[TypeId] === TypeId;\n\ntype ArgsFields<Contract_ extends Any> =\n Contract_[\"functionProvenance\"] extends {\n readonly \"~ArgsFields\": infer ArgsFields_ extends\n FunctionProvenance.ArgsFields;\n }\n ? ArgsFields_\n : never;\n\ntype ReturnsSchema<Contract_ extends Any> =\n Contract_[\"functionProvenance\"][\"returns\"];\n\ntype ErrorSchema<Contract_ extends Any> =\n Contract_[\"functionProvenance\"] extends {\n readonly error?: infer ErrorSchema_;\n }\n ? Extract<ErrorSchema_, Schema.Codec<any, any>>\n : never;\n\nexport type Args<Contract_ extends Any> = Schema.Struct.Type<\n ArgsFields<Contract_>\n>;\n\nexport type Returns<Contract_ extends Any> = ReturnsSchema<Contract_>[\"Type\"];\n\nexport type Error<Contract_ extends Any> = ErrorSchema<Contract_>[\"Type\"];\n\n/**\n * A host function a component received for a contract. It is a ref, so the\n * runners and the scheduler run it with the contract's codecs, and declared\n * errors arrive by tag.\n */\nexport type Handle<Contract_ extends Any> = Ref.ConfectRef<\n Extract<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n {\n readonly runtime: \"Convex\";\n readonly functionType: Contract_[\"functionType\"];\n }\n >,\n \"internal\",\n ArgsFields<Contract_>,\n ReturnsSchema<Contract_>,\n ErrorSchema<Contract_>\n> & { readonly [HandleTypeId]: Contract_[\"id\"] };\n\nconst make =\n <FunctionType_ extends FunctionType>(functionType: FunctionType_) =>\n <\n const Id_ extends Id,\n const ArgsFields_ extends FunctionProvenance.ArgsFields = {},\n Returns_ extends Schema.Codec<any, any> = never,\n Error_ extends Schema.Codec<any, any> = never,\n >(\n id: Id_,\n options: {\n readonly args?: () => ArgsFields_;\n readonly returns: () => Returns_;\n readonly error?: () => Error_;\n },\n ): Contract<Id_, FunctionType_, ArgsFields_, Returns_, Error_> => ({\n [TypeId]: TypeId,\n id,\n functionType,\n functionProvenance: FunctionProvenance.Confect(\n options.args ?? (() => ({}) as ArgsFields_),\n options.returns,\n options.error,\n ),\n });\n\nexport const query = make(\"query\");\nexport const mutation = make(\"mutation\");\nexport const action = make(\"action\");\n\nconst isHandleOf =\n <Contract_ extends Any>(contract: Contract_) =>\n (value: unknown): value is Handle<Contract_> =>\n Ref.isRef(value) &&\n Predicate.hasProperty(value, HandleTypeId) &&\n value[HandleTypeId] === contract.id;\n\nconst fromText = <Contract_ extends Any>(\n contract: Contract_,\n text: string,\n): Handle<Contract_> =>\n Object.assign(\n Ref.fromProvenance(\n text,\n contract.functionProvenance,\n [],\n // Convex types a handle as a string that is also a function reference.\n text as unknown as FunctionReference<any, any>,\n contract.functionType,\n ),\n { [HandleTypeId]: contract.id },\n ) as unknown as Handle<Contract_>;\n\n/**\n * The schema of a handle for `contract`: a string on the wire, a runnable ref\n * once decoded. Use it in a component's function args or tables.\n */\nexport const handle = <Contract_ extends Any>(\n contract: Contract_,\n): Schema.Codec<Handle<Contract_>, string> =>\n Schema.String.pipe(\n Schema.decodeTo(\n Schema.declare(isHandleOf(contract), {\n identifier: `Callback.Handle<${contract.id}>`,\n }),\n {\n decode: SchemaGetter.transform((text: string) =>\n fromText(contract, text),\n ),\n encode: SchemaGetter.transform(\n (ref: Handle<Contract_>) => ref.convexFunctionName,\n ),\n },\n ),\n );\n\ntype EncodedArgs<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly args: {\n readonly fields: infer ArgsFields_ extends FunctionProvenance.ArgsFields;\n };\n}\n ? Schema.Struct.Encoded<ArgsFields_>\n : Ref.Args<Ref_>;\n\ntype EncodedReturns<Ref_> = Ref_ extends { readonly _tag: \"Confect\" }\n ? Ref.ReturnsSchema<Ref_>[\"Encoded\"]\n : Ref.Returns<Ref_>;\n\ntype IsAny<A> = 0 extends 1 & A ? true : false;\n\n/**\n * A Confect ref typed from values alone, such as a bound component's ref, has\n * no codec types left to compare, and middleware attachments typed without\n * their specs erase their errors. True when any variant of `Ref_` is erased.\n */\ntype IsErased<Ref_> = true extends (\n Ref_ extends { readonly _tag: \"Confect\" }\n ? IsAny<Ref.ReturnsSchema<Ref_>[\"Encoded\"]> | IsAny<Ref.EncodedError<Ref_>>\n : false\n)\n ? true\n : false;\n\n/**\n * The shape a value has on the wire: a component's ID brands become `string`,\n * since the contract cannot name the host's scope, while the host's own IDs\n * keep their table. Arrays and tuples lose `readonly`, and an optional field is\n * the same whether or not it admits `undefined`, which Convex never transmits.\n * `unknown` stays `unknown`.\n */\ntype WireShape<A> = unknown extends A\n ? A\n : A extends { readonly \"~@confect/core/ScopedId\": unknown }\n ? string\n : A extends\n | string\n | number\n | bigint\n | boolean\n | null\n | undefined\n | ArrayBuffer\n ? A\n : { -readonly [Key in keyof A]: WireShape<Exclude<A[Key], undefined>> };\n\ntype Identical<A, B> =\n (<T>() => T extends A ? 1 : 2) extends <T>() => T extends B ? 1 : 2\n ? true\n : false;\n\ntype FirstOf<Checks extends ReadonlyArray<unknown>> = Checks extends readonly [\n infer Head,\n ...infer Rest,\n]\n ? [Head] extends [never]\n ? FirstOf<Rest>\n : Head\n : never;\n\n/**\n * Every obligation a host ref owes a contract, in the order they are reported.\n * Each is `never` when it holds.\n */\ntype Obligations<Contract_ extends Any, Ref_ extends Ref.Any> = [\n IsErased<Ref_> extends true\n ? `the ref's codecs are erased, so its encoding cannot be checked against \"${Contract_[\"id\"]}\"; pass the host's generated ref`\n : never,\n [Ref.GetFunctionType<Ref_>] extends [Contract_[\"functionType\"]]\n ? never\n : `\"${Contract_[\"id\"]}\" needs a ${Contract_[\"functionType\"]}, not a ${Ref.GetFunctionType<Ref_>}`,\n Identical<\n WireShape<EncodedArgs<Handle<Contract_>>>,\n WireShape<EncodedArgs<Ref_>>\n > extends true\n ? never\n : `the ref's encoded args differ from the args \"${Contract_[\"id\"]}\" sends`,\n Identical<\n WireShape<EncodedReturns<Handle<Contract_>>>,\n WireShape<EncodedReturns<Ref_>>\n > extends true\n ? never\n : `the ref's returns are encoded differently from the returns of \"${Contract_[\"id\"]}\"`,\n [Ref.Error<Ref_>] extends [Error<Contract_>]\n ? never\n : `the ref fails with errors \"${Contract_[\"id\"]}\" does not declare`,\n [WireShape<Ref.EncodedError<Ref_>>] extends [\n WireShape<Ref.EncodedError<Handle<Contract_>>>,\n ]\n ? never\n : `the ref's errors are encoded differently from the errors of \"${Contract_[\"id\"]}\"`,\n];\n\ntype Mismatch<Contract_ extends Any, Ref_ extends Ref.Any> = FirstOf<\n Obligations<Contract_, Ref_>\n>;\n\n/**\n * `unknown` when host ref `Ref_` satisfies `Contract_` as far as its types\n * show, otherwise an object type naming the first mismatch. The check compares\n * the types that cross the wire, with a component's IDs compared as strings.\n * The host's encoded args and returns must equal the contract's, and its\n * encoded errors (middleware errors included) must be ones the contract's\n * codecs decode. A ref whose codecs are erased cannot be checked and is\n * refused. Types miss what only the validators show, such as field names behind\n * a `Record` type, so `Callback.create` in `@confect/server` also compares the\n * compiled validators before it creates a handle.\n */\nexport type Check<Contract_ extends Any, Ref_ extends Ref.Any> = [\n Mismatch<Contract_, Ref_>,\n] extends [never]\n ? unknown\n : { readonly \"~CallbackMismatch\": Mismatch<Contract_, Ref_> };\n\n/**\n * View a ref as Convex's `FunctionReference_future`, typed with its wire args\n * and returns, for `createFunctionHandle` and clients that accept it.\n */\nexport const toFuture = <Ref_ extends Ref.Any>(\n ref: Ref_,\n): FunctionReference_future<\n Ref.GetFunctionType<Ref_>,\n Ref.GetFunctionVisibility<Ref_>,\n EncodedArgs<Ref_>,\n EncodedReturns<Ref_>\n> => getFunctionReference(ref) as never;\n"],"mappings":";;;;;;;;;;;;;;;;;AAaA,MAAa,SAAS;AAGtB,MAAM,eAAe;AAqCrB,MAAa,cAAc,MACzB,UAAU,YAAY,GAAA,yBAAS,KAAK,EAAA,+BAAA;AA+CtC,MAAM,QACiC,kBAOnC,IACA,aAKiE;EAChE,SAAS;CACV;CACA;CACA,oBAAoBA,QAClB,QAAQ,gBAAgB,CAAC,KACzB,QAAQ,SACR,QAAQ,KACV;AACF;AAEF,MAAa,QAAQ,KAAK,OAAO;AACjC,MAAa,WAAW,KAAK,UAAU;AACvC,MAAa,SAAS,KAAK,QAAQ;AAEnC,MAAM,cACoB,cACvB,UACCC,MAAU,KAAK,KACf,UAAU,YAAY,OAAO,YAAY,KACzC,MAAM,kBAAkB,SAAS;AAErC,MAAM,YACJ,UACA,SAEA,OAAO,OACLC,eACE,MACA,SAAS,oBACT,CAAC,GAED,MACA,SAAS,YACX,GACA,GAAG,eAAe,SAAS,GAAG,CAChC;;;;;AAMF,MAAa,UACX,aAEA,OAAO,OAAO,KACZ,OAAO,SACL,OAAO,QAAQ,WAAW,QAAQ,GAAG,EACnC,YAAY,mBAAmB,SAAS,GAAG,GAC7C,CAAC,GACD;CACE,QAAQ,aAAa,WAAW,SAC9B,SAAS,UAAU,IAAI,CACzB;CACA,QAAQ,aAAa,WAClB,QAA2B,IAAI,kBAClC;AACF,CACF,CACF;;;;;AA4HF,MAAa,YACX,QAMG,qBAAqB,GAAG"}
|
package/dist/FunctionSpec.d.ts
CHANGED
|
@@ -673,7 +673,7 @@ export type Extended<Fields_ extends Profile.Fields, MiddlewareSpecs_ extends Mi
|
|
|
673
673
|
* Require more fields and attach more middleware after this profile's.
|
|
674
674
|
*/
|
|
675
675
|
extend<Extension extends Profile.Fields = Profile.NoFields, Transforms extends Profile.Transforms = {}>(): <const Middleware_ extends ReadonlyArray<ProfileMiddleware<Profile.Apply<Profile.Both<Fields_, Extension>, string, any>>>>(config: {
|
|
676
|
-
readonly manifest?: Readonly<Record<string, ManifestSection.
|
|
676
|
+
readonly manifest?: Readonly<Record<string, ManifestSection.Any>>;
|
|
677
677
|
readonly reservedArgument?: string;
|
|
678
678
|
readonly middleware: Middleware_ & NotInherited<Middleware_, MiddlewareSpecs_>;
|
|
679
679
|
} & OptionFree<Extension["Type"]> & Profile.SchemaConfig<Transforms, Profile.Apply<Profile.Both<Fields_, Extension>, string, any>>) => Extended<Profile.Both<Fields_, Extension>, MiddlewareSpecs_ | SpecOf<Middleware_[number]>, [
|
|
@@ -685,7 +685,7 @@ export type Extended<Fields_ extends Profile.Fields, MiddlewareSpecs_ extends Mi
|
|
|
685
685
|
* Public builders whose specs require and keep `Fields_`, with `middleware`.
|
|
686
686
|
*/
|
|
687
687
|
export declare const extend: <Fields_ extends Profile.Fields = Profile.NoFields, Transforms extends Profile.Transforms = {}>() => <const Middleware_ extends ReadonlyArray<ProfileMiddleware<Profile.Apply<Fields_, string, any>>>>(config: {
|
|
688
|
-
readonly manifest?: Readonly<Record<string, ManifestSection.
|
|
688
|
+
readonly manifest?: Readonly<Record<string, ManifestSection.Any>>;
|
|
689
689
|
readonly reservedArgument?: string;
|
|
690
690
|
readonly middleware: Middleware_;
|
|
691
691
|
} & OptionFree<Fields_["Type"]> & Profile.SchemaConfig<Transforms, Profile.Apply<Fields_, string, any>>) => Extended<Fields_, SpecOf<Middleware_[number]>, [Transforms]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionSpec.d.ts","sourceRoot":"","sources":["../src/FunctionSpec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FunctionSpec.d.ts","sourceRoot":"","sources":["../src/FunctionSpec.ts"],"names":[],"mappings":"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"}
|
package/dist/FunctionSpec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionSpec.js","names":["FunctionProvenance.Confect","FunctionProvenance.ConfectPaginated","RuntimeAndFunctionType.ConvexQuery","RuntimeAndFunctionType.ConvexMutation","RuntimeAndFunctionType.ConvexAction","RuntimeAndFunctionType.NodeAction","MiddlewareSpec.isMiddlewareSpec","FunctionProvenance.Convex"],"sources":["../src/FunctionSpec.ts"],"sourcesContent":["import type * as ManifestSection from \"./ManifestSection.js\";\nimport type * as MiddlewareAttachment from \"./MiddlewareAttachment.js\";\nimport type {\n DefaultFunctionArgs,\n FunctionType,\n FunctionVisibility,\n RegisteredAction,\n RegisteredMutation,\n RegisteredQuery,\n} from \"convex/server\";\nimport * as Schema from \"effect/Schema\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport { validateConfectFunctionIdentifier } from \"./Identifier.js\";\nimport * as MiddlewareSpec from \"./MiddlewareSpec.js\";\nimport type * as Profile from \"./Profile.js\";\nimport * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType.js\";\n\nexport const TypeId = \"~@confect/core/FunctionSpec\";\nexport type TypeId = typeof TypeId;\n\nexport const isFunctionSpec = (u: unknown): u is AnyWithProps =>\n Predicate.hasProperty(u, TypeId);\n\nexport interface FunctionSpec<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec = never,\n> {\n readonly [TypeId]: TypeId;\n readonly runtimeAndFunctionType: RuntimeAndFunctionType_;\n readonly functionVisibility: FunctionVisibility_;\n readonly name: Name_;\n readonly reservedArgument?: string;\n readonly manifestSections?: ReadonlyArray<ManifestSection.Entry>;\n readonly functionProvenance: FunctionProvenance_;\n readonly middlewareSpecs: ReadonlyArray<MiddlewareSpecs_>;\n readonly middlewareAttachments: ReadonlyArray<\n MiddlewareAttachment.MiddlewareAttachment<MiddlewareSpecs_>\n >;\n}\n\nexport interface Builder<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec = never,\n> extends FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_\n> {\n middleware<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec>(\n middlewareSpec: MiddlewareSpec_ &\n MiddlewareSpec.ValidateFunctionAttach<\n MiddlewareSpec_,\n RuntimeAndFunctionType_,\n FunctionProvenance_,\n MiddlewareSpecs_\n >,\n ...options: MiddlewareAttachment.Args<NoInfer<MiddlewareSpec_>>\n ): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_ | MiddlewareSpec_\n >;\n}\n\nexport interface DescribedBuilder<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec = never,\n> extends Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_\n> {\n readonly description?: string;\n\n middleware<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec>(\n middlewareSpec: MiddlewareSpec_ &\n MiddlewareSpec.ValidateFunctionAttach<\n MiddlewareSpec_,\n RuntimeAndFunctionType_,\n FunctionProvenance_,\n MiddlewareSpecs_\n >,\n ...options: MiddlewareAttachment.Args<NoInfer<MiddlewareSpec_>>\n ): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_ | MiddlewareSpec_\n >;\n}\n\n/**\n * A spec built through {@link extend}, keeping its fields through middleware.\n */\nexport interface ExtendedBuilder<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n Fields_,\n> extends Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_\n> {\n readonly description?: string;\n readonly fields: Profile.Info<Fields_>[\"fields\"];\n\n middleware<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec>(\n middlewareSpec: MiddlewareSpec_ &\n MiddlewareSpec.ValidateFunctionAttach<\n MiddlewareSpec_,\n RuntimeAndFunctionType_,\n FunctionProvenance_,\n MiddlewareSpecs_\n >,\n ...options: MiddlewareAttachment.Args<NoInfer<MiddlewareSpec_>>\n ): ExtendedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_ | MiddlewareSpec_,\n Fields_\n >;\n}\n\nexport interface Any {\n readonly [TypeId]: TypeId;\n}\n\nexport interface AnyWithProps extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance,\n MiddlewareSpec.AnyMiddlewareSpec\n> {\n readonly description?: string;\n readonly fields?: object;\n}\n\nexport interface AnyConfect extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.AnyConfect,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport interface AnyConvex extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.AnyConvex,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport interface AnyWithPropsWithRuntime<\n Runtime extends RuntimeAndFunctionType.Runtime,\n> extends FunctionSpec<\n RuntimeAndFunctionType.WithRuntime<Runtime>,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport interface AnyWithPropsWithFunctionType<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n> extends FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport interface AnyWithPropsWithFunctionProvenance<\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance_,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport type GetRuntimeAndFunctionType<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"runtimeAndFunctionType\"];\n\nexport type GetFunctionVisibility<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"functionVisibility\"];\n\nexport type GetFunctionProvenance<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"functionProvenance\"];\n\nexport type Name<FunctionSpec_ extends AnyWithProps> = FunctionSpec_[\"name\"];\n\nexport type MiddlewareSpecs<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"middlewareSpecs\"][number];\n\n/**\n * The field map declared by a Confect-provenance spec.\n */\nexport type ArgsFields<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly \"~ArgsFields\": infer ArgsFields_ extends\n FunctionProvenance.ArgsFields;\n };\n }\n ? ArgsFields_\n : FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n }\n ? FunctionProvenance.ArgsFields\n : never;\n\n/**\n * The args schema assembled from a Confect-provenance spec's field map.\n */\nexport type ArgsSchema<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly \"~ArgsFields\": infer ArgsFields_ extends\n FunctionProvenance.ArgsFields;\n };\n }\n ? Schema.Struct<ArgsFields_>\n : FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly args: infer ArgsSchema_ extends\n FunctionProvenance.AnyArgsSchema;\n };\n }\n ? ArgsSchema_\n : never;\n\nexport type ReturnsSchema<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly returns: infer ReturnsSchema_ extends Schema.Codec<any, any>;\n };\n }\n ? ReturnsSchema_\n : never;\n\nexport type ErrorSchema<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly error?: infer ErrorSchema_;\n };\n }\n ? Extract<ErrorSchema_, Schema.Codec<any, any>>\n : never;\n\nexport type Args<FunctionSpec_ extends AnyWithProps> = FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n}\n ? ArgsSchema<FunctionSpec_>[\"Type\"]\n : GetFunctionProvenance<FunctionSpec_> extends FunctionProvenance.Convex<\n infer Args_,\n any\n >\n ? Args_\n : never;\n\nexport type Returns<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n }\n ? ReturnsSchema<FunctionSpec_>[\"Type\"]\n : GetFunctionProvenance<FunctionSpec_> extends FunctionProvenance.Convex<\n any,\n infer Returns_\n >\n ? Awaited<Returns_>\n : never;\n\nexport type EncodedArgs<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n }\n ? ArgsSchema<FunctionSpec_>[\"Encoded\"]\n : GetFunctionProvenance<FunctionSpec_> extends FunctionProvenance.Convex<\n infer Args_,\n any\n >\n ? Args_\n : never;\n\nexport type EncodedReturns<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n }\n ? ReturnsSchema<FunctionSpec_>[\"Encoded\"]\n : GetFunctionProvenance<FunctionSpec_> extends FunctionProvenance.Convex<\n any,\n infer Returns_\n >\n ? Returns_\n : never;\n\nexport type Error<FunctionSpec_ extends AnyWithProps> =\n ErrorSchema<FunctionSpec_>[\"Type\"];\n\nexport type EncodedError<FunctionSpec_ extends AnyWithProps> =\n ErrorSchema<FunctionSpec_>[\"Encoded\"];\n\nexport type WithName<\n FunctionSpec_ extends AnyWithProps,\n Name_ extends string,\n> = Extract<FunctionSpec_, { readonly name: Name_ }>;\n\nexport type WithRuntimeAndFunctionType<\n FunctionSpec_ extends AnyWithProps,\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n> = Extract<\n FunctionSpec_,\n { readonly runtimeAndFunctionType: RuntimeAndFunctionType_ }\n>;\n\nexport type WithFunctionType<\n FunctionSpec_ extends AnyWithProps,\n FunctionType_ extends FunctionType,\n> = Extract<\n FunctionSpec_,\n { readonly runtimeAndFunctionType: { readonly functionType: FunctionType_ } }\n>;\n\nexport type WithFunctionProvenance<\n FunctionSpec_ extends AnyWithProps,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> = Extract<\n FunctionSpec_,\n { readonly functionProvenance: FunctionProvenance_ }\n>;\n\nexport type WithoutName<\n FunctionSpec_ extends AnyWithProps,\n Name_ extends Name<FunctionSpec_>,\n> = Exclude<FunctionSpec_, { readonly name: Name_ }>;\n\nconst Proto = {\n [TypeId]: TypeId,\n\n get middlewareSpecs() {\n return this.middlewareAttachments.map(({ spec }) => spec);\n },\n\n middleware(\n this: AnyWithProps,\n middlewareSpec: MiddlewareSpec.AnyMiddlewareSpec,\n ...options: ReadonlyArray<unknown>\n ) {\n if (this.functionProvenance._tag === \"Convex\") {\n throw new Error(\n `Plain Convex function \"${this.name}\" cannot have middleware`,\n );\n }\n const functionType = this.runtimeAndFunctionType.functionType;\n if (!middlewareSpec.functionTypes[functionType]) {\n throw new Error(\n `Middleware \"${middlewareSpec.key}\" does not declare function type \"${functionType}\" of function \"${this.name}\"`,\n );\n }\n if (\n !(\"options\" in middlewareSpec) &&\n this.middlewareAttachments.some(\n ({ spec }) => spec.key === middlewareSpec.key,\n )\n ) {\n throw new Error(\n `Middleware \"${middlewareSpec.key}\" is already attached to function \"${this.name}\"`,\n );\n }\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType: this.runtimeAndFunctionType,\n functionVisibility: this.functionVisibility,\n name: this.name,\n ...(this.manifestSections === undefined\n ? {}\n : { manifestSections: this.manifestSections }),\n ...(this.reservedArgument === undefined\n ? {}\n : { reservedArgument: this.reservedArgument }),\n ...(\"description\" in this ? { description: this.description } : {}),\n ...(\"fields\" in this ? { fields: this.fields } : {}),\n functionProvenance: this.functionProvenance,\n middlewareAttachments: [\n ...this.middlewareAttachments,\n { spec: middlewareSpec, options: options[0] },\n ],\n });\n },\n} satisfies ThisType<AnyWithProps>;\n\ninterface Options {\n readonly reservedArgument?: string;\n readonly description?: string;\n readonly name: string;\n readonly args?: () => FunctionProvenance.ArgsFields;\n readonly returns: () => Schema.Codec<any, any>;\n readonly error?: () => Schema.Codec<any, any>;\n}\n\nconst make = <\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n>(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n) => {\n function makeSpec<\n const Name_ extends string,\n const ArgsFields_ extends FunctionProvenance.ArgsFields,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n reservedArgument?: RuntimeAndFunctionType_[\"functionType\"] extends \"query\"\n ? never\n : string;\n name: Name_;\n description?: never;\n args: () => ArgsFields_;\n returns: () => Returns_;\n error?: () => Error_;\n }): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<ArgsFields_, Returns_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n reservedArgument?: RuntimeAndFunctionType_[\"functionType\"] extends \"query\"\n ? never\n : string;\n name: Name_;\n description?: never;\n args?: never;\n returns: () => Returns_;\n error?: () => Error_;\n }): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<{}, Returns_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n const ArgsFields_ extends FunctionProvenance.ArgsFields,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n reservedArgument?: RuntimeAndFunctionType_[\"functionType\"] extends \"query\"\n ? never\n : string;\n name: Name_;\n description?: FunctionVisibility_ extends \"public\" ? string : never;\n args: () => ArgsFields_;\n returns: () => Returns_;\n error?: () => Error_;\n }): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<ArgsFields_, Returns_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n reservedArgument?: RuntimeAndFunctionType_[\"functionType\"] extends \"query\"\n ? never\n : string;\n name: Name_;\n description?: FunctionVisibility_ extends \"public\" ? string : never;\n args?: never;\n returns: () => Returns_;\n error?: () => Error_;\n }): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<{}, Returns_, Error_>\n >;\n function makeSpec({\n name,\n description,\n args,\n returns,\n error,\n reservedArgument,\n }: Options) {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n ...(runtimeAndFunctionType.functionType !== \"query\" &&\n reservedArgument !== undefined\n ? { reservedArgument }\n : {}),\n ...(description === undefined ? {} : { description }),\n functionProvenance:\n args === undefined\n ? FunctionProvenance.Confect(() => ({}), returns, error)\n : FunctionProvenance.Confect(args, returns, error),\n middlewareAttachments: [],\n });\n }\n\n return makeSpec;\n};\n\n/**\n * `Schema.Struct` fields that must not declare `paginationOpts`. Used to reject\n * a user args schema that redeclares the field the paginated constructors add\n * themselves; the check reports at the `args` thunk with an unsatisfiable type\n * when violated.\n */\ntype ForbidPaginationOpts<\n UserArgsFields extends FunctionProvenance.ArgsFields,\n> = \"paginationOpts\" extends keyof UserArgsFields\n ? { readonly paginationOpts: never }\n : unknown;\n\ninterface PaginatedOptions {\n readonly description?: string;\n readonly name: string;\n readonly args?: () => FunctionProvenance.ArgsFields;\n readonly item: () => Schema.Codec<any, any>;\n readonly error?: () => Schema.Codec<any, any>;\n}\n\nconst makePaginated = <\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n>(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n) => {\n function makeSpec<\n const Name_ extends string,\n const UserArgsFields_ extends FunctionProvenance.ArgsFields,\n Item_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n name: Name_;\n description?: never;\n args: () => UserArgsFields_ & ForbidPaginationOpts<UserArgsFields_>;\n item: () => Item_;\n error?: () => Error_;\n }): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.ConfectPaginated<UserArgsFields_, Item_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n Item_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n name: Name_;\n description?: never;\n args?: never;\n item: () => Item_;\n error?: () => Error_;\n }): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.ConfectPaginated<{}, Item_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n const UserArgsFields_ extends FunctionProvenance.ArgsFields,\n Item_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n name: Name_;\n description?: FunctionVisibility_ extends \"public\" ? string : never;\n args: () => UserArgsFields_ & ForbidPaginationOpts<UserArgsFields_>;\n item: () => Item_;\n error?: () => Error_;\n }): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.ConfectPaginated<UserArgsFields_, Item_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n Item_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n name: Name_;\n description?: FunctionVisibility_ extends \"public\" ? string : never;\n args?: never;\n item: () => Item_;\n error?: () => Error_;\n }): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.ConfectPaginated<{}, Item_, Error_>\n >;\n function makeSpec({\n name,\n description,\n args,\n item,\n error,\n }: PaginatedOptions) {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n ...(description === undefined ? {} : { description }),\n functionProvenance:\n args === undefined\n ? FunctionProvenance.ConfectPaginated(() => ({}), item, error)\n : FunctionProvenance.ConfectPaginated(args, item, error),\n middlewareAttachments: [],\n });\n }\n\n return makeSpec;\n};\n\nexport const publicQuery = make(RuntimeAndFunctionType.ConvexQuery, \"public\");\nexport const internalQuery = make(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const publicPaginatedQuery = makePaginated(\n RuntimeAndFunctionType.ConvexQuery,\n \"public\",\n);\nexport const internalPaginatedQuery = makePaginated(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const publicMutation = make(\n RuntimeAndFunctionType.ConvexMutation,\n \"public\",\n);\nexport const internalMutation = make(\n RuntimeAndFunctionType.ConvexMutation,\n \"internal\",\n);\nexport const publicAction = make(RuntimeAndFunctionType.ConvexAction, \"public\");\nexport const internalAction = make(\n RuntimeAndFunctionType.ConvexAction,\n \"internal\",\n);\n\nexport const publicNodeAction = make(\n RuntimeAndFunctionType.NodeAction,\n \"public\",\n);\nexport const internalNodeAction = make(\n RuntimeAndFunctionType.NodeAction,\n \"internal\",\n);\n\ntype OptionlessMiddlewareSpec = MiddlewareSpec.AnyMiddlewareSpec & {\n readonly \"~Options\": never;\n};\n\ntype BuilderOption =\n | \"name\"\n | \"description\"\n | \"args\"\n | \"returns\"\n | \"item\"\n | \"error\";\n\n/**\n * Only a required description string may name a builder option. The builder\n * reads it as that option. The conditional keeps the mapped type out of a\n * builder call's inference, which would otherwise widen the function's name to\n * `string` when reporting the error.\n */\ntype OptionFree<Type> = [keyof Type & BuilderOption] extends [never]\n ? unknown\n : {\n readonly [\n Option in keyof Type & BuilderOption as Option extends \"description\"\n ? Type[Option] extends string\n ? string extends Type[Option]\n ? never\n : Option\n : Option\n : Option\n ]: never;\n };\n\n/**\n * A function's fields, checked once applied, since a profile's field type can\n * branch on the function's name.\n */\ntype CheckedFields<Type> = Type & OptionFree<Type>;\n\ntype NotRepeated<\n Middleware_,\n Inherited extends MiddlewareSpec.AnyMiddlewareSpec,\n> = Middleware_ extends {\n readonly key: infer Key extends MiddlewareSpec.Key<Inherited>;\n}\n ? MiddlewareSpec.AttachmentError<`Middleware \"${Key}\" is already attached by this profile`>\n : Middleware_;\n\n/**\n * Refuses a middleware without options that an earlier layer attached, as it is\n * attached at most once; one with options may repeat. Each member of an\n * element's union is checked, so an array typed `(A | B)[]` is refused when\n * either was attached.\n */\ntype NotInherited<\n Middleware_ extends ReadonlyArray<unknown>,\n Inherited extends MiddlewareSpec.AnyMiddlewareSpec,\n> = {\n readonly [Index in keyof Middleware_]: NotRepeated<\n Middleware_[Index],\n Inherited\n >;\n};\n\n/**\n * A profile's middleware: a spec without options, or an attachment.\n */\ntype ProfileMiddleware<FieldsType> =\n | OptionlessMiddlewareSpec\n | Profile.Attachment<MiddlewareSpec.AnyMiddlewareSpec, FieldsType>;\n\ntype SpecOf<Middleware_> =\n Middleware_ extends Profile.Attachment<infer MiddlewareSpec_, any>\n ? MiddlewareSpec_\n : Extract<Middleware_, MiddlewareSpec.AnyMiddlewareSpec>;\n\n/**\n * `never` when a profile middleware does not declare the function type.\n */\ntype Declared<\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n FunctionType_ extends FunctionType,\n Make,\n> = [\n MiddlewareSpecs_ extends unknown\n ? FunctionType_ extends MiddlewareSpec.FunctionTypes<MiddlewareSpecs_>\n ? never\n : MiddlewareSpecs_\n : never,\n] extends [never]\n ? Make\n : never;\n\ntype Wrapped<\n Layers extends ReadonlyArray<Profile.Transforms>,\n Key extends keyof Profile.Transforms,\n Input,\n> = Layers extends readonly [\n infer First extends Profile.Transforms,\n ...infer Rest extends ReadonlyArray<Profile.Transforms>,\n]\n ? Wrapped<\n Rest,\n Key,\n Key extends keyof First\n ? [Input] extends [never]\n ? Key extends \"error\"\n ? Profile.Transform<First[Key], typeof Schema.Never>\n : never\n : Profile.Transform<First[Key], Input>\n : Input\n >\n : Input;\n\ntype UserArgs<A> = [A] extends [never] ? {} : A;\n\ntype ExtendedMake<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n Fields_ extends Profile.Fields,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n Layers extends ReadonlyArray<Profile.Transforms>,\n> = Declared<\n MiddlewareSpecs_,\n RuntimeAndFunctionType_[\"functionType\"],\n <\n const Name_ extends string,\n const ArgsFields_ extends FunctionProvenance.ArgsFields = never,\n Returns_ extends Schema.Codec<any, any> = never,\n Error_ extends Schema.Codec<any, any> = never,\n >(\n options: {\n readonly name: Name_;\n readonly description?: string;\n readonly args?: () => ArgsFields_;\n readonly returns: () => Returns_;\n readonly error?: () => Error_;\n } & NoInfer<\n CheckedFields<Profile.Apply<Fields_, Name_, UserArgs<ArgsFields_>>>\n >,\n ) => ExtendedBuilder<\n RuntimeAndFunctionType_,\n \"public\",\n Name_,\n FunctionProvenance.Confect<\n UserArgs<Wrapped<Layers, \"args\", ArgsFields_>>,\n Wrapped<Layers, \"returns\", Returns_>,\n Wrapped<Layers, \"error\", Error_>\n >,\n MiddlewareSpecs_,\n Profile.Apply<Fields_, Name_, UserArgs<ArgsFields_>>\n >\n>;\n\ntype ExtendedMakePaginated<\n Fields_ extends Profile.Fields,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n Layers extends ReadonlyArray<Profile.Transforms>,\n> = Declared<\n MiddlewareSpecs_,\n \"query\",\n <\n const Name_ extends string,\n const UserArgsFields_ extends FunctionProvenance.ArgsFields = never,\n Item_ extends Schema.Codec<any, any> = never,\n Error_ extends Schema.Codec<any, any> = never,\n >(\n options: {\n readonly name: Name_;\n readonly description?: string;\n readonly args?: () => UserArgsFields_ &\n ForbidPaginationOpts<UserArgsFields_>;\n readonly item: () => Item_;\n readonly error?: () => Error_;\n } & NoInfer<\n CheckedFields<Profile.Apply<Fields_, Name_, UserArgs<UserArgsFields_>>>\n >,\n ) => ExtendedBuilder<\n RuntimeAndFunctionType.ConvexQuery,\n \"public\",\n Name_,\n FunctionProvenance.ConfectPaginated<\n UserArgs<Wrapped<Layers, \"args\", UserArgsFields_>>,\n Wrapped<Layers, \"item\", Item_>,\n Wrapped<Layers, \"error\", Error_>\n >,\n MiddlewareSpecs_,\n Profile.Apply<Fields_, Name_, UserArgs<UserArgsFields_>>\n >\n>;\n\ninterface ExtendedRuntimes {\n readonly publicQuery: RuntimeAndFunctionType.ConvexQuery;\n readonly publicMutation: RuntimeAndFunctionType.ConvexMutation;\n readonly publicAction: RuntimeAndFunctionType.ConvexAction;\n readonly publicNodeAction: RuntimeAndFunctionType.NodeAction;\n}\n\n/**\n * A profile's five public builders and its own `extend`.\n */\nexport type Extended<\n Fields_ extends Profile.Fields,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n Layers extends ReadonlyArray<Profile.Transforms> = [],\n> = {\n readonly [Builder_ in keyof ExtendedRuntimes]: ExtendedMake<\n ExtendedRuntimes[Builder_],\n Fields_,\n MiddlewareSpecs_,\n Layers\n >;\n} & {\n readonly publicPaginatedQuery: ExtendedMakePaginated<\n Fields_,\n MiddlewareSpecs_,\n Layers\n >;\n /**\n * Require more fields and attach more middleware after this profile's.\n */\n extend<\n Extension extends Profile.Fields = Profile.NoFields,\n Transforms extends Profile.Transforms = {},\n >(): <\n const Middleware_ extends ReadonlyArray<\n ProfileMiddleware<\n Profile.Apply<Profile.Both<Fields_, Extension>, string, any>\n >\n >,\n >(\n config: {\n readonly manifest?: Readonly<\n Record<string, ManifestSection.ManifestSection>\n >;\n readonly reservedArgument?: string;\n readonly middleware: Middleware_ &\n NotInherited<Middleware_, MiddlewareSpecs_>;\n } & OptionFree<Extension[\"Type\"]> &\n Profile.SchemaConfig<\n Transforms,\n Profile.Apply<Profile.Both<Fields_, Extension>, string, any>\n >,\n ) => Extended<\n Profile.Both<Fields_, Extension>,\n MiddlewareSpecs_ | SpecOf<Middleware_[number]>,\n [...Layers, Transforms]\n >;\n};\n\ntype RuntimeWrappers = Partial<\n Record<\n keyof Profile.Transforms,\n (thunk: () => any, info: Profile.Info<any>) => () => any\n >\n>;\n\nconst makeExtended = (\n middleware: ReadonlyArray<ProfileMiddleware<any>>,\n schemas: ReadonlyArray<RuntimeWrappers> = [],\n reservedArgument?: string,\n manifestSections: ReadonlyArray<ManifestSection.Entry> = [],\n): Extended<any, any> => {\n const extended =\n (\n makeSpec: (options: never) => object,\n paginated = false,\n reserves = false,\n ): any =>\n ({\n name,\n description,\n args,\n returns,\n item,\n error,\n ...fields\n }: Record<string, unknown>) => {\n const info = {\n name,\n ...(description === undefined ? {} : { description }),\n args: args ?? (() => ({})),\n fields,\n } as Profile.Info<unknown>;\n const thunks = {\n args,\n returns: paginated ? undefined : returns,\n item: paginated ? item : undefined,\n error,\n } as Partial<Record<keyof Profile.Transforms, () => any>>;\n for (const wrappers of schemas) {\n for (const key of [\"args\", \"returns\", \"item\", \"error\"] as const) {\n const wrap = wrappers[key];\n const thunk =\n thunks[key] ?? (key === \"error\" ? () => Schema.Never : undefined);\n if (wrap !== undefined && thunk !== undefined) {\n thunks[key] = () => wrap(thunk, info)();\n }\n }\n }\n return middleware.reduce(\n (spec: any, entry) =>\n MiddlewareSpec.isMiddlewareSpec(entry)\n ? spec.middleware(entry)\n : spec.middleware(entry.spec, entry.options(info)),\n Object.assign(makeSpec({ name, description, ...thunks } as never), {\n fields,\n manifestSections,\n ...(reserves && reservedArgument !== undefined\n ? { reservedArgument }\n : {}),\n }),\n );\n };\n\n return {\n publicQuery: extended(publicQuery),\n publicMutation: extended(publicMutation, false, true),\n publicAction: extended(publicAction, false, true),\n publicNodeAction: extended(publicNodeAction, false, true),\n publicPaginatedQuery: extended(publicPaginatedQuery, true),\n extend:\n () =>\n (config: {\n middleware: ReadonlyArray<ProfileMiddleware<any>>;\n schemas?: RuntimeWrappers;\n reservedArgument?: string;\n manifest?: Readonly<Record<string, ManifestSection.ManifestSection>>;\n }) =>\n makeExtended(\n [...middleware, ...config.middleware],\n [...schemas, config.schemas ?? {}],\n config.reservedArgument ?? reservedArgument,\n [\n ...manifestSections,\n ...Object.entries(config.manifest ?? {}).map(([key, section]) => ({\n key,\n section,\n })),\n ],\n ),\n };\n};\n\n/**\n * Public builders whose specs require and keep `Fields_`, with `middleware`.\n */\nexport const extend =\n <\n Fields_ extends Profile.Fields = Profile.NoFields,\n Transforms extends Profile.Transforms = {},\n >() =>\n <\n const Middleware_ extends ReadonlyArray<\n ProfileMiddleware<Profile.Apply<Fields_, string, any>>\n >,\n >(\n config: {\n readonly manifest?: Readonly<\n Record<string, ManifestSection.ManifestSection>\n >;\n readonly reservedArgument?: string;\n readonly middleware: Middleware_;\n } & OptionFree<Fields_[\"Type\"]> &\n Profile.SchemaConfig<Transforms, Profile.Apply<Fields_, string, any>>,\n ) =>\n makeExtended(\n config.middleware,\n [config.schemas ?? {}],\n config.reservedArgument,\n Object.entries(config.manifest ?? {}).map(([key, section]) => ({\n key,\n section,\n })),\n ) as Extended<Fields_, SpecOf<Middleware_[number]>, [Transforms]>;\n\ntype MatchingRegisteredFunction<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n> =\n RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"query\"\n ? RegisteredQuery<FunctionVisibility_, any, any>\n : RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"mutation\"\n ? RegisteredMutation<FunctionVisibility_, any, any>\n : RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"action\"\n ? RegisteredAction<FunctionVisibility_, any, any>\n : never;\n\ntype ExtractArgs<F> =\n F extends RegisteredQuery<any, infer A extends DefaultFunctionArgs, any>\n ? A\n : F extends RegisteredMutation<\n any,\n infer A extends DefaultFunctionArgs,\n any\n >\n ? A\n : F extends RegisteredAction<\n any,\n infer A extends DefaultFunctionArgs,\n any\n >\n ? A\n : never;\n\ntype ExtractReturns<F> =\n F extends RegisteredQuery<any, any, infer R>\n ? R\n : F extends RegisteredMutation<any, any, infer R>\n ? R\n : F extends RegisteredAction<any, any, infer R>\n ? R\n : never;\n\nconst makeConvex =\n <\n RuntimeAndFunctionType_ extends\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n >(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n ) =>\n <\n F extends MatchingRegisteredFunction<\n RuntimeAndFunctionType_,\n FunctionVisibility_\n >,\n >() =>\n <const Name_ extends string>(\n name: Name_,\n ): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Convex<ExtractArgs<F>, ExtractReturns<F>>\n > => {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n functionProvenance: FunctionProvenance.Convex<\n ExtractArgs<F>,\n ExtractReturns<F>\n >(),\n middlewareAttachments: [],\n }) as any;\n };\n\nexport const convexPublicQuery = makeConvex(\n RuntimeAndFunctionType.ConvexQuery,\n \"public\",\n);\nexport const convexInternalQuery = makeConvex(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const convexPublicMutation = makeConvex(\n RuntimeAndFunctionType.ConvexMutation,\n \"public\",\n);\nexport const convexInternalMutation = makeConvex(\n RuntimeAndFunctionType.ConvexMutation,\n \"internal\",\n);\nexport const convexPublicAction = makeConvex(\n RuntimeAndFunctionType.ConvexAction,\n \"public\",\n);\nexport const convexInternalAction = makeConvex(\n RuntimeAndFunctionType.ConvexAction,\n \"internal\",\n);\nexport const convexPublicNodeAction = makeConvex(\n RuntimeAndFunctionType.NodeAction,\n \"public\",\n);\nexport const convexInternalNodeAction = makeConvex(\n RuntimeAndFunctionType.NodeAction,\n \"internal\",\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FunctionSpec.js","names":["FunctionProvenance.Confect","FunctionProvenance.ConfectPaginated","RuntimeAndFunctionType.ConvexQuery","RuntimeAndFunctionType.ConvexMutation","RuntimeAndFunctionType.ConvexAction","RuntimeAndFunctionType.NodeAction","MiddlewareSpec.isMiddlewareSpec","FunctionProvenance.Convex"],"sources":["../src/FunctionSpec.ts"],"sourcesContent":["import type * as ManifestSection from \"./ManifestSection.js\";\nimport type * as MiddlewareAttachment from \"./MiddlewareAttachment.js\";\nimport type {\n DefaultFunctionArgs,\n FunctionType,\n FunctionVisibility,\n RegisteredAction,\n RegisteredMutation,\n RegisteredQuery,\n} from \"convex/server\";\nimport * as Schema from \"effect/Schema\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport { validateConfectFunctionIdentifier } from \"./Identifier.js\";\nimport * as MiddlewareSpec from \"./MiddlewareSpec.js\";\nimport type * as Profile from \"./Profile.js\";\nimport * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType.js\";\n\nexport const TypeId = \"~@confect/core/FunctionSpec\";\nexport type TypeId = typeof TypeId;\n\nexport const isFunctionSpec = (u: unknown): u is AnyWithProps =>\n Predicate.hasProperty(u, TypeId);\n\nexport interface FunctionSpec<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec = never,\n> {\n readonly [TypeId]: TypeId;\n readonly runtimeAndFunctionType: RuntimeAndFunctionType_;\n readonly functionVisibility: FunctionVisibility_;\n readonly name: Name_;\n readonly reservedArgument?: string;\n readonly manifestSections?: ReadonlyArray<ManifestSection.Entry>;\n readonly functionProvenance: FunctionProvenance_;\n readonly middlewareSpecs: ReadonlyArray<MiddlewareSpecs_>;\n readonly middlewareAttachments: ReadonlyArray<\n MiddlewareAttachment.MiddlewareAttachment<MiddlewareSpecs_>\n >;\n}\n\nexport interface Builder<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec = never,\n> extends FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_\n> {\n middleware<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec>(\n middlewareSpec: MiddlewareSpec_ &\n MiddlewareSpec.ValidateFunctionAttach<\n MiddlewareSpec_,\n RuntimeAndFunctionType_,\n FunctionProvenance_,\n MiddlewareSpecs_\n >,\n ...options: MiddlewareAttachment.Args<NoInfer<MiddlewareSpec_>>\n ): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_ | MiddlewareSpec_\n >;\n}\n\nexport interface DescribedBuilder<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec = never,\n> extends Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_\n> {\n readonly description?: string;\n\n middleware<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec>(\n middlewareSpec: MiddlewareSpec_ &\n MiddlewareSpec.ValidateFunctionAttach<\n MiddlewareSpec_,\n RuntimeAndFunctionType_,\n FunctionProvenance_,\n MiddlewareSpecs_\n >,\n ...options: MiddlewareAttachment.Args<NoInfer<MiddlewareSpec_>>\n ): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_ | MiddlewareSpec_\n >;\n}\n\n/**\n * A spec built through {@link extend}, keeping its fields through middleware.\n */\nexport interface ExtendedBuilder<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n Fields_,\n> extends Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_\n> {\n readonly description?: string;\n readonly fields: Profile.Info<Fields_>[\"fields\"];\n\n middleware<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec>(\n middlewareSpec: MiddlewareSpec_ &\n MiddlewareSpec.ValidateFunctionAttach<\n MiddlewareSpec_,\n RuntimeAndFunctionType_,\n FunctionProvenance_,\n MiddlewareSpecs_\n >,\n ...options: MiddlewareAttachment.Args<NoInfer<MiddlewareSpec_>>\n ): ExtendedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance_,\n MiddlewareSpecs_ | MiddlewareSpec_,\n Fields_\n >;\n}\n\nexport interface Any {\n readonly [TypeId]: TypeId;\n}\n\nexport interface AnyWithProps extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance,\n MiddlewareSpec.AnyMiddlewareSpec\n> {\n readonly description?: string;\n readonly fields?: object;\n}\n\nexport interface AnyConfect extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.AnyConfect,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport interface AnyConvex extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.AnyConvex,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport interface AnyWithPropsWithRuntime<\n Runtime extends RuntimeAndFunctionType.Runtime,\n> extends FunctionSpec<\n RuntimeAndFunctionType.WithRuntime<Runtime>,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport interface AnyWithPropsWithFunctionType<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n> extends FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport interface AnyWithPropsWithFunctionProvenance<\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance_,\n MiddlewareSpec.AnyMiddlewareSpec\n> {}\n\nexport type GetRuntimeAndFunctionType<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"runtimeAndFunctionType\"];\n\nexport type GetFunctionVisibility<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"functionVisibility\"];\n\nexport type GetFunctionProvenance<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"functionProvenance\"];\n\nexport type Name<FunctionSpec_ extends AnyWithProps> = FunctionSpec_[\"name\"];\n\nexport type MiddlewareSpecs<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"middlewareSpecs\"][number];\n\n/**\n * The field map declared by a Confect-provenance spec.\n */\nexport type ArgsFields<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly \"~ArgsFields\": infer ArgsFields_ extends\n FunctionProvenance.ArgsFields;\n };\n }\n ? ArgsFields_\n : FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n }\n ? FunctionProvenance.ArgsFields\n : never;\n\n/**\n * The args schema assembled from a Confect-provenance spec's field map.\n */\nexport type ArgsSchema<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly \"~ArgsFields\": infer ArgsFields_ extends\n FunctionProvenance.ArgsFields;\n };\n }\n ? Schema.Struct<ArgsFields_>\n : FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly args: infer ArgsSchema_ extends\n FunctionProvenance.AnyArgsSchema;\n };\n }\n ? ArgsSchema_\n : never;\n\nexport type ReturnsSchema<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly returns: infer ReturnsSchema_ extends Schema.Codec<any, any>;\n };\n }\n ? ReturnsSchema_\n : never;\n\nexport type ErrorSchema<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: {\n readonly _tag: \"Confect\";\n readonly error?: infer ErrorSchema_;\n };\n }\n ? Extract<ErrorSchema_, Schema.Codec<any, any>>\n : never;\n\nexport type Args<FunctionSpec_ extends AnyWithProps> = FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n}\n ? ArgsSchema<FunctionSpec_>[\"Type\"]\n : GetFunctionProvenance<FunctionSpec_> extends FunctionProvenance.Convex<\n infer Args_,\n any\n >\n ? Args_\n : never;\n\nexport type Returns<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n }\n ? ReturnsSchema<FunctionSpec_>[\"Type\"]\n : GetFunctionProvenance<FunctionSpec_> extends FunctionProvenance.Convex<\n any,\n infer Returns_\n >\n ? Awaited<Returns_>\n : never;\n\nexport type EncodedArgs<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n }\n ? ArgsSchema<FunctionSpec_>[\"Encoded\"]\n : GetFunctionProvenance<FunctionSpec_> extends FunctionProvenance.Convex<\n infer Args_,\n any\n >\n ? Args_\n : never;\n\nexport type EncodedReturns<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Confect\" };\n }\n ? ReturnsSchema<FunctionSpec_>[\"Encoded\"]\n : GetFunctionProvenance<FunctionSpec_> extends FunctionProvenance.Convex<\n any,\n infer Returns_\n >\n ? Returns_\n : never;\n\nexport type Error<FunctionSpec_ extends AnyWithProps> =\n ErrorSchema<FunctionSpec_>[\"Type\"];\n\nexport type EncodedError<FunctionSpec_ extends AnyWithProps> =\n ErrorSchema<FunctionSpec_>[\"Encoded\"];\n\nexport type WithName<\n FunctionSpec_ extends AnyWithProps,\n Name_ extends string,\n> = Extract<FunctionSpec_, { readonly name: Name_ }>;\n\nexport type WithRuntimeAndFunctionType<\n FunctionSpec_ extends AnyWithProps,\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n> = Extract<\n FunctionSpec_,\n { readonly runtimeAndFunctionType: RuntimeAndFunctionType_ }\n>;\n\nexport type WithFunctionType<\n FunctionSpec_ extends AnyWithProps,\n FunctionType_ extends FunctionType,\n> = Extract<\n FunctionSpec_,\n { readonly runtimeAndFunctionType: { readonly functionType: FunctionType_ } }\n>;\n\nexport type WithFunctionProvenance<\n FunctionSpec_ extends AnyWithProps,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> = Extract<\n FunctionSpec_,\n { readonly functionProvenance: FunctionProvenance_ }\n>;\n\nexport type WithoutName<\n FunctionSpec_ extends AnyWithProps,\n Name_ extends Name<FunctionSpec_>,\n> = Exclude<FunctionSpec_, { readonly name: Name_ }>;\n\nconst Proto = {\n [TypeId]: TypeId,\n\n get middlewareSpecs() {\n return this.middlewareAttachments.map(({ spec }) => spec);\n },\n\n middleware(\n this: AnyWithProps,\n middlewareSpec: MiddlewareSpec.AnyMiddlewareSpec,\n ...options: ReadonlyArray<unknown>\n ) {\n if (this.functionProvenance._tag === \"Convex\") {\n throw new Error(\n `Plain Convex function \"${this.name}\" cannot have middleware`,\n );\n }\n const functionType = this.runtimeAndFunctionType.functionType;\n if (!middlewareSpec.functionTypes[functionType]) {\n throw new Error(\n `Middleware \"${middlewareSpec.key}\" does not declare function type \"${functionType}\" of function \"${this.name}\"`,\n );\n }\n if (\n !(\"options\" in middlewareSpec) &&\n this.middlewareAttachments.some(\n ({ spec }) => spec.key === middlewareSpec.key,\n )\n ) {\n throw new Error(\n `Middleware \"${middlewareSpec.key}\" is already attached to function \"${this.name}\"`,\n );\n }\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType: this.runtimeAndFunctionType,\n functionVisibility: this.functionVisibility,\n name: this.name,\n ...(this.manifestSections === undefined\n ? {}\n : { manifestSections: this.manifestSections }),\n ...(this.reservedArgument === undefined\n ? {}\n : { reservedArgument: this.reservedArgument }),\n ...(\"description\" in this ? { description: this.description } : {}),\n ...(\"fields\" in this ? { fields: this.fields } : {}),\n functionProvenance: this.functionProvenance,\n middlewareAttachments: [\n ...this.middlewareAttachments,\n { spec: middlewareSpec, options: options[0] },\n ],\n });\n },\n} satisfies ThisType<AnyWithProps>;\n\ninterface Options {\n readonly reservedArgument?: string;\n readonly description?: string;\n readonly name: string;\n readonly args?: () => FunctionProvenance.ArgsFields;\n readonly returns: () => Schema.Codec<any, any>;\n readonly error?: () => Schema.Codec<any, any>;\n}\n\nconst make = <\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n>(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n) => {\n function makeSpec<\n const Name_ extends string,\n const ArgsFields_ extends FunctionProvenance.ArgsFields,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n reservedArgument?: RuntimeAndFunctionType_[\"functionType\"] extends \"query\"\n ? never\n : string;\n name: Name_;\n description?: never;\n args: () => ArgsFields_;\n returns: () => Returns_;\n error?: () => Error_;\n }): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<ArgsFields_, Returns_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n reservedArgument?: RuntimeAndFunctionType_[\"functionType\"] extends \"query\"\n ? never\n : string;\n name: Name_;\n description?: never;\n args?: never;\n returns: () => Returns_;\n error?: () => Error_;\n }): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<{}, Returns_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n const ArgsFields_ extends FunctionProvenance.ArgsFields,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n reservedArgument?: RuntimeAndFunctionType_[\"functionType\"] extends \"query\"\n ? never\n : string;\n name: Name_;\n description?: FunctionVisibility_ extends \"public\" ? string : never;\n args: () => ArgsFields_;\n returns: () => Returns_;\n error?: () => Error_;\n }): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<ArgsFields_, Returns_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n Returns_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n reservedArgument?: RuntimeAndFunctionType_[\"functionType\"] extends \"query\"\n ? never\n : string;\n name: Name_;\n description?: FunctionVisibility_ extends \"public\" ? string : never;\n args?: never;\n returns: () => Returns_;\n error?: () => Error_;\n }): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<{}, Returns_, Error_>\n >;\n function makeSpec({\n name,\n description,\n args,\n returns,\n error,\n reservedArgument,\n }: Options) {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n ...(runtimeAndFunctionType.functionType !== \"query\" &&\n reservedArgument !== undefined\n ? { reservedArgument }\n : {}),\n ...(description === undefined ? {} : { description }),\n functionProvenance:\n args === undefined\n ? FunctionProvenance.Confect(() => ({}), returns, error)\n : FunctionProvenance.Confect(args, returns, error),\n middlewareAttachments: [],\n });\n }\n\n return makeSpec;\n};\n\n/**\n * `Schema.Struct` fields that must not declare `paginationOpts`. Used to reject\n * a user args schema that redeclares the field the paginated constructors add\n * themselves; the check reports at the `args` thunk with an unsatisfiable type\n * when violated.\n */\ntype ForbidPaginationOpts<\n UserArgsFields extends FunctionProvenance.ArgsFields,\n> = \"paginationOpts\" extends keyof UserArgsFields\n ? { readonly paginationOpts: never }\n : unknown;\n\ninterface PaginatedOptions {\n readonly description?: string;\n readonly name: string;\n readonly args?: () => FunctionProvenance.ArgsFields;\n readonly item: () => Schema.Codec<any, any>;\n readonly error?: () => Schema.Codec<any, any>;\n}\n\nconst makePaginated = <\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n>(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n) => {\n function makeSpec<\n const Name_ extends string,\n const UserArgsFields_ extends FunctionProvenance.ArgsFields,\n Item_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n name: Name_;\n description?: never;\n args: () => UserArgsFields_ & ForbidPaginationOpts<UserArgsFields_>;\n item: () => Item_;\n error?: () => Error_;\n }): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.ConfectPaginated<UserArgsFields_, Item_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n Item_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n name: Name_;\n description?: never;\n args?: never;\n item: () => Item_;\n error?: () => Error_;\n }): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.ConfectPaginated<{}, Item_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n const UserArgsFields_ extends FunctionProvenance.ArgsFields,\n Item_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n name: Name_;\n description?: FunctionVisibility_ extends \"public\" ? string : never;\n args: () => UserArgsFields_ & ForbidPaginationOpts<UserArgsFields_>;\n item: () => Item_;\n error?: () => Error_;\n }): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.ConfectPaginated<UserArgsFields_, Item_, Error_>\n >;\n function makeSpec<\n const Name_ extends string,\n Item_ extends Schema.Codec<any, any>,\n Error_ extends Schema.Codec<any, any> = never,\n >(options: {\n name: Name_;\n description?: FunctionVisibility_ extends \"public\" ? string : never;\n args?: never;\n item: () => Item_;\n error?: () => Error_;\n }): DescribedBuilder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.ConfectPaginated<{}, Item_, Error_>\n >;\n function makeSpec({\n name,\n description,\n args,\n item,\n error,\n }: PaginatedOptions) {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n ...(description === undefined ? {} : { description }),\n functionProvenance:\n args === undefined\n ? FunctionProvenance.ConfectPaginated(() => ({}), item, error)\n : FunctionProvenance.ConfectPaginated(args, item, error),\n middlewareAttachments: [],\n });\n }\n\n return makeSpec;\n};\n\nexport const publicQuery = make(RuntimeAndFunctionType.ConvexQuery, \"public\");\nexport const internalQuery = make(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const publicPaginatedQuery = makePaginated(\n RuntimeAndFunctionType.ConvexQuery,\n \"public\",\n);\nexport const internalPaginatedQuery = makePaginated(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const publicMutation = make(\n RuntimeAndFunctionType.ConvexMutation,\n \"public\",\n);\nexport const internalMutation = make(\n RuntimeAndFunctionType.ConvexMutation,\n \"internal\",\n);\nexport const publicAction = make(RuntimeAndFunctionType.ConvexAction, \"public\");\nexport const internalAction = make(\n RuntimeAndFunctionType.ConvexAction,\n \"internal\",\n);\n\nexport const publicNodeAction = make(\n RuntimeAndFunctionType.NodeAction,\n \"public\",\n);\nexport const internalNodeAction = make(\n RuntimeAndFunctionType.NodeAction,\n \"internal\",\n);\n\ntype OptionlessMiddlewareSpec = MiddlewareSpec.AnyMiddlewareSpec & {\n readonly \"~Options\": never;\n};\n\ntype BuilderOption =\n | \"name\"\n | \"description\"\n | \"args\"\n | \"returns\"\n | \"item\"\n | \"error\";\n\n/**\n * Only a required description string may name a builder option. The builder\n * reads it as that option. The conditional keeps the mapped type out of a\n * builder call's inference, which would otherwise widen the function's name to\n * `string` when reporting the error.\n */\ntype OptionFree<Type> = [keyof Type & BuilderOption] extends [never]\n ? unknown\n : {\n readonly [\n Option in keyof Type & BuilderOption as Option extends \"description\"\n ? Type[Option] extends string\n ? string extends Type[Option]\n ? never\n : Option\n : Option\n : Option\n ]: never;\n };\n\n/**\n * A function's fields, checked once applied, since a profile's field type can\n * branch on the function's name.\n */\ntype CheckedFields<Type> = Type & OptionFree<Type>;\n\ntype NotRepeated<\n Middleware_,\n Inherited extends MiddlewareSpec.AnyMiddlewareSpec,\n> = Middleware_ extends {\n readonly key: infer Key extends MiddlewareSpec.Key<Inherited>;\n}\n ? MiddlewareSpec.AttachmentError<`Middleware \"${Key}\" is already attached by this profile`>\n : Middleware_;\n\n/**\n * Refuses a middleware without options that an earlier layer attached, as it is\n * attached at most once; one with options may repeat. Each member of an\n * element's union is checked, so an array typed `(A | B)[]` is refused when\n * either was attached.\n */\ntype NotInherited<\n Middleware_ extends ReadonlyArray<unknown>,\n Inherited extends MiddlewareSpec.AnyMiddlewareSpec,\n> = {\n readonly [Index in keyof Middleware_]: NotRepeated<\n Middleware_[Index],\n Inherited\n >;\n};\n\n/**\n * A profile's middleware: a spec without options, or an attachment.\n */\ntype ProfileMiddleware<FieldsType> =\n | OptionlessMiddlewareSpec\n | Profile.Attachment<MiddlewareSpec.AnyMiddlewareSpec, FieldsType>;\n\ntype SpecOf<Middleware_> =\n Middleware_ extends Profile.Attachment<infer MiddlewareSpec_, any>\n ? MiddlewareSpec_\n : Extract<Middleware_, MiddlewareSpec.AnyMiddlewareSpec>;\n\n/**\n * `never` when a profile middleware does not declare the function type.\n */\ntype Declared<\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n FunctionType_ extends FunctionType,\n Make,\n> = [\n MiddlewareSpecs_ extends unknown\n ? FunctionType_ extends MiddlewareSpec.FunctionTypes<MiddlewareSpecs_>\n ? never\n : MiddlewareSpecs_\n : never,\n] extends [never]\n ? Make\n : never;\n\ntype Wrapped<\n Layers extends ReadonlyArray<Profile.Transforms>,\n Key extends keyof Profile.Transforms,\n Input,\n> = Layers extends readonly [\n infer First extends Profile.Transforms,\n ...infer Rest extends ReadonlyArray<Profile.Transforms>,\n]\n ? Wrapped<\n Rest,\n Key,\n Key extends keyof First\n ? [Input] extends [never]\n ? Key extends \"error\"\n ? Profile.Transform<First[Key], typeof Schema.Never>\n : never\n : Profile.Transform<First[Key], Input>\n : Input\n >\n : Input;\n\ntype UserArgs<A> = [A] extends [never] ? {} : A;\n\ntype ExtendedMake<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n Fields_ extends Profile.Fields,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n Layers extends ReadonlyArray<Profile.Transforms>,\n> = Declared<\n MiddlewareSpecs_,\n RuntimeAndFunctionType_[\"functionType\"],\n <\n const Name_ extends string,\n const ArgsFields_ extends FunctionProvenance.ArgsFields = never,\n Returns_ extends Schema.Codec<any, any> = never,\n Error_ extends Schema.Codec<any, any> = never,\n >(\n options: {\n readonly name: Name_;\n readonly description?: string;\n readonly args?: () => ArgsFields_;\n readonly returns: () => Returns_;\n readonly error?: () => Error_;\n } & NoInfer<\n CheckedFields<Profile.Apply<Fields_, Name_, UserArgs<ArgsFields_>>>\n >,\n ) => ExtendedBuilder<\n RuntimeAndFunctionType_,\n \"public\",\n Name_,\n FunctionProvenance.Confect<\n UserArgs<Wrapped<Layers, \"args\", ArgsFields_>>,\n Wrapped<Layers, \"returns\", Returns_>,\n Wrapped<Layers, \"error\", Error_>\n >,\n MiddlewareSpecs_,\n Profile.Apply<Fields_, Name_, UserArgs<ArgsFields_>>\n >\n>;\n\ntype ExtendedMakePaginated<\n Fields_ extends Profile.Fields,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n Layers extends ReadonlyArray<Profile.Transforms>,\n> = Declared<\n MiddlewareSpecs_,\n \"query\",\n <\n const Name_ extends string,\n const UserArgsFields_ extends FunctionProvenance.ArgsFields = never,\n Item_ extends Schema.Codec<any, any> = never,\n Error_ extends Schema.Codec<any, any> = never,\n >(\n options: {\n readonly name: Name_;\n readonly description?: string;\n readonly args?: () => UserArgsFields_ &\n ForbidPaginationOpts<UserArgsFields_>;\n readonly item: () => Item_;\n readonly error?: () => Error_;\n } & NoInfer<\n CheckedFields<Profile.Apply<Fields_, Name_, UserArgs<UserArgsFields_>>>\n >,\n ) => ExtendedBuilder<\n RuntimeAndFunctionType.ConvexQuery,\n \"public\",\n Name_,\n FunctionProvenance.ConfectPaginated<\n UserArgs<Wrapped<Layers, \"args\", UserArgsFields_>>,\n Wrapped<Layers, \"item\", Item_>,\n Wrapped<Layers, \"error\", Error_>\n >,\n MiddlewareSpecs_,\n Profile.Apply<Fields_, Name_, UserArgs<UserArgsFields_>>\n >\n>;\n\ninterface ExtendedRuntimes {\n readonly publicQuery: RuntimeAndFunctionType.ConvexQuery;\n readonly publicMutation: RuntimeAndFunctionType.ConvexMutation;\n readonly publicAction: RuntimeAndFunctionType.ConvexAction;\n readonly publicNodeAction: RuntimeAndFunctionType.NodeAction;\n}\n\n/**\n * A profile's five public builders and its own `extend`.\n */\nexport type Extended<\n Fields_ extends Profile.Fields,\n MiddlewareSpecs_ extends MiddlewareSpec.AnyMiddlewareSpec,\n Layers extends ReadonlyArray<Profile.Transforms> = [],\n> = {\n readonly [Builder_ in keyof ExtendedRuntimes]: ExtendedMake<\n ExtendedRuntimes[Builder_],\n Fields_,\n MiddlewareSpecs_,\n Layers\n >;\n} & {\n readonly publicPaginatedQuery: ExtendedMakePaginated<\n Fields_,\n MiddlewareSpecs_,\n Layers\n >;\n /**\n * Require more fields and attach more middleware after this profile's.\n */\n extend<\n Extension extends Profile.Fields = Profile.NoFields,\n Transforms extends Profile.Transforms = {},\n >(): <\n const Middleware_ extends ReadonlyArray<\n ProfileMiddleware<\n Profile.Apply<Profile.Both<Fields_, Extension>, string, any>\n >\n >,\n >(\n config: {\n readonly manifest?: Readonly<Record<string, ManifestSection.Any>>;\n readonly reservedArgument?: string;\n readonly middleware: Middleware_ &\n NotInherited<Middleware_, MiddlewareSpecs_>;\n } & OptionFree<Extension[\"Type\"]> &\n Profile.SchemaConfig<\n Transforms,\n Profile.Apply<Profile.Both<Fields_, Extension>, string, any>\n >,\n ) => Extended<\n Profile.Both<Fields_, Extension>,\n MiddlewareSpecs_ | SpecOf<Middleware_[number]>,\n [...Layers, Transforms]\n >;\n};\n\ntype RuntimeWrappers = Partial<\n Record<\n keyof Profile.Transforms,\n (thunk: () => any, info: Profile.Info<any>) => () => any\n >\n>;\n\nconst makeExtended = (\n middleware: ReadonlyArray<ProfileMiddleware<any>>,\n schemas: ReadonlyArray<RuntimeWrappers> = [],\n reservedArgument?: string,\n manifestSections: ReadonlyArray<ManifestSection.Entry> = [],\n): Extended<any, any> => {\n const extended =\n (\n makeSpec: (options: never) => object,\n paginated = false,\n reserves = false,\n ): any =>\n ({\n name,\n description,\n args,\n returns,\n item,\n error,\n ...fields\n }: Record<string, unknown>) => {\n const info = {\n name,\n ...(description === undefined ? {} : { description }),\n args: args ?? (() => ({})),\n fields,\n } as Profile.Info<unknown>;\n const thunks = {\n args,\n returns: paginated ? undefined : returns,\n item: paginated ? item : undefined,\n error,\n } as Partial<Record<keyof Profile.Transforms, () => any>>;\n for (const wrappers of schemas) {\n for (const key of [\"args\", \"returns\", \"item\", \"error\"] as const) {\n const wrap = wrappers[key];\n const thunk =\n thunks[key] ?? (key === \"error\" ? () => Schema.Never : undefined);\n if (wrap !== undefined && thunk !== undefined) {\n thunks[key] = () => wrap(thunk, info)();\n }\n }\n }\n return middleware.reduce(\n (spec: any, entry) =>\n MiddlewareSpec.isMiddlewareSpec(entry)\n ? spec.middleware(entry)\n : spec.middleware(entry.spec, entry.options(info)),\n Object.assign(makeSpec({ name, description, ...thunks } as never), {\n fields,\n manifestSections,\n ...(reserves && reservedArgument !== undefined\n ? { reservedArgument }\n : {}),\n }),\n );\n };\n\n return {\n publicQuery: extended(publicQuery),\n publicMutation: extended(publicMutation, false, true),\n publicAction: extended(publicAction, false, true),\n publicNodeAction: extended(publicNodeAction, false, true),\n publicPaginatedQuery: extended(publicPaginatedQuery, true),\n extend:\n () =>\n (config: {\n middleware: ReadonlyArray<ProfileMiddleware<any>>;\n schemas?: RuntimeWrappers;\n reservedArgument?: string;\n manifest?: Readonly<Record<string, ManifestSection.Any>>;\n }) =>\n makeExtended(\n [...middleware, ...config.middleware],\n [...schemas, config.schemas ?? {}],\n config.reservedArgument ?? reservedArgument,\n [\n ...manifestSections,\n ...Object.entries(config.manifest ?? {}).map(([key, section]) => ({\n key,\n section,\n })),\n ],\n ),\n };\n};\n\n/**\n * Public builders whose specs require and keep `Fields_`, with `middleware`.\n */\nexport const extend =\n <\n Fields_ extends Profile.Fields = Profile.NoFields,\n Transforms extends Profile.Transforms = {},\n >() =>\n <\n const Middleware_ extends ReadonlyArray<\n ProfileMiddleware<Profile.Apply<Fields_, string, any>>\n >,\n >(\n config: {\n readonly manifest?: Readonly<Record<string, ManifestSection.Any>>;\n readonly reservedArgument?: string;\n readonly middleware: Middleware_;\n } & OptionFree<Fields_[\"Type\"]> &\n Profile.SchemaConfig<Transforms, Profile.Apply<Fields_, string, any>>,\n ) =>\n makeExtended(\n config.middleware,\n [config.schemas ?? {}],\n config.reservedArgument,\n Object.entries(config.manifest ?? {}).map(([key, section]) => ({\n key,\n section,\n })),\n ) as Extended<Fields_, SpecOf<Middleware_[number]>, [Transforms]>;\n\ntype MatchingRegisteredFunction<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n> =\n RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"query\"\n ? RegisteredQuery<FunctionVisibility_, any, any>\n : RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"mutation\"\n ? RegisteredMutation<FunctionVisibility_, any, any>\n : RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"action\"\n ? RegisteredAction<FunctionVisibility_, any, any>\n : never;\n\ntype ExtractArgs<F> =\n F extends RegisteredQuery<any, infer A extends DefaultFunctionArgs, any>\n ? A\n : F extends RegisteredMutation<\n any,\n infer A extends DefaultFunctionArgs,\n any\n >\n ? A\n : F extends RegisteredAction<\n any,\n infer A extends DefaultFunctionArgs,\n any\n >\n ? A\n : never;\n\ntype ExtractReturns<F> =\n F extends RegisteredQuery<any, any, infer R>\n ? R\n : F extends RegisteredMutation<any, any, infer R>\n ? R\n : F extends RegisteredAction<any, any, infer R>\n ? R\n : never;\n\nconst makeConvex =\n <\n RuntimeAndFunctionType_ extends\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n >(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n ) =>\n <\n F extends MatchingRegisteredFunction<\n RuntimeAndFunctionType_,\n FunctionVisibility_\n >,\n >() =>\n <const Name_ extends string>(\n name: Name_,\n ): Builder<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Convex<ExtractArgs<F>, ExtractReturns<F>>\n > => {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n functionProvenance: FunctionProvenance.Convex<\n ExtractArgs<F>,\n ExtractReturns<F>\n >(),\n middlewareAttachments: [],\n }) as any;\n };\n\nexport const convexPublicQuery = makeConvex(\n RuntimeAndFunctionType.ConvexQuery,\n \"public\",\n);\nexport const convexInternalQuery = makeConvex(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const convexPublicMutation = makeConvex(\n RuntimeAndFunctionType.ConvexMutation,\n \"public\",\n);\nexport const convexInternalMutation = makeConvex(\n RuntimeAndFunctionType.ConvexMutation,\n \"internal\",\n);\nexport const convexPublicAction = makeConvex(\n RuntimeAndFunctionType.ConvexAction,\n \"public\",\n);\nexport const convexInternalAction = makeConvex(\n RuntimeAndFunctionType.ConvexAction,\n \"internal\",\n);\nexport const convexPublicNodeAction = makeConvex(\n RuntimeAndFunctionType.NodeAction,\n \"public\",\n);\nexport const convexInternalNodeAction = makeConvex(\n RuntimeAndFunctionType.NodeAction,\n \"internal\",\n);\n"],"mappings":"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"}
|
|
@@ -31,7 +31,17 @@ export interface Generate {
|
|
|
31
31
|
readonly errors: ReadonlyArray<string>;
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
/**
|
|
35
|
+
* What codegen hands a section's `summarize`: the `confect/` files its
|
|
36
|
+
* `generate` matched, and each function's description by path.
|
|
37
|
+
*/
|
|
38
|
+
export interface SummarizeInput<Value = unknown> {
|
|
39
|
+
readonly modules: GenerateInput["modules"];
|
|
40
|
+
readonly functions: Readonly<Record<string, Value>>;
|
|
41
|
+
}
|
|
42
|
+
export interface ManifestSection<Value = unknown, Data_ extends {
|
|
43
|
+
readonly format: number;
|
|
44
|
+
} = Data<Value>> {
|
|
35
45
|
readonly owner: string;
|
|
36
46
|
readonly format: number;
|
|
37
47
|
describe(input: {
|
|
@@ -39,14 +49,18 @@ export interface ManifestSection<Value = unknown> {
|
|
|
39
49
|
readonly spec: FunctionSpec.AnyWithProps;
|
|
40
50
|
readonly middleware: ReadonlyArray<MiddlewareSpec.AnyMiddlewareSpec>;
|
|
41
51
|
}): Value;
|
|
42
|
-
|
|
52
|
+
summarize?(input: SummarizeInput<Value>): Data_;
|
|
53
|
+
check?(next: Data_, previous: unknown): {
|
|
43
54
|
readonly errors: ReadonlyArray<string>;
|
|
44
55
|
readonly notes: ReadonlyArray<string>;
|
|
45
56
|
};
|
|
46
57
|
readonly generate?: Generate;
|
|
47
58
|
}
|
|
59
|
+
export type Any = ManifestSection<unknown, {
|
|
60
|
+
readonly format: number;
|
|
61
|
+
}>;
|
|
48
62
|
export interface Entry {
|
|
49
63
|
readonly key: string;
|
|
50
|
-
readonly section:
|
|
64
|
+
readonly section: Any;
|
|
51
65
|
}
|
|
52
66
|
//# sourceMappingURL=ManifestSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestSection.d.ts","sourceRoot":"","sources":["../src/ManifestSection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,IAAI,CAAC,KAAK,GAAG,OAAO;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACrD,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;QAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG;QAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KACxC,CAAC;CACH;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"ManifestSection.d.ts","sourceRoot":"","sources":["../src/ManifestSection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAE3D,MAAM,WAAW,IAAI,CAAC,KAAK,GAAG,OAAO;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACrD,CAAC,CAAC;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;QAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG;QAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KACxC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,KAAK,GAAG,OAAO;IAC7C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,eAAe,CAC9B,KAAK,GAAG,OAAO,EACf,KAAK,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;QACzC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;KACtE,GAAG,KAAK,CAAC;IACV,SAAS,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAChD,KAAK,CAAC,CACJ,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,OAAO,GAChB;QACD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KACvC,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAED,MAAM,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;CACvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManifestSection.js","names":[],"sources":["../src/ManifestSection.ts"],"sourcesContent":["import type * as FunctionSpec from \"./FunctionSpec.js\";\nimport type * as MiddlewareSpec from \"./MiddlewareSpec.js\";\n\nexport interface Data<Value = unknown> {\n readonly format: number;\n readonly functions: Readonly<Record<string, Value>>;\n}\n\n/**\n * What codegen hands a section's `render`: the exports of each `confect/` file\n * it matched, every registered function with the spec file declaring it, and\n * each mounted component with the specifier of its definition.\n */\nexport interface GenerateInput {\n readonly modules: ReadonlyArray<{\n readonly relativePath: string;\n readonly exports: Readonly<Record<string, unknown>>;\n }>;\n readonly functions: ReadonlyArray<{\n readonly path: string;\n readonly source: string;\n }>;\n readonly mounts: ReadonlyArray<{\n readonly name: string;\n readonly definition: string;\n }>;\n}\n\nexport interface Generate {\n readonly file: string;\n match(relativePath: string): boolean;\n render(input: GenerateInput): {\n readonly contents: string;\n readonly errors: ReadonlyArray<string>;\n };\n}\n\nexport interface
|
|
1
|
+
{"version":3,"file":"ManifestSection.js","names":[],"sources":["../src/ManifestSection.ts"],"sourcesContent":["import type * as FunctionSpec from \"./FunctionSpec.js\";\nimport type * as MiddlewareSpec from \"./MiddlewareSpec.js\";\n\nexport interface Data<Value = unknown> {\n readonly format: number;\n readonly functions: Readonly<Record<string, Value>>;\n}\n\n/**\n * What codegen hands a section's `render`: the exports of each `confect/` file\n * it matched, every registered function with the spec file declaring it, and\n * each mounted component with the specifier of its definition.\n */\nexport interface GenerateInput {\n readonly modules: ReadonlyArray<{\n readonly relativePath: string;\n readonly exports: Readonly<Record<string, unknown>>;\n }>;\n readonly functions: ReadonlyArray<{\n readonly path: string;\n readonly source: string;\n }>;\n readonly mounts: ReadonlyArray<{\n readonly name: string;\n readonly definition: string;\n }>;\n}\n\nexport interface Generate {\n readonly file: string;\n match(relativePath: string): boolean;\n render(input: GenerateInput): {\n readonly contents: string;\n readonly errors: ReadonlyArray<string>;\n };\n}\n\n/**\n * What codegen hands a section's `summarize`: the `confect/` files its\n * `generate` matched, and each function's description by path.\n */\nexport interface SummarizeInput<Value = unknown> {\n readonly modules: GenerateInput[\"modules\"];\n readonly functions: Readonly<Record<string, Value>>;\n}\n\nexport interface ManifestSection<\n Value = unknown,\n Data_ extends { readonly format: number } = Data<Value>,\n> {\n readonly owner: string;\n readonly format: number;\n describe(input: {\n readonly path: string;\n readonly spec: FunctionSpec.AnyWithProps;\n readonly middleware: ReadonlyArray<MiddlewareSpec.AnyMiddlewareSpec>;\n }): Value;\n summarize?(input: SummarizeInput<Value>): Data_;\n check?(\n next: Data_,\n previous: unknown,\n ): {\n readonly errors: ReadonlyArray<string>;\n readonly notes: ReadonlyArray<string>;\n };\n readonly generate?: Generate;\n}\n\nexport type Any = ManifestSection<unknown, { readonly format: number }>;\n\nexport interface Entry {\n readonly key: string;\n readonly section: Any;\n}\n"],"mappings":""}
|
package/dist/Ref.d.ts
CHANGED
|
@@ -173,7 +173,6 @@ convexFunctionNamespace: string, functionSpec: FunctionSpec_, groupMiddlewareAtt
|
|
|
173
173
|
*/
|
|
174
174
|
export declare const fromProvenance: (convexFunctionName: string, provenance: FunctionProvenance.AnyConfect, middlewareAttachments: ReadonlyArray<MiddlewareAttachment.MiddlewareAttachment>, functionReference?: ConvexFunctionReference<any, any>, functionType?: "query" | "mutation" | "action", reservedArgument?: string) => AnyConfect;
|
|
175
175
|
export declare const getConvexFunctionName: (ref: Any) => string;
|
|
176
|
-
export declare const getFunctionReference: <Ref_ extends Any>(ref: Ref_) => FunctionReference<Ref_>;
|
|
177
176
|
/**
|
|
178
177
|
* Adapt a native reference without assigning Confect codecs or typed errors.
|
|
179
178
|
*/
|
package/dist/Ref.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../src/Ref.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../src/Ref.ts"],"names":[],"mappings":"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"}
|
package/dist/Ref.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { defineProperty } from "./Lazy.js";
|
|
3
3
|
import { errorSchemas } from "./MiddlewareSpec.js";
|
|
4
|
+
import { getFunctionReference } from "./RefInternal.js";
|
|
4
5
|
import * as Schema from "effect/Schema";
|
|
5
6
|
import * as Predicate from "effect/Predicate";
|
|
6
|
-
import { getFunctionAddress
|
|
7
|
+
import { getFunctionAddress } from "convex/server";
|
|
7
8
|
import { ConvexError } from "convex/values";
|
|
8
9
|
import * as Effect from "effect/Effect";
|
|
9
10
|
import * as Match from "effect/Match";
|
|
@@ -25,7 +26,6 @@ var Ref_exports = /* @__PURE__ */ __exportAll({
|
|
|
25
26
|
fromFunctionReference: () => fromFunctionReference,
|
|
26
27
|
fromProvenance: () => fromProvenance,
|
|
27
28
|
getConvexFunctionName: () => getConvexFunctionName,
|
|
28
|
-
getFunctionReference: () => getFunctionReference,
|
|
29
29
|
hasErrorSchema: () => hasErrorSchema,
|
|
30
30
|
isConvexError: () => isConvexError,
|
|
31
31
|
isRef: () => isRef,
|
|
@@ -73,16 +73,6 @@ const fromProvenance = (convexFunctionName, provenance, middlewareAttachments, f
|
|
|
73
73
|
return ref;
|
|
74
74
|
};
|
|
75
75
|
const getConvexFunctionName = (ref) => ref.convexFunctionName;
|
|
76
|
-
const functionReferenceCache = /* @__PURE__ */ new Map();
|
|
77
|
-
const getFunctionReference = (ref) => {
|
|
78
|
-
if (ref.functionReference !== void 0) return ref.functionReference;
|
|
79
|
-
const convexFunctionName = getConvexFunctionName(ref);
|
|
80
|
-
const cached = functionReferenceCache.get(convexFunctionName);
|
|
81
|
-
if (cached !== void 0) return cached;
|
|
82
|
-
const functionReference = makeFunctionReference(convexFunctionName);
|
|
83
|
-
functionReferenceCache.set(convexFunctionName, functionReference);
|
|
84
|
-
return functionReference;
|
|
85
|
-
};
|
|
86
76
|
/**
|
|
87
77
|
* Adapt a native reference without assigning Confect codecs or typed errors.
|
|
88
78
|
*/
|
|
@@ -202,6 +192,6 @@ const runWithCodec = Effect.fnUntraced(function* (ref, args, call, mapUnknownErr
|
|
|
202
192
|
return yield* decodeReturns(ref, encodedReturns);
|
|
203
193
|
});
|
|
204
194
|
//#endregion
|
|
205
|
-
export { Ref_exports, TypeId, decodeArgsSync, decodeError, decodeErrorOption, decodeErrorOrElse, decodePaginationPageSync, decodeReturns, decodeReturnsSync, encodeArgs, encodeArgsSync, encodePaginatedQueryArgsSync, encodeReturnsSync, fromFunctionReference, fromProvenance, getConvexFunctionName,
|
|
195
|
+
export { Ref_exports, TypeId, decodeArgsSync, decodeError, decodeErrorOption, decodeErrorOrElse, decodePaginationPageSync, decodeReturns, decodeReturnsSync, encodeArgs, encodeArgsSync, encodePaginatedQueryArgsSync, encodeReturnsSync, fromFunctionReference, fromProvenance, getConvexFunctionName, hasErrorSchema, isConvexError, isRef, make, runWithCodec };
|
|
206
196
|
|
|
207
197
|
//# sourceMappingURL=Ref.js.map
|
package/dist/Ref.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ref.js","names":["MiddlewareSpec.errorSchemas"],"sources":["../src/Ref.ts"],"sourcesContent":["import type * as MiddlewareAttachment from \"./MiddlewareAttachment.js\";\nimport type {\n DefaultFunctionArgs,\n FunctionReference as ConvexFunctionReference,\n FunctionVisibility,\n PaginationOptions,\n PaginationResult,\n} from \"convex/server\";\nimport { getFunctionAddress, makeFunctionReference } from \"convex/server\";\nimport type { Value } from \"convex/values\";\nimport { ConvexError } from \"convex/values\";\nimport * as Effect from \"effect/Effect\";\nimport * as Match from \"effect/Match\";\nimport * as Option from \"effect/Option\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Schema from \"effect/Schema\";\nimport type * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport type * as FunctionSpec from \"./FunctionSpec.js\";\nimport * as Lazy from \"./Lazy.js\";\nimport * as MiddlewareSpec from \"./MiddlewareSpec.js\";\nimport type * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType.js\";\n\nexport const TypeId = \"~@confect/core/Ref\";\nexport type TypeId = typeof TypeId;\n\nexport interface Base<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_ = never,\n> {\n readonly [TypeId]: TypeId;\n readonly \"~RuntimeAndFunctionType\": RuntimeAndFunctionType_;\n readonly \"~FunctionVisibility\": FunctionVisibility_;\n readonly \"~Args\": Args_;\n // Concrete call inputs must not narrow across assignments. Erased refs and\n // pagination constraints use index signatures and keep their broad variance.\n readonly \"~ArgsVariance\"?: string extends keyof Args_\n ? unknown\n : (args: Args_) => void;\n readonly \"~Returns\": Returns_;\n readonly \"~Error\": Error_;\n readonly functionType?: RuntimeAndFunctionType_[\"functionType\"];\n readonly convexFunctionName: string;\n readonly reservedArgument?: string;\n /**\n * Preserved for component references and function handles, which have no\n * local name.\n */\n readonly functionReference?: ConvexFunctionReference<any, any>;\n}\n\n/**\n * A reference to a single Convex function, as callers see it: the wire name\n * plus the data needed to encode args, decode returns, and decode typed errors.\n * A ref is one of two shapes, keyed by the spec's provenance.\n */\nexport type Ref<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_ = never,\n> =\n | ConfectRefWithTypes<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n FunctionProvenance.ArgsFields,\n Args_,\n Returns_,\n Error_\n >\n | ConvexRef<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_,\n Returns_,\n Error_\n >;\n\nexport type ConfectRef<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n ArgsFields_ extends FunctionProvenance.ArgsFields,\n ReturnsSchema_ extends Schema.Codec<any, any>,\n ErrorSchema_ extends Schema.Codec<any, any> = never,\n MiddlewareError_ = never,\n MiddlewareEncodedError_ = never,\n> = ConfectRefWithTypes<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n ArgsFields_,\n Schema.Struct.Type<ArgsFields_>,\n ReturnsSchema_[\"Type\"],\n ErrorSchema_[\"Type\"] | MiddlewareError_,\n ReturnsSchema_,\n ErrorSchema_,\n ErrorSchema_[\"Encoded\"] | MiddlewareEncodedError_\n>;\n\n/**\n * Internal form used while mapping a spec to a ref. Supplying the already\n * derived value types avoids repeatedly expanding `Schema.Struct` for every\n * leaf in a generated ref tree; the public `ConfectRef` alias still derives the\n * same values from its fields and schemas.\n *\n * The codecs keep their own types so that a ref's wire encoding stays visible\n * to type-level checks, and `~EncodedError` carries the wire form of every\n * error the function can fail with, middleware included. A ref built from value\n * types alone (`Ref`) has no codecs to keep and erases them.\n */\ninterface ConfectRefWithTypes<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n ArgsFields_ extends FunctionProvenance.ArgsFields,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_,\n ReturnsSchema_ extends Schema.Codec<any, any> = Schema.Codec<any, any>,\n ErrorSchema_ extends Schema.Codec<any, any> = Schema.Codec<any, any>,\n EncodedError_ = any,\n> extends Base<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_,\n Returns_,\n Error_\n> {\n readonly _tag: \"Confect\";\n readonly args: FunctionProvenance.ArgsSchema<ArgsFields_>;\n readonly returns: ReturnsSchema_;\n readonly kind: FunctionProvenance.ConfectKind;\n readonly middlewareSpecs: ReadonlyArray<MiddlewareSpec.AnyMiddlewareSpec>;\n readonly middlewareAttachments: ReadonlyArray<MiddlewareAttachment.MiddlewareAttachment>;\n readonly error?: ErrorSchema_;\n readonly \"~EncodedError\": EncodedError_;\n}\n\nexport interface ConvexRef<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_ = never,\n> extends Base<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_,\n Returns_,\n Error_\n> {\n readonly _tag: \"Convex\";\n}\n\n/**\n * A ref's call contract without a visibility requirement. Use this for handlers\n * shared by a component's public ref and its host's internal binding. Args,\n * returns, errors, runtime and function kind remain constrained.\n */\nexport type Callable<Ref_ extends Any> = Ref<\n GetRuntimeAndFunctionType<Ref_>,\n FunctionVisibility,\n Args<Ref_>,\n Returns<Ref_>,\n Error<Ref_>\n>;\n\nexport type Any = Ref<any, any, any, any, any>;\n\n/**\n * Recognizes references by their runtime type identity.\n */\nexport const isRef = (value: unknown): value is Any =>\n Predicate.hasProperty(value, TypeId);\n\n/**\n * Erased Confect-provenance ref used by provenance-specific APIs.\n */\nexport type AnyConfect = Extract<Any, { readonly _tag: \"Confect\" }>;\n\nexport type AnyInternal = Ref<any, \"internal\", any, any, any>;\n\nexport type AnyPublic = Ref<any, \"public\", any, any, any>;\n\nexport type AnyQuery = Ref<\n RuntimeAndFunctionType.AnyQuery,\n FunctionVisibility,\n any,\n any,\n any\n>;\n\nexport type AnyPaginatedQuery = AnyQuery &\n Base<\n RuntimeAndFunctionType.AnyQuery,\n FunctionVisibility,\n {\n [key: string]: any;\n paginationOpts: PaginationOptions;\n },\n PaginationResult<any>,\n any\n >;\n\nexport type AnyMutation = Ref<\n RuntimeAndFunctionType.AnyMutation,\n FunctionVisibility,\n any,\n any,\n any\n>;\n\nexport type AnyAction = Ref<\n RuntimeAndFunctionType.AnyAction,\n FunctionVisibility,\n any,\n any,\n any\n>;\n\nexport type AnyPublicQuery = Ref<\n RuntimeAndFunctionType.AnyQuery,\n \"public\",\n any,\n any,\n any\n>;\n\nexport type AnyConfectPublicQuery = Extract<AnyPublicQuery, AnyConfect>;\n\nexport type AnyPublicPaginatedQuery = AnyPublicQuery & AnyPaginatedQuery;\n\nexport type AnyConfectPublicPaginatedQuery = AnyConfectPublicQuery &\n AnyPublicPaginatedQuery;\n\nexport type AnyPublicMutation = Ref<\n RuntimeAndFunctionType.AnyMutation,\n \"public\",\n any,\n any,\n any\n>;\n\nexport type AnyConfectPublicMutation = Extract<AnyPublicMutation, AnyConfect>;\n\nexport type AnyPublicAction = Ref<\n RuntimeAndFunctionType.AnyAction,\n \"public\",\n any,\n any,\n any\n>;\n\nexport type AnyConfectPublicAction = Extract<AnyPublicAction, AnyConfect>;\n\nexport type GetRuntimeAndFunctionType<Ref_> = Ref_ extends {\n readonly \"~RuntimeAndFunctionType\": infer RuntimeAndFunctionType_ extends\n RuntimeAndFunctionType.RuntimeAndFunctionType;\n}\n ? RuntimeAndFunctionType_\n : never;\n\nexport type GetRuntime<Ref_> = RuntimeAndFunctionType.GetRuntime<\n GetRuntimeAndFunctionType<Ref_>\n>;\n\nexport type GetFunctionType<Ref_> = RuntimeAndFunctionType.GetFunctionType<\n GetRuntimeAndFunctionType<Ref_>\n>;\n\nexport type GetFunctionVisibility<Ref_> = Ref_ extends {\n readonly \"~FunctionVisibility\": infer FunctionVisibility_;\n}\n ? FunctionVisibility_\n : never;\n\nexport type Args<Ref_> = Ref_ extends { readonly \"~Args\": infer Args_ }\n ? Args_\n : never;\n\n/**\n * The field map captured by a Confect-provenance ref.\n */\nexport type ArgsFields<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly args: {\n readonly fields: infer ArgsFields_ extends FunctionProvenance.ArgsFields;\n };\n}\n ? ArgsFields_\n : never;\n\n/**\n * The assembled args schema carried by a Confect-provenance ref.\n */\nexport type ArgsSchema<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly args: infer ArgsSchema_ extends FunctionProvenance.AnyArgsSchema;\n}\n ? ArgsSchema_\n : never;\n\nexport type OptionalArgs<Ref_ extends Any> = keyof Args<Ref_> extends never\n ? [args?: Args<Ref_>]\n : [args: Args<Ref_>];\n\nexport type Returns<Ref_> = Ref_ extends { readonly \"~Returns\": infer Returns_ }\n ? Returns_\n : never;\n\n/**\n * The returns codec carried by a Confect-provenance ref.\n */\nexport type ReturnsSchema<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly returns: infer ReturnsSchema_ extends Schema.Codec<any, any>;\n}\n ? ReturnsSchema_\n : never;\n\n/**\n * The wire form of every error a ref can fail with: its function's declared\n * error and its middleware's errors.\n */\nexport type EncodedError<Ref_> = Ref_ extends {\n readonly \"~EncodedError\": infer EncodedError_;\n}\n ? EncodedError_\n : never;\n\n/**\n * The function's own error codec carried by a Confect-provenance ref; errors\n * contributed by middleware are not part of it.\n */\nexport type ErrorSchema<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly error?: infer ErrorSchema_;\n}\n ? Extract<ErrorSchema_, Schema.Codec<any, any>>\n : never;\n\nexport type Error<Ref_> = Ref_ extends { readonly \"~Error\": infer Error_ }\n ? Error_\n : never;\n\nexport type FunctionReference<Ref_ extends Any> = ConvexFunctionReference<\n GetFunctionType<Ref_>,\n GetFunctionVisibility<Ref_>\n>;\n\n/**\n * The ref type of a function spec. Errors from middleware attached to the\n * function are included; pass the errors of middleware attached to its groups\n * as `MiddlewareError` and `MiddlewareEncodedError`.\n */\nexport type FromFunctionSpec<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n MiddlewareError = never,\n MiddlewareEncodedError = never,\n> = FromFunctionSpecHelper<\n FunctionSpec_,\n FunctionSpec.GetRuntimeAndFunctionType<FunctionSpec_>,\n FunctionSpec.GetFunctionVisibility<FunctionSpec_>,\n FunctionSpec.ArgsFields<FunctionSpec_>,\n FunctionSpec.Args<FunctionSpec_>,\n FunctionSpec.Returns<FunctionSpec_>,\n | FunctionSpec.Error<FunctionSpec_>\n | MiddlewareSpec.Error<FunctionSpec.MiddlewareSpecs<FunctionSpec_>>\n | MiddlewareError,\n FunctionSpec.ReturnsSchema<FunctionSpec_>,\n FunctionSpec.ErrorSchema<FunctionSpec_>,\n | FunctionSpec.EncodedError<FunctionSpec_>\n | MiddlewareSpec.EncodedError<FunctionSpec.MiddlewareSpecs<FunctionSpec_>>\n | MiddlewareEncodedError\n>;\n\ntype FromFunctionSpecHelper<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n ArgsFields_ extends FunctionProvenance.ArgsFields,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_,\n ReturnsSchema_ extends Schema.Codec<any, any>,\n ErrorSchema_ extends Schema.Codec<any, any>,\n EncodedError_,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConvex\n >\n ? ConvexRef<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_ extends DefaultFunctionArgs ? Args_ : never,\n Returns_,\n never\n >\n : FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConfect\n >\n ? ConfectRefWithTypes<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n ArgsFields_,\n Args_,\n Returns_,\n Error_,\n ReturnsSchema_,\n ErrorSchema_,\n EncodedError_\n >\n : Ref<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_,\n Returns_,\n Error_\n >;\n\nexport const make = <\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n GroupMiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec = never,\n>(\n /**\n * The namespace portion of a Convex function name, i.e. the part before the\n * colon. For example, for `myGroupDir/myGroupMod:myFunc` this would be\n * `myGroupDir/myGroupMod`.\n */\n convexFunctionNamespace: string,\n functionSpec: FunctionSpec_,\n groupMiddlewareAttachments: ReadonlyArray<\n MiddlewareAttachment.MiddlewareAttachment<GroupMiddlewareSpec_>\n > = [],\n): FromFunctionSpec<\n FunctionSpec_,\n MiddlewareSpec.Error<GroupMiddlewareSpec_>,\n MiddlewareSpec.EncodedError<GroupMiddlewareSpec_>\n> => {\n const convexFunctionName = `${convexFunctionNamespace}:${functionSpec.name}`;\n\n return Match.value(functionSpec.functionProvenance).pipe(\n Match.tag(\n \"Convex\",\n (): Any =>\n ({\n [TypeId]: TypeId,\n _tag: \"Convex\",\n functionType: functionSpec.runtimeAndFunctionType.functionType,\n convexFunctionName,\n }) as Any,\n ),\n Match.tag(\"Confect\", (provenance): Any =>\n fromProvenance(\n convexFunctionName,\n provenance,\n [...groupMiddlewareAttachments, ...functionSpec.middlewareAttachments],\n undefined,\n functionSpec.runtimeAndFunctionType.functionType,\n functionSpec.reservedArgument,\n ),\n ),\n Match.exhaustive,\n ) as FromFunctionSpec<\n FunctionSpec_,\n MiddlewareSpec.Error<GroupMiddlewareSpec_>,\n MiddlewareSpec.EncodedError<GroupMiddlewareSpec_>\n >;\n};\n\n/**\n * Build a Confect ref that runs with `provenance`'s codecs. Pass\n * `functionReference` when the function has no local name: an installed\n * component's function or a function handle. The ref reads `args`, `returns`\n * and `error` from the provenance on first use, so building it forces no\n * schema.\n */\nexport const fromProvenance = (\n convexFunctionName: string,\n provenance: FunctionProvenance.AnyConfect,\n middlewareAttachments: ReadonlyArray<MiddlewareAttachment.MiddlewareAttachment>,\n functionReference?: ConvexFunctionReference<any, any>,\n functionType?: \"query\" | \"mutation\" | \"action\",\n reservedArgument?: string,\n): AnyConfect => {\n const ref = {\n [TypeId]: TypeId as TypeId,\n _tag: \"Confect\" as const,\n ...(functionType === undefined ? {} : { functionType }),\n convexFunctionName,\n ...(reservedArgument === undefined ? {} : { reservedArgument }),\n ...(functionReference === undefined ? {} : { functionReference }),\n kind: provenance.kind,\n middlewareAttachments,\n get middlewareSpecs() {\n return middlewareAttachments.map(({ spec }) => spec);\n },\n };\n\n Lazy.defineProperty(ref, \"args\", () => provenance.args);\n Lazy.defineProperty(ref, \"returns\", () => provenance.returns);\n if (\"error\" in provenance) {\n Lazy.defineProperty(ref, \"error\", () => provenance.error);\n }\n\n return ref as unknown as AnyConfect;\n};\n\nexport const getConvexFunctionName = (ref: Any): string =>\n ref.convexFunctionName;\n\nconst functionReferenceCache = new Map<string, FunctionReference<Any>>();\n\nexport const getFunctionReference = <Ref_ extends Any>(\n ref: Ref_,\n): FunctionReference<Ref_> => {\n if (ref.functionReference !== undefined) {\n return ref.functionReference as FunctionReference<Ref_>;\n }\n const convexFunctionName = getConvexFunctionName(ref);\n\n const cached = functionReferenceCache.get(convexFunctionName);\n if (cached !== undefined) {\n return cached as FunctionReference<Ref_>;\n }\n\n const functionReference = makeFunctionReference(convexFunctionName);\n functionReferenceCache.set(convexFunctionName, functionReference);\n\n return functionReference as FunctionReference<Ref_>;\n};\n\n/**\n * Adapt a native reference without assigning Confect codecs or typed errors.\n */\nexport const fromFunctionReference = <\n Type extends \"query\" | \"mutation\" | \"action\",\n Visibility extends FunctionVisibility,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n>(\n functionReference: ConvexFunctionReference<Type, Visibility, Args_, Returns_>,\n functionType?: NoInfer<Type>,\n): ConvexRef<\n Extract<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n { readonly runtime: \"Convex\"; readonly functionType: Type }\n >,\n Visibility,\n Args_,\n Returns_\n> => {\n const address = getFunctionAddress(functionReference);\n return {\n [TypeId]: TypeId,\n _tag: \"Convex\",\n ...(functionType === undefined ? {} : { functionType }),\n convexFunctionName:\n address.name ??\n address.reference ??\n address.functionHandle ??\n \"<external function>\",\n functionReference,\n } as ConvexRef<\n Extract<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n { readonly runtime: \"Convex\"; readonly functionType: Type }\n >,\n Visibility,\n Args_,\n Returns_\n >;\n};\n\nexport const hasErrorSchema = (ref: Any): boolean =>\n Match.value(ref).pipe(\n Match.tag(\n \"Confect\",\n (confectRef) =>\n \"error\" in confectRef ||\n confectRef.middlewareSpecs.some(\n (middlewareSpec) => \"error\" in middlewareSpec,\n ),\n ),\n Match.tag(\"Convex\", () => false),\n Match.exhaustive,\n );\n\nexport const encodeArgs = <Ref_ extends Any>(\n ref: Ref_,\n args: Args<Ref_>,\n): Effect.Effect<unknown, Schema.SchemaError> =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.encodeEffect(confectRef.args)(args),\n ),\n Match.tag(\"Convex\", () => Effect.succeed(args)),\n Match.exhaustive,\n );\n\nexport const decodeReturns = <Ref_ extends Any>(\n ref: Ref_,\n returns: unknown,\n): Effect.Effect<Returns<Ref_>, Schema.SchemaError> =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.decodeUnknownEffect(confectRef.returns)(returns),\n ),\n Match.tag(\"Convex\", () => Effect.succeed(returns as Returns<Ref_>)),\n Match.exhaustive,\n );\n\nexport const encodeArgsSync = <Ref_ extends Any>(\n ref: Ref_,\n args: Args<Ref_>,\n): unknown =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.encodeSync(confectRef.args)(args),\n ),\n Match.tag(\"Convex\", () => args),\n Match.exhaustive,\n );\n\nexport const decodeArgsSync = <Ref_ extends Any>(\n ref: Ref_,\n encodedArgs: unknown,\n): Args<Ref_> =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.decodeUnknownSync(confectRef.args)(encodedArgs),\n ),\n Match.tag(\"Convex\", () => encodedArgs),\n Match.exhaustive,\n ) as Args<Ref_>;\n\nexport const encodeReturnsSync = <Ref_ extends Any>(\n ref: Ref_,\n returns: Returns<Ref_>,\n): unknown =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.encodeSync(confectRef.returns)(returns),\n ),\n Match.tag(\"Convex\", () => returns),\n Match.exhaustive,\n );\n\nexport const decodeReturnsSync = <Ref_ extends Any>(\n ref: Ref_,\n encodedReturns: unknown,\n): Returns<Ref_> =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.decodeUnknownSync(confectRef.returns)(encodedReturns),\n ),\n Match.tag(\"Convex\", () => encodedReturns),\n Match.exhaustive,\n ) as Returns<Ref_>;\n\nconst ConvexErrorIdentifier = Symbol.for(\"ConvexError\");\n\nexport const isConvexError = (error: unknown): error is ConvexError<Value> =>\n error instanceof ConvexError ||\n (typeof error === \"object\" &&\n error !== null &&\n ConvexErrorIdentifier in error);\n\n/**\n * Build a callback-style handler that decodes the ref's typed error from a\n * caught `ConvexError`, or else forwards the value to `mapUnknownError`. The\n * fallback is also invoked when the input _is_ a `ConvexError` but the ref\n * doesn't declare a typed-error schema—by definition such a value falls outside\n * the ref's error contract. Useful when adapting non-Effect APIs (e.g. emitter\n * callbacks for streamed subscriptions) to the same error semantics that\n * `runWithCodec` provides.\n */\nexport const decodeErrorOrElse =\n <Ref_ extends Any, E>(ref: Ref_, mapUnknownError: (error: unknown) => E) =>\n (error: unknown): Error<Ref_> | E => {\n if (isConvexError(error)) {\n const decoded = decodeErrorOption(ref, error.data);\n if (Option.isSome(decoded)) {\n return decoded.value;\n }\n }\n return mapUnknownError(error);\n };\n\nconst errorSchemaOf = (ref: Any): Option.Option<Schema.Codec<any, any>> =>\n Match.value(ref).pipe(\n Match.tag(\"Confect\", (confectRef) => {\n const schemas = [\n ...(\"error\" in confectRef && confectRef.error !== undefined\n ? [confectRef.error]\n : []),\n ...MiddlewareSpec.errorSchemas(confectRef.middlewareSpecs),\n ];\n return schemas.length === 0\n ? Option.none<Schema.Codec<any, any>>()\n : Option.some(\n schemas.length === 1 ? schemas[0]! : Schema.Union(schemas),\n );\n }),\n Match.tag(\"Convex\", () => Option.none<Schema.Codec<any, any>>()),\n Match.exhaustive,\n );\n\n/**\n * Decode `encodedError` against the ref's error schema—the function's declared\n * `error` schema unioned with its covering middlewares' error schemas. Returns\n * `None` if the ref declares no typed error at all (Confect ref without an\n * `error` schema and without failing middleware, or a Convex-provenance ref)—by\n * definition there's nothing to decode the value into, and the caller is\n * responsible for deciding what to do (typically: surface the original value as\n * a defect).\n */\nexport const decodeError = <Ref_ extends Any>(\n ref: Ref_,\n encodedError: unknown,\n): Effect.Effect<Option.Option<Error<Ref_>>, Schema.SchemaError> =>\n Option.match(errorSchemaOf(ref), {\n onNone: () => Effect.succeed(Option.none<Error<Ref_>>()),\n onSome: (schema) =>\n Effect.asSome(\n Schema.decodeUnknownEffect(schema)(encodedError),\n ) as Effect.Effect<Option.Option<Error<Ref_>>, Schema.SchemaError>,\n });\n\n/**\n * Synchronous counterpart to `decodeError`. Returns `None` when the value is\n * not this ref's typed error—either because the ref declares no `error` schema,\n * or because `encodedError` doesn't match the one it declares.\n *\n * The second case is reachable in normal operation: Convex raises its own\n * `ConvexError`s (an `InvalidCursor` pagination error, for instance), and those\n * never match a user-declared error schema. Callers pair this with a fallback\n * that surfaces the original error, so failing to decode must not throw—a\n * `ParseError` here would replace the real error with an opaque one and lose\n * the only useful diagnostic. Hence the `Option` suffix rather than `Sync`,\n * matching `Schema.decodeUnknownOption`: the sibling `*Sync` helpers in this\n * module all throw on a parse failure, and this one deliberately doesn't.\n */\nexport const decodeErrorOption = <Ref_ extends Any>(\n ref: Ref_,\n encodedError: unknown,\n): Option.Option<Error<Ref_>> =>\n Option.flatMap(\n errorSchemaOf(ref),\n (schema) =>\n Schema.decodeUnknownOption(schema)(encodedError) as Option.Option<\n Error<Ref_>\n >,\n );\n\nconst missingPaginatedProvenanceError = (ref: Any) =>\n new globalThis.Error(\n `Paginated query ref \"${getConvexFunctionName(ref)}\" was not built with ` +\n \"`FunctionSpec.publicPaginatedQuery` (or `FunctionSpec.internalPaginatedQuery`). \" +\n \"Paginated encoding and decoding require the user-args and item schemas \" +\n \"those constructors store. Define the function as, e.g.:\\n\\n\" +\n \" FunctionSpec.publicPaginatedQuery({\\n\" +\n ' name: \"...\",\\n' +\n \" args: () => ({ ... }), // optional; without paginationOpts\\n\" +\n \" item: () => ItemSchema,\\n\" +\n \" })\",\n );\n\nconst paginatedKind = (ref: AnyConfect): FunctionProvenance.Paginated =>\n Match.value(ref.kind).pipe(\n Match.tag(\"Paginated\", (kind) => kind),\n Match.tag(\"Standard\", () => {\n throw missingPaginatedProvenanceError(ref);\n }),\n Match.exhaustive,\n );\n\n/**\n * Encode the args of a paginated query ref via its user-args\n * schema—`paginationOpts` is excluded, since the pagination protocol fields are\n * managed by the client (e.g. `usePaginatedQuery` from `convex/react`), not by\n * the caller. Requires a ref built with `FunctionSpec.publicPaginatedQuery` (or\n * `internalPaginatedQuery`).\n */\nexport const encodePaginatedQueryArgsSync = <\n Ref_ extends AnyPublicPaginatedQuery,\n>(\n ref: Ref_,\n args: Omit<Args<Ref_>, \"paginationOpts\">,\n): unknown =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.encodeUnknownSync(paginatedKind(confectRef).userArgs)(args),\n ),\n Match.tag(\"Convex\", () => args),\n Match.exhaustive,\n );\n\n/**\n * Decode a page of a paginated query's results via the ref's item schema.\n * Requires a ref built with `FunctionSpec.publicPaginatedQuery` (or\n * `internalPaginatedQuery`).\n */\nexport const decodePaginationPageSync = <Ref_ extends AnyPublicPaginatedQuery>(\n ref: Ref_,\n encodedPage: unknown,\n): Returns<Ref_>[\"page\"] =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.decodeUnknownSync(paginatedKind(confectRef).page)(encodedPage),\n ),\n Match.tag(\"Convex\", () => encodedPage),\n Match.exhaustive,\n ) as Returns<Ref_>[\"page\"];\n\n/**\n * Encode args via the ref's args schema, invoke `call`, decode returns via the\n * ref's returns schema, and translate any thrown `ConvexError` into the ref's\n * typed error. Anything else the Promise rejects with—network failures,\n * server-side runtime errors, validation failures, etc.—is passed to\n * `mapUnknownError` to be turned into a typed `E`, or surfaced as a defect when\n * no handler is provided.\n */\nexport const runWithCodec = Effect.fnUntraced(function* <\n Ref_ extends Any,\n E = never,\n>(\n ref: Ref_,\n args: Args<Ref_>,\n call: (\n functionReference: FunctionReference<Ref_>,\n encodedArgs: unknown,\n ) => PromiseLike<unknown>,\n mapUnknownError?: (error: unknown) => E,\n): Effect.fn.Return<Returns<Ref_>, E | Error<Ref_> | Schema.SchemaError> {\n const functionReference = getFunctionReference(ref);\n const invoke = (\n encodedArgs: unknown,\n ): Effect.Effect<unknown, Error<Ref_> | E> =>\n Effect.tryPromise({\n try: () => Promise.resolve(call(functionReference, encodedArgs)),\n catch: (error): Error<Ref_> | E => {\n if (isConvexError(error)) {\n const decoded = decodeErrorOption(ref, error.data);\n if (Option.isSome(decoded)) {\n return decoded.value;\n }\n }\n if (mapUnknownError !== undefined) {\n return mapUnknownError(error);\n }\n throw error;\n },\n });\n\n const encodedArgs = yield* encodeArgs(ref, args);\n const encodedReturns = yield* invoke(encodedArgs);\n return yield* decodeReturns(ref, encodedReturns);\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Ref.js","names":["MiddlewareSpec.errorSchemas"],"sources":["../src/Ref.ts"],"sourcesContent":["import type * as MiddlewareAttachment from \"./MiddlewareAttachment.js\";\nimport type {\n DefaultFunctionArgs,\n FunctionReference as ConvexFunctionReference,\n FunctionVisibility,\n PaginationOptions,\n PaginationResult,\n} from \"convex/server\";\nimport { getFunctionAddress } from \"convex/server\";\nimport type { Value } from \"convex/values\";\nimport { ConvexError } from \"convex/values\";\nimport * as Effect from \"effect/Effect\";\nimport * as Match from \"effect/Match\";\nimport * as Option from \"effect/Option\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Schema from \"effect/Schema\";\nimport type * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport type * as FunctionSpec from \"./FunctionSpec.js\";\nimport * as Lazy from \"./Lazy.js\";\nimport * as MiddlewareSpec from \"./MiddlewareSpec.js\";\nimport { getFunctionReference } from \"./RefInternal.js\";\nimport type * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType.js\";\n\nexport const TypeId = \"~@confect/core/Ref\";\nexport type TypeId = typeof TypeId;\n\nexport interface Base<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_ = never,\n> {\n readonly [TypeId]: TypeId;\n readonly \"~RuntimeAndFunctionType\": RuntimeAndFunctionType_;\n readonly \"~FunctionVisibility\": FunctionVisibility_;\n readonly \"~Args\": Args_;\n // Concrete call inputs must not narrow across assignments. Erased refs and\n // pagination constraints use index signatures and keep their broad variance.\n readonly \"~ArgsVariance\"?: string extends keyof Args_\n ? unknown\n : (args: Args_) => void;\n readonly \"~Returns\": Returns_;\n readonly \"~Error\": Error_;\n readonly functionType?: RuntimeAndFunctionType_[\"functionType\"];\n readonly convexFunctionName: string;\n readonly reservedArgument?: string;\n /**\n * Preserved for component references and function handles, which have no\n * local name.\n */\n readonly functionReference?: ConvexFunctionReference<any, any>;\n}\n\n/**\n * A reference to a single Convex function, as callers see it: the wire name\n * plus the data needed to encode args, decode returns, and decode typed errors.\n * A ref is one of two shapes, keyed by the spec's provenance.\n */\nexport type Ref<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_ = never,\n> =\n | ConfectRefWithTypes<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n FunctionProvenance.ArgsFields,\n Args_,\n Returns_,\n Error_\n >\n | ConvexRef<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_,\n Returns_,\n Error_\n >;\n\nexport type ConfectRef<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n ArgsFields_ extends FunctionProvenance.ArgsFields,\n ReturnsSchema_ extends Schema.Codec<any, any>,\n ErrorSchema_ extends Schema.Codec<any, any> = never,\n MiddlewareError_ = never,\n MiddlewareEncodedError_ = never,\n> = ConfectRefWithTypes<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n ArgsFields_,\n Schema.Struct.Type<ArgsFields_>,\n ReturnsSchema_[\"Type\"],\n ErrorSchema_[\"Type\"] | MiddlewareError_,\n ReturnsSchema_,\n ErrorSchema_,\n ErrorSchema_[\"Encoded\"] | MiddlewareEncodedError_\n>;\n\n/**\n * Internal form used while mapping a spec to a ref. Supplying the already\n * derived value types avoids repeatedly expanding `Schema.Struct` for every\n * leaf in a generated ref tree; the public `ConfectRef` alias still derives the\n * same values from its fields and schemas.\n *\n * The codecs keep their own types so that a ref's wire encoding stays visible\n * to type-level checks, and `~EncodedError` carries the wire form of every\n * error the function can fail with, middleware included. A ref built from value\n * types alone (`Ref`) has no codecs to keep and erases them.\n */\ninterface ConfectRefWithTypes<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n ArgsFields_ extends FunctionProvenance.ArgsFields,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_,\n ReturnsSchema_ extends Schema.Codec<any, any> = Schema.Codec<any, any>,\n ErrorSchema_ extends Schema.Codec<any, any> = Schema.Codec<any, any>,\n EncodedError_ = any,\n> extends Base<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_,\n Returns_,\n Error_\n> {\n readonly _tag: \"Confect\";\n readonly args: FunctionProvenance.ArgsSchema<ArgsFields_>;\n readonly returns: ReturnsSchema_;\n readonly kind: FunctionProvenance.ConfectKind;\n readonly middlewareSpecs: ReadonlyArray<MiddlewareSpec.AnyMiddlewareSpec>;\n readonly middlewareAttachments: ReadonlyArray<MiddlewareAttachment.MiddlewareAttachment>;\n readonly error?: ErrorSchema_;\n readonly \"~EncodedError\": EncodedError_;\n}\n\nexport interface ConvexRef<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_ = never,\n> extends Base<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_,\n Returns_,\n Error_\n> {\n readonly _tag: \"Convex\";\n}\n\n/**\n * A ref's call contract without a visibility requirement. Use this for handlers\n * shared by a component's public ref and its host's internal binding. Args,\n * returns, errors, runtime and function kind remain constrained.\n */\nexport type Callable<Ref_ extends Any> = Ref<\n GetRuntimeAndFunctionType<Ref_>,\n FunctionVisibility,\n Args<Ref_>,\n Returns<Ref_>,\n Error<Ref_>\n>;\n\nexport type Any = Ref<any, any, any, any, any>;\n\n/**\n * Recognizes references by their runtime type identity.\n */\nexport const isRef = (value: unknown): value is Any =>\n Predicate.hasProperty(value, TypeId);\n\n/**\n * Erased Confect-provenance ref used by provenance-specific APIs.\n */\nexport type AnyConfect = Extract<Any, { readonly _tag: \"Confect\" }>;\n\nexport type AnyInternal = Ref<any, \"internal\", any, any, any>;\n\nexport type AnyPublic = Ref<any, \"public\", any, any, any>;\n\nexport type AnyQuery = Ref<\n RuntimeAndFunctionType.AnyQuery,\n FunctionVisibility,\n any,\n any,\n any\n>;\n\nexport type AnyPaginatedQuery = AnyQuery &\n Base<\n RuntimeAndFunctionType.AnyQuery,\n FunctionVisibility,\n {\n [key: string]: any;\n paginationOpts: PaginationOptions;\n },\n PaginationResult<any>,\n any\n >;\n\nexport type AnyMutation = Ref<\n RuntimeAndFunctionType.AnyMutation,\n FunctionVisibility,\n any,\n any,\n any\n>;\n\nexport type AnyAction = Ref<\n RuntimeAndFunctionType.AnyAction,\n FunctionVisibility,\n any,\n any,\n any\n>;\n\nexport type AnyPublicQuery = Ref<\n RuntimeAndFunctionType.AnyQuery,\n \"public\",\n any,\n any,\n any\n>;\n\nexport type AnyConfectPublicQuery = Extract<AnyPublicQuery, AnyConfect>;\n\nexport type AnyPublicPaginatedQuery = AnyPublicQuery & AnyPaginatedQuery;\n\nexport type AnyConfectPublicPaginatedQuery = AnyConfectPublicQuery &\n AnyPublicPaginatedQuery;\n\nexport type AnyPublicMutation = Ref<\n RuntimeAndFunctionType.AnyMutation,\n \"public\",\n any,\n any,\n any\n>;\n\nexport type AnyConfectPublicMutation = Extract<AnyPublicMutation, AnyConfect>;\n\nexport type AnyPublicAction = Ref<\n RuntimeAndFunctionType.AnyAction,\n \"public\",\n any,\n any,\n any\n>;\n\nexport type AnyConfectPublicAction = Extract<AnyPublicAction, AnyConfect>;\n\nexport type GetRuntimeAndFunctionType<Ref_> = Ref_ extends {\n readonly \"~RuntimeAndFunctionType\": infer RuntimeAndFunctionType_ extends\n RuntimeAndFunctionType.RuntimeAndFunctionType;\n}\n ? RuntimeAndFunctionType_\n : never;\n\nexport type GetRuntime<Ref_> = RuntimeAndFunctionType.GetRuntime<\n GetRuntimeAndFunctionType<Ref_>\n>;\n\nexport type GetFunctionType<Ref_> = RuntimeAndFunctionType.GetFunctionType<\n GetRuntimeAndFunctionType<Ref_>\n>;\n\nexport type GetFunctionVisibility<Ref_> = Ref_ extends {\n readonly \"~FunctionVisibility\": infer FunctionVisibility_;\n}\n ? FunctionVisibility_\n : never;\n\nexport type Args<Ref_> = Ref_ extends { readonly \"~Args\": infer Args_ }\n ? Args_\n : never;\n\n/**\n * The field map captured by a Confect-provenance ref.\n */\nexport type ArgsFields<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly args: {\n readonly fields: infer ArgsFields_ extends FunctionProvenance.ArgsFields;\n };\n}\n ? ArgsFields_\n : never;\n\n/**\n * The assembled args schema carried by a Confect-provenance ref.\n */\nexport type ArgsSchema<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly args: infer ArgsSchema_ extends FunctionProvenance.AnyArgsSchema;\n}\n ? ArgsSchema_\n : never;\n\nexport type OptionalArgs<Ref_ extends Any> = keyof Args<Ref_> extends never\n ? [args?: Args<Ref_>]\n : [args: Args<Ref_>];\n\nexport type Returns<Ref_> = Ref_ extends { readonly \"~Returns\": infer Returns_ }\n ? Returns_\n : never;\n\n/**\n * The returns codec carried by a Confect-provenance ref.\n */\nexport type ReturnsSchema<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly returns: infer ReturnsSchema_ extends Schema.Codec<any, any>;\n}\n ? ReturnsSchema_\n : never;\n\n/**\n * The wire form of every error a ref can fail with: its function's declared\n * error and its middleware's errors.\n */\nexport type EncodedError<Ref_> = Ref_ extends {\n readonly \"~EncodedError\": infer EncodedError_;\n}\n ? EncodedError_\n : never;\n\n/**\n * The function's own error codec carried by a Confect-provenance ref; errors\n * contributed by middleware are not part of it.\n */\nexport type ErrorSchema<Ref_> = Ref_ extends {\n readonly _tag: \"Confect\";\n readonly error?: infer ErrorSchema_;\n}\n ? Extract<ErrorSchema_, Schema.Codec<any, any>>\n : never;\n\nexport type Error<Ref_> = Ref_ extends { readonly \"~Error\": infer Error_ }\n ? Error_\n : never;\n\nexport type FunctionReference<Ref_ extends Any> = ConvexFunctionReference<\n GetFunctionType<Ref_>,\n GetFunctionVisibility<Ref_>\n>;\n\n/**\n * The ref type of a function spec. Errors from middleware attached to the\n * function are included; pass the errors of middleware attached to its groups\n * as `MiddlewareError` and `MiddlewareEncodedError`.\n */\nexport type FromFunctionSpec<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n MiddlewareError = never,\n MiddlewareEncodedError = never,\n> = FromFunctionSpecHelper<\n FunctionSpec_,\n FunctionSpec.GetRuntimeAndFunctionType<FunctionSpec_>,\n FunctionSpec.GetFunctionVisibility<FunctionSpec_>,\n FunctionSpec.ArgsFields<FunctionSpec_>,\n FunctionSpec.Args<FunctionSpec_>,\n FunctionSpec.Returns<FunctionSpec_>,\n | FunctionSpec.Error<FunctionSpec_>\n | MiddlewareSpec.Error<FunctionSpec.MiddlewareSpecs<FunctionSpec_>>\n | MiddlewareError,\n FunctionSpec.ReturnsSchema<FunctionSpec_>,\n FunctionSpec.ErrorSchema<FunctionSpec_>,\n | FunctionSpec.EncodedError<FunctionSpec_>\n | MiddlewareSpec.EncodedError<FunctionSpec.MiddlewareSpecs<FunctionSpec_>>\n | MiddlewareEncodedError\n>;\n\ntype FromFunctionSpecHelper<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n ArgsFields_ extends FunctionProvenance.ArgsFields,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n Error_,\n ReturnsSchema_ extends Schema.Codec<any, any>,\n ErrorSchema_ extends Schema.Codec<any, any>,\n EncodedError_,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConvex\n >\n ? ConvexRef<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_ extends DefaultFunctionArgs ? Args_ : never,\n Returns_,\n never\n >\n : FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConfect\n >\n ? ConfectRefWithTypes<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n ArgsFields_,\n Args_,\n Returns_,\n Error_,\n ReturnsSchema_,\n ErrorSchema_,\n EncodedError_\n >\n : Ref<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Args_,\n Returns_,\n Error_\n >;\n\nexport const make = <\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n GroupMiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec = never,\n>(\n /**\n * The namespace portion of a Convex function name, i.e. the part before the\n * colon. For example, for `myGroupDir/myGroupMod:myFunc` this would be\n * `myGroupDir/myGroupMod`.\n */\n convexFunctionNamespace: string,\n functionSpec: FunctionSpec_,\n groupMiddlewareAttachments: ReadonlyArray<\n MiddlewareAttachment.MiddlewareAttachment<GroupMiddlewareSpec_>\n > = [],\n): FromFunctionSpec<\n FunctionSpec_,\n MiddlewareSpec.Error<GroupMiddlewareSpec_>,\n MiddlewareSpec.EncodedError<GroupMiddlewareSpec_>\n> => {\n const convexFunctionName = `${convexFunctionNamespace}:${functionSpec.name}`;\n\n return Match.value(functionSpec.functionProvenance).pipe(\n Match.tag(\n \"Convex\",\n (): Any =>\n ({\n [TypeId]: TypeId,\n _tag: \"Convex\",\n functionType: functionSpec.runtimeAndFunctionType.functionType,\n convexFunctionName,\n }) as Any,\n ),\n Match.tag(\"Confect\", (provenance): Any =>\n fromProvenance(\n convexFunctionName,\n provenance,\n [...groupMiddlewareAttachments, ...functionSpec.middlewareAttachments],\n undefined,\n functionSpec.runtimeAndFunctionType.functionType,\n functionSpec.reservedArgument,\n ),\n ),\n Match.exhaustive,\n ) as FromFunctionSpec<\n FunctionSpec_,\n MiddlewareSpec.Error<GroupMiddlewareSpec_>,\n MiddlewareSpec.EncodedError<GroupMiddlewareSpec_>\n >;\n};\n\n/**\n * Build a Confect ref that runs with `provenance`'s codecs. Pass\n * `functionReference` when the function has no local name: an installed\n * component's function or a function handle. The ref reads `args`, `returns`\n * and `error` from the provenance on first use, so building it forces no\n * schema.\n */\nexport const fromProvenance = (\n convexFunctionName: string,\n provenance: FunctionProvenance.AnyConfect,\n middlewareAttachments: ReadonlyArray<MiddlewareAttachment.MiddlewareAttachment>,\n functionReference?: ConvexFunctionReference<any, any>,\n functionType?: \"query\" | \"mutation\" | \"action\",\n reservedArgument?: string,\n): AnyConfect => {\n const ref = {\n [TypeId]: TypeId as TypeId,\n _tag: \"Confect\" as const,\n ...(functionType === undefined ? {} : { functionType }),\n convexFunctionName,\n ...(reservedArgument === undefined ? {} : { reservedArgument }),\n ...(functionReference === undefined ? {} : { functionReference }),\n kind: provenance.kind,\n middlewareAttachments,\n get middlewareSpecs() {\n return middlewareAttachments.map(({ spec }) => spec);\n },\n };\n\n Lazy.defineProperty(ref, \"args\", () => provenance.args);\n Lazy.defineProperty(ref, \"returns\", () => provenance.returns);\n if (\"error\" in provenance) {\n Lazy.defineProperty(ref, \"error\", () => provenance.error);\n }\n\n return ref as unknown as AnyConfect;\n};\n\nexport const getConvexFunctionName = (ref: Any): string =>\n ref.convexFunctionName;\n\n/**\n * Adapt a native reference without assigning Confect codecs or typed errors.\n */\nexport const fromFunctionReference = <\n Type extends \"query\" | \"mutation\" | \"action\",\n Visibility extends FunctionVisibility,\n Args_ extends DefaultFunctionArgs,\n Returns_,\n>(\n functionReference: ConvexFunctionReference<Type, Visibility, Args_, Returns_>,\n functionType?: NoInfer<Type>,\n): ConvexRef<\n Extract<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n { readonly runtime: \"Convex\"; readonly functionType: Type }\n >,\n Visibility,\n Args_,\n Returns_\n> => {\n const address = getFunctionAddress(functionReference);\n return {\n [TypeId]: TypeId,\n _tag: \"Convex\",\n ...(functionType === undefined ? {} : { functionType }),\n convexFunctionName:\n address.name ??\n address.reference ??\n address.functionHandle ??\n \"<external function>\",\n functionReference,\n } as ConvexRef<\n Extract<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n { readonly runtime: \"Convex\"; readonly functionType: Type }\n >,\n Visibility,\n Args_,\n Returns_\n >;\n};\n\nexport const hasErrorSchema = (ref: Any): boolean =>\n Match.value(ref).pipe(\n Match.tag(\n \"Confect\",\n (confectRef) =>\n \"error\" in confectRef ||\n confectRef.middlewareSpecs.some(\n (middlewareSpec) => \"error\" in middlewareSpec,\n ),\n ),\n Match.tag(\"Convex\", () => false),\n Match.exhaustive,\n );\n\nexport const encodeArgs = <Ref_ extends Any>(\n ref: Ref_,\n args: Args<Ref_>,\n): Effect.Effect<unknown, Schema.SchemaError> =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.encodeEffect(confectRef.args)(args),\n ),\n Match.tag(\"Convex\", () => Effect.succeed(args)),\n Match.exhaustive,\n );\n\nexport const decodeReturns = <Ref_ extends Any>(\n ref: Ref_,\n returns: unknown,\n): Effect.Effect<Returns<Ref_>, Schema.SchemaError> =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.decodeUnknownEffect(confectRef.returns)(returns),\n ),\n Match.tag(\"Convex\", () => Effect.succeed(returns as Returns<Ref_>)),\n Match.exhaustive,\n );\n\nexport const encodeArgsSync = <Ref_ extends Any>(\n ref: Ref_,\n args: Args<Ref_>,\n): unknown =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.encodeSync(confectRef.args)(args),\n ),\n Match.tag(\"Convex\", () => args),\n Match.exhaustive,\n );\n\nexport const decodeArgsSync = <Ref_ extends Any>(\n ref: Ref_,\n encodedArgs: unknown,\n): Args<Ref_> =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.decodeUnknownSync(confectRef.args)(encodedArgs),\n ),\n Match.tag(\"Convex\", () => encodedArgs),\n Match.exhaustive,\n ) as Args<Ref_>;\n\nexport const encodeReturnsSync = <Ref_ extends Any>(\n ref: Ref_,\n returns: Returns<Ref_>,\n): unknown =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.encodeSync(confectRef.returns)(returns),\n ),\n Match.tag(\"Convex\", () => returns),\n Match.exhaustive,\n );\n\nexport const decodeReturnsSync = <Ref_ extends Any>(\n ref: Ref_,\n encodedReturns: unknown,\n): Returns<Ref_> =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.decodeUnknownSync(confectRef.returns)(encodedReturns),\n ),\n Match.tag(\"Convex\", () => encodedReturns),\n Match.exhaustive,\n ) as Returns<Ref_>;\n\nconst ConvexErrorIdentifier = Symbol.for(\"ConvexError\");\n\nexport const isConvexError = (error: unknown): error is ConvexError<Value> =>\n error instanceof ConvexError ||\n (typeof error === \"object\" &&\n error !== null &&\n ConvexErrorIdentifier in error);\n\n/**\n * Build a callback-style handler that decodes the ref's typed error from a\n * caught `ConvexError`, or else forwards the value to `mapUnknownError`. The\n * fallback is also invoked when the input _is_ a `ConvexError` but the ref\n * doesn't declare a typed-error schema—by definition such a value falls outside\n * the ref's error contract. Useful when adapting non-Effect APIs (e.g. emitter\n * callbacks for streamed subscriptions) to the same error semantics that\n * `runWithCodec` provides.\n */\nexport const decodeErrorOrElse =\n <Ref_ extends Any, E>(ref: Ref_, mapUnknownError: (error: unknown) => E) =>\n (error: unknown): Error<Ref_> | E => {\n if (isConvexError(error)) {\n const decoded = decodeErrorOption(ref, error.data);\n if (Option.isSome(decoded)) {\n return decoded.value;\n }\n }\n return mapUnknownError(error);\n };\n\nconst errorSchemaOf = (ref: Any): Option.Option<Schema.Codec<any, any>> =>\n Match.value(ref).pipe(\n Match.tag(\"Confect\", (confectRef) => {\n const schemas = [\n ...(\"error\" in confectRef && confectRef.error !== undefined\n ? [confectRef.error]\n : []),\n ...MiddlewareSpec.errorSchemas(confectRef.middlewareSpecs),\n ];\n return schemas.length === 0\n ? Option.none<Schema.Codec<any, any>>()\n : Option.some(\n schemas.length === 1 ? schemas[0]! : Schema.Union(schemas),\n );\n }),\n Match.tag(\"Convex\", () => Option.none<Schema.Codec<any, any>>()),\n Match.exhaustive,\n );\n\n/**\n * Decode `encodedError` against the ref's error schema—the function's declared\n * `error` schema unioned with its covering middlewares' error schemas. Returns\n * `None` if the ref declares no typed error at all (Confect ref without an\n * `error` schema and without failing middleware, or a Convex-provenance ref)—by\n * definition there's nothing to decode the value into, and the caller is\n * responsible for deciding what to do (typically: surface the original value as\n * a defect).\n */\nexport const decodeError = <Ref_ extends Any>(\n ref: Ref_,\n encodedError: unknown,\n): Effect.Effect<Option.Option<Error<Ref_>>, Schema.SchemaError> =>\n Option.match(errorSchemaOf(ref), {\n onNone: () => Effect.succeed(Option.none<Error<Ref_>>()),\n onSome: (schema) =>\n Effect.asSome(\n Schema.decodeUnknownEffect(schema)(encodedError),\n ) as Effect.Effect<Option.Option<Error<Ref_>>, Schema.SchemaError>,\n });\n\n/**\n * Synchronous counterpart to `decodeError`. Returns `None` when the value is\n * not this ref's typed error—either because the ref declares no `error` schema,\n * or because `encodedError` doesn't match the one it declares.\n *\n * The second case is reachable in normal operation: Convex raises its own\n * `ConvexError`s (an `InvalidCursor` pagination error, for instance), and those\n * never match a user-declared error schema. Callers pair this with a fallback\n * that surfaces the original error, so failing to decode must not throw—a\n * `ParseError` here would replace the real error with an opaque one and lose\n * the only useful diagnostic. Hence the `Option` suffix rather than `Sync`,\n * matching `Schema.decodeUnknownOption`: the sibling `*Sync` helpers in this\n * module all throw on a parse failure, and this one deliberately doesn't.\n */\nexport const decodeErrorOption = <Ref_ extends Any>(\n ref: Ref_,\n encodedError: unknown,\n): Option.Option<Error<Ref_>> =>\n Option.flatMap(\n errorSchemaOf(ref),\n (schema) =>\n Schema.decodeUnknownOption(schema)(encodedError) as Option.Option<\n Error<Ref_>\n >,\n );\n\nconst missingPaginatedProvenanceError = (ref: Any) =>\n new globalThis.Error(\n `Paginated query ref \"${getConvexFunctionName(ref)}\" was not built with ` +\n \"`FunctionSpec.publicPaginatedQuery` (or `FunctionSpec.internalPaginatedQuery`). \" +\n \"Paginated encoding and decoding require the user-args and item schemas \" +\n \"those constructors store. Define the function as, e.g.:\\n\\n\" +\n \" FunctionSpec.publicPaginatedQuery({\\n\" +\n ' name: \"...\",\\n' +\n \" args: () => ({ ... }), // optional; without paginationOpts\\n\" +\n \" item: () => ItemSchema,\\n\" +\n \" })\",\n );\n\nconst paginatedKind = (ref: AnyConfect): FunctionProvenance.Paginated =>\n Match.value(ref.kind).pipe(\n Match.tag(\"Paginated\", (kind) => kind),\n Match.tag(\"Standard\", () => {\n throw missingPaginatedProvenanceError(ref);\n }),\n Match.exhaustive,\n );\n\n/**\n * Encode the args of a paginated query ref via its user-args\n * schema—`paginationOpts` is excluded, since the pagination protocol fields are\n * managed by the client (e.g. `usePaginatedQuery` from `convex/react`), not by\n * the caller. Requires a ref built with `FunctionSpec.publicPaginatedQuery` (or\n * `internalPaginatedQuery`).\n */\nexport const encodePaginatedQueryArgsSync = <\n Ref_ extends AnyPublicPaginatedQuery,\n>(\n ref: Ref_,\n args: Omit<Args<Ref_>, \"paginationOpts\">,\n): unknown =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.encodeUnknownSync(paginatedKind(confectRef).userArgs)(args),\n ),\n Match.tag(\"Convex\", () => args),\n Match.exhaustive,\n );\n\n/**\n * Decode a page of a paginated query's results via the ref's item schema.\n * Requires a ref built with `FunctionSpec.publicPaginatedQuery` (or\n * `internalPaginatedQuery`).\n */\nexport const decodePaginationPageSync = <Ref_ extends AnyPublicPaginatedQuery>(\n ref: Ref_,\n encodedPage: unknown,\n): Returns<Ref_>[\"page\"] =>\n Match.value<Any>(ref).pipe(\n Match.tag(\"Confect\", (confectRef) =>\n Schema.decodeUnknownSync(paginatedKind(confectRef).page)(encodedPage),\n ),\n Match.tag(\"Convex\", () => encodedPage),\n Match.exhaustive,\n ) as Returns<Ref_>[\"page\"];\n\n/**\n * Encode args via the ref's args schema, invoke `call`, decode returns via the\n * ref's returns schema, and translate any thrown `ConvexError` into the ref's\n * typed error. Anything else the Promise rejects with—network failures,\n * server-side runtime errors, validation failures, etc.—is passed to\n * `mapUnknownError` to be turned into a typed `E`, or surfaced as a defect when\n * no handler is provided.\n */\nexport const runWithCodec = Effect.fnUntraced(function* <\n Ref_ extends Any,\n E = never,\n>(\n ref: Ref_,\n args: Args<Ref_>,\n call: (\n functionReference: FunctionReference<Ref_>,\n encodedArgs: unknown,\n ) => PromiseLike<unknown>,\n mapUnknownError?: (error: unknown) => E,\n): Effect.fn.Return<Returns<Ref_>, E | Error<Ref_> | Schema.SchemaError> {\n const functionReference = getFunctionReference(ref);\n const invoke = (\n encodedArgs: unknown,\n ): Effect.Effect<unknown, Error<Ref_> | E> =>\n Effect.tryPromise({\n try: () => Promise.resolve(call(functionReference, encodedArgs)),\n catch: (error): Error<Ref_> | E => {\n if (isConvexError(error)) {\n const decoded = decodeErrorOption(ref, error.data);\n if (Option.isSome(decoded)) {\n return decoded.value;\n }\n }\n if (mapUnknownError !== undefined) {\n return mapUnknownError(error);\n }\n throw error;\n },\n });\n\n const encodedArgs = yield* encodeArgs(ref, args);\n const encodedReturns = yield* invoke(encodedArgs);\n return yield* decodeReturns(ref, encodedReturns);\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefInternal.d.ts","sourceRoot":"","sources":["../src/RefInternal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AAOrC,eAAO,MAAM,oBAAoB,GAAI,IAAI,SAAS,GAAG,CAAC,GAAG,OAClD,IAAI,KACR,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAe5B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { makeFunctionReference } from "convex/server";
|
|
2
|
+
//#region src/RefInternal.ts
|
|
3
|
+
const functionReferenceCache = /* @__PURE__ */ new Map();
|
|
4
|
+
const getFunctionReference = (ref) => {
|
|
5
|
+
if (ref.functionReference !== void 0) return ref.functionReference;
|
|
6
|
+
const convexFunctionName = ref.convexFunctionName;
|
|
7
|
+
const cached = functionReferenceCache.get(convexFunctionName);
|
|
8
|
+
if (cached !== void 0) return cached;
|
|
9
|
+
const functionReference = makeFunctionReference(convexFunctionName);
|
|
10
|
+
functionReferenceCache.set(convexFunctionName, functionReference);
|
|
11
|
+
return functionReference;
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { getFunctionReference };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=RefInternal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefInternal.js","names":[],"sources":["../src/RefInternal.ts"],"sourcesContent":["import { makeFunctionReference } from \"convex/server\";\nimport type * as Ref from \"./Ref.js\";\n\nconst functionReferenceCache = new Map<\n string,\n Ref.FunctionReference<Ref.Any>\n>();\n\nexport const getFunctionReference = <Ref_ extends Ref.Any>(\n ref: Ref_,\n): Ref.FunctionReference<Ref_> => {\n if (ref.functionReference !== undefined) {\n return ref.functionReference as Ref.FunctionReference<Ref_>;\n }\n const convexFunctionName = ref.convexFunctionName;\n\n const cached = functionReferenceCache.get(convexFunctionName);\n if (cached !== undefined) {\n return cached as Ref.FunctionReference<Ref_>;\n }\n\n const functionReference = makeFunctionReference(convexFunctionName);\n functionReferenceCache.set(convexFunctionName, functionReference);\n\n return functionReference as Ref.FunctionReference<Ref_>;\n};\n"],"mappings":";;AAGA,MAAM,yCAAyB,IAAI,IAGjC;AAEF,MAAa,wBACX,QACgC;CAChC,IAAI,IAAI,sBAAsB,KAAA,GAC5B,OAAO,IAAI;CAEb,MAAM,qBAAqB,IAAI;CAE/B,MAAM,SAAS,uBAAuB,IAAI,kBAAkB;CAC5D,IAAI,WAAW,KAAA,GACb,OAAO;CAGT,MAAM,oBAAoB,sBAAsB,kBAAkB;CAClE,uBAAuB,IAAI,oBAAoB,iBAAiB;CAEhE,OAAO;AACT"}
|
package/package.json
CHANGED
package/src/Callback.ts
CHANGED
|
@@ -8,6 +8,7 @@ import * as Schema from "effect/Schema";
|
|
|
8
8
|
import * as SchemaGetter from "effect/SchemaGetter";
|
|
9
9
|
import * as FunctionProvenance from "./FunctionProvenance.js";
|
|
10
10
|
import * as Ref from "./Ref.js";
|
|
11
|
+
import { getFunctionReference } from "./RefInternal.js";
|
|
11
12
|
import type * as RuntimeAndFunctionType from "./RuntimeAndFunctionType.js";
|
|
12
13
|
|
|
13
14
|
export const TypeId = "~@confect/core/Callback";
|
|
@@ -302,4 +303,4 @@ export const toFuture = <Ref_ extends Ref.Any>(
|
|
|
302
303
|
Ref.GetFunctionVisibility<Ref_>,
|
|
303
304
|
EncodedArgs<Ref_>,
|
|
304
305
|
EncodedReturns<Ref_>
|
|
305
|
-
> =>
|
|
306
|
+
> => getFunctionReference(ref) as never;
|
package/src/FunctionSpec.ts
CHANGED
|
@@ -930,9 +930,7 @@ export type Extended<
|
|
|
930
930
|
>,
|
|
931
931
|
>(
|
|
932
932
|
config: {
|
|
933
|
-
readonly manifest?: Readonly<
|
|
934
|
-
Record<string, ManifestSection.ManifestSection>
|
|
935
|
-
>;
|
|
933
|
+
readonly manifest?: Readonly<Record<string, ManifestSection.Any>>;
|
|
936
934
|
readonly reservedArgument?: string;
|
|
937
935
|
readonly middleware: Middleware_ &
|
|
938
936
|
NotInherited<Middleware_, MiddlewareSpecs_>;
|
|
@@ -1025,7 +1023,7 @@ const makeExtended = (
|
|
|
1025
1023
|
middleware: ReadonlyArray<ProfileMiddleware<any>>;
|
|
1026
1024
|
schemas?: RuntimeWrappers;
|
|
1027
1025
|
reservedArgument?: string;
|
|
1028
|
-
manifest?: Readonly<Record<string, ManifestSection.
|
|
1026
|
+
manifest?: Readonly<Record<string, ManifestSection.Any>>;
|
|
1029
1027
|
}) =>
|
|
1030
1028
|
makeExtended(
|
|
1031
1029
|
[...middleware, ...config.middleware],
|
|
@@ -1056,9 +1054,7 @@ export const extend =
|
|
|
1056
1054
|
>,
|
|
1057
1055
|
>(
|
|
1058
1056
|
config: {
|
|
1059
|
-
readonly manifest?: Readonly<
|
|
1060
|
-
Record<string, ManifestSection.ManifestSection>
|
|
1061
|
-
>;
|
|
1057
|
+
readonly manifest?: Readonly<Record<string, ManifestSection.Any>>;
|
|
1062
1058
|
readonly reservedArgument?: string;
|
|
1063
1059
|
readonly middleware: Middleware_;
|
|
1064
1060
|
} & OptionFree<Fields_["Type"]> &
|
package/src/ManifestSection.ts
CHANGED
|
@@ -35,7 +35,19 @@ export interface Generate {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
/**
|
|
39
|
+
* What codegen hands a section's `summarize`: the `confect/` files its
|
|
40
|
+
* `generate` matched, and each function's description by path.
|
|
41
|
+
*/
|
|
42
|
+
export interface SummarizeInput<Value = unknown> {
|
|
43
|
+
readonly modules: GenerateInput["modules"];
|
|
44
|
+
readonly functions: Readonly<Record<string, Value>>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface ManifestSection<
|
|
48
|
+
Value = unknown,
|
|
49
|
+
Data_ extends { readonly format: number } = Data<Value>,
|
|
50
|
+
> {
|
|
39
51
|
readonly owner: string;
|
|
40
52
|
readonly format: number;
|
|
41
53
|
describe(input: {
|
|
@@ -43,8 +55,9 @@ export interface ManifestSection<Value = unknown> {
|
|
|
43
55
|
readonly spec: FunctionSpec.AnyWithProps;
|
|
44
56
|
readonly middleware: ReadonlyArray<MiddlewareSpec.AnyMiddlewareSpec>;
|
|
45
57
|
}): Value;
|
|
58
|
+
summarize?(input: SummarizeInput<Value>): Data_;
|
|
46
59
|
check?(
|
|
47
|
-
next:
|
|
60
|
+
next: Data_,
|
|
48
61
|
previous: unknown,
|
|
49
62
|
): {
|
|
50
63
|
readonly errors: ReadonlyArray<string>;
|
|
@@ -53,7 +66,9 @@ export interface ManifestSection<Value = unknown> {
|
|
|
53
66
|
readonly generate?: Generate;
|
|
54
67
|
}
|
|
55
68
|
|
|
69
|
+
export type Any = ManifestSection<unknown, { readonly format: number }>;
|
|
70
|
+
|
|
56
71
|
export interface Entry {
|
|
57
72
|
readonly key: string;
|
|
58
|
-
readonly section:
|
|
73
|
+
readonly section: Any;
|
|
59
74
|
}
|
package/src/Ref.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type {
|
|
|
6
6
|
PaginationOptions,
|
|
7
7
|
PaginationResult,
|
|
8
8
|
} from "convex/server";
|
|
9
|
-
import { getFunctionAddress
|
|
9
|
+
import { getFunctionAddress } from "convex/server";
|
|
10
10
|
import type { Value } from "convex/values";
|
|
11
11
|
import { ConvexError } from "convex/values";
|
|
12
12
|
import * as Effect from "effect/Effect";
|
|
@@ -18,6 +18,7 @@ import type * as FunctionProvenance from "./FunctionProvenance.js";
|
|
|
18
18
|
import type * as FunctionSpec from "./FunctionSpec.js";
|
|
19
19
|
import * as Lazy from "./Lazy.js";
|
|
20
20
|
import * as MiddlewareSpec from "./MiddlewareSpec.js";
|
|
21
|
+
import { getFunctionReference } from "./RefInternal.js";
|
|
21
22
|
import type * as RuntimeAndFunctionType from "./RuntimeAndFunctionType.js";
|
|
22
23
|
|
|
23
24
|
export const TypeId = "~@confect/core/Ref";
|
|
@@ -512,27 +513,6 @@ export const fromProvenance = (
|
|
|
512
513
|
export const getConvexFunctionName = (ref: Any): string =>
|
|
513
514
|
ref.convexFunctionName;
|
|
514
515
|
|
|
515
|
-
const functionReferenceCache = new Map<string, FunctionReference<Any>>();
|
|
516
|
-
|
|
517
|
-
export const getFunctionReference = <Ref_ extends Any>(
|
|
518
|
-
ref: Ref_,
|
|
519
|
-
): FunctionReference<Ref_> => {
|
|
520
|
-
if (ref.functionReference !== undefined) {
|
|
521
|
-
return ref.functionReference as FunctionReference<Ref_>;
|
|
522
|
-
}
|
|
523
|
-
const convexFunctionName = getConvexFunctionName(ref);
|
|
524
|
-
|
|
525
|
-
const cached = functionReferenceCache.get(convexFunctionName);
|
|
526
|
-
if (cached !== undefined) {
|
|
527
|
-
return cached as FunctionReference<Ref_>;
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
const functionReference = makeFunctionReference(convexFunctionName);
|
|
531
|
-
functionReferenceCache.set(convexFunctionName, functionReference);
|
|
532
|
-
|
|
533
|
-
return functionReference as FunctionReference<Ref_>;
|
|
534
|
-
};
|
|
535
|
-
|
|
536
516
|
/**
|
|
537
517
|
* Adapt a native reference without assigning Confect codecs or typed errors.
|
|
538
518
|
*/
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { makeFunctionReference } from "convex/server";
|
|
2
|
+
import type * as Ref from "./Ref.js";
|
|
3
|
+
|
|
4
|
+
const functionReferenceCache = new Map<
|
|
5
|
+
string,
|
|
6
|
+
Ref.FunctionReference<Ref.Any>
|
|
7
|
+
>();
|
|
8
|
+
|
|
9
|
+
export const getFunctionReference = <Ref_ extends Ref.Any>(
|
|
10
|
+
ref: Ref_,
|
|
11
|
+
): Ref.FunctionReference<Ref_> => {
|
|
12
|
+
if (ref.functionReference !== undefined) {
|
|
13
|
+
return ref.functionReference as Ref.FunctionReference<Ref_>;
|
|
14
|
+
}
|
|
15
|
+
const convexFunctionName = ref.convexFunctionName;
|
|
16
|
+
|
|
17
|
+
const cached = functionReferenceCache.get(convexFunctionName);
|
|
18
|
+
if (cached !== undefined) {
|
|
19
|
+
return cached as Ref.FunctionReference<Ref_>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const functionReference = makeFunctionReference(convexFunctionName);
|
|
23
|
+
functionReferenceCache.set(convexFunctionName, functionReference);
|
|
24
|
+
|
|
25
|
+
return functionReference as Ref.FunctionReference<Ref_>;
|
|
26
|
+
};
|