@gaganref/confect-core 10.3.1-fork.4 → 10.3.1-fork.41
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/ActionCall.d.ts +18 -0
- package/dist/ActionCall.d.ts.map +1 -0
- package/dist/ActionCall.js +21 -0
- package/dist/ActionCall.js.map +1 -0
- package/dist/App.d.ts +14 -3
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +6 -3
- package/dist/App.js.map +1 -1
- package/dist/Auth.d.ts +33 -8
- package/dist/Auth.d.ts.map +1 -1
- package/dist/Auth.js +15 -1
- package/dist/Auth.js.map +1 -1
- package/dist/Callback.d.ts +3 -3
- package/dist/Callback.d.ts.map +1 -1
- package/dist/Callback.js +2 -2
- package/dist/Callback.js.map +1 -1
- package/dist/Component.d.ts +8 -8
- package/dist/Component.d.ts.map +1 -1
- package/dist/Component.js +1 -1
- package/dist/Component.js.map +1 -1
- package/dist/FunctionProvenance.d.ts +2 -2
- package/dist/FunctionProvenance.d.ts.map +1 -1
- package/dist/FunctionProvenance.js.map +1 -1
- package/dist/FunctionSpec.d.ts +329 -5
- package/dist/FunctionSpec.d.ts.map +1 -1
- package/dist/FunctionSpec.js +53 -3
- package/dist/FunctionSpec.js.map +1 -1
- package/dist/GenericId.d.ts +2 -2
- package/dist/GenericId.d.ts.map +1 -1
- package/dist/GenericId.js.map +1 -1
- package/dist/GroupPath.d.ts +1 -1
- package/dist/GroupPath.d.ts.map +1 -1
- package/dist/GroupPath.js.map +1 -1
- package/dist/GroupSpec.d.ts +4 -4
- package/dist/GroupSpec.d.ts.map +1 -1
- package/dist/GroupSpec.js +1 -1
- package/dist/GroupSpec.js.map +1 -1
- package/dist/Http.d.ts +1 -1
- package/dist/Http.d.ts.map +1 -1
- package/dist/Http.js.map +1 -1
- package/dist/Manifest.d.ts +1 -1
- package/dist/Manifest.d.ts.map +1 -1
- package/dist/Manifest.js.map +1 -1
- package/dist/MiddlewareAttachment.d.ts +1 -1
- package/dist/MiddlewareAttachment.d.ts.map +1 -1
- package/dist/MiddlewareAttachment.js.map +1 -1
- package/dist/MiddlewareSpec.d.ts +3 -3
- package/dist/MiddlewareSpec.d.ts.map +1 -1
- package/dist/MiddlewareSpec.js.map +1 -1
- package/dist/Profile.d.ts +95 -0
- package/dist/Profile.d.ts.map +1 -0
- package/dist/Profile.js +15 -0
- package/dist/Profile.js.map +1 -0
- package/dist/Ref.d.ts +8 -7
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +7 -4
- package/dist/Ref.js.map +1 -1
- package/dist/Refs.d.ts +5 -5
- package/dist/Refs.d.ts.map +1 -1
- package/dist/Refs.js.map +1 -1
- package/dist/SchemaToValidator.d.ts +2 -2
- package/dist/SchemaToValidator.d.ts.map +1 -1
- package/dist/SchemaToValidator.js +1 -1
- package/dist/SchemaToValidator.js.map +1 -1
- package/dist/Spec.d.ts +1 -1
- package/dist/Spec.d.ts.map +1 -1
- package/dist/Spec.js.map +1 -1
- package/dist/SystemFields.d.ts +2 -2
- package/dist/SystemFields.d.ts.map +1 -1
- package/dist/SystemFields.js +1 -1
- package/dist/SystemFields.js.map +1 -1
- package/dist/Table.d.ts +3 -3
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/index.d.ts +31 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -6
- package/package.json +3 -3
- package/src/ActionCall.ts +25 -0
- package/src/App.ts +20 -4
- package/src/Auth.ts +50 -8
- package/src/Callback.ts +4 -3
- package/src/Component.ts +12 -11
- package/src/FunctionProvenance.ts +3 -3
- package/src/FunctionSpec.ts +509 -9
- package/src/GenericId.ts +2 -2
- package/src/GroupPath.ts +1 -1
- package/src/GroupSpec.ts +5 -5
- package/src/Http.ts +1 -1
- package/src/Manifest.ts +1 -1
- package/src/MiddlewareAttachment.ts +1 -1
- package/src/MiddlewareSpec.ts +4 -4
- package/src/Profile.ts +141 -0
- package/src/Ref.ts +19 -10
- package/src/Refs.ts +5 -5
- package/src/SchemaToValidator.ts +3 -3
- package/src/Spec.ts +1 -1
- package/src/SystemFields.ts +2 -2
- package/src/Table.ts +4 -4
- package/src/index.ts +31 -29
package/dist/Manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,KAAK,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"Manifest.d.ts","sourceRoot":"","sources":["../src/Manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AAErC;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAC;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACxE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GACzB,CAAC,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC/D,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC9B,CAAC,GACD,KAAK,GACP,MAAM,CAAC;AAEb;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,QAAQ,IAAI;IACvC,QAAQ,EACN,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,CAAC,GACtE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,GAAG;IACF,QAAQ,EACN,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,CACxE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CACvB,CAAC"}
|
package/dist/Manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manifest.js","names":[],"sources":["../src/Manifest.ts"],"sourcesContent":["import type * as Redacted from \"effect/Redacted\";\nimport type * as Env from \"./Env\";\n\n/**\n * The shape of `confect/_generated/manifest.ts`: plain data with no imports,\n * which infra reads instead of backend code. `env` lists each variable with its\n * kind, `http.mounts` each mount's HTTP prefix, and `digest` identifies the\n * declaration inputs it was generated from.\n */\nexport interface Manifest {\n readonly name: string;\n readonly env: Readonly<Record<string, Env.Descriptor>>;\n readonly http: { readonly mounts: Readonly<Record<string, string>> };\n readonly digest: string;\n}\n\ntype Value<D extends Env.Descriptor> = D extends { readonly kind: \"secret\" }\n ? Redacted.Redacted<string>\n : D extends { readonly kind: \"literals\"; readonly values: infer L }\n ? L extends ReadonlyArray<infer V>\n ? V\n : never\n : string;\n\n/**\n * The values a deployment must supply for a manifest's env: secrets as\n * `Redacted`, literals as one of their values, optional variables omittable.\n *\n * ```ts\n * import manifest from \"@tenant/convex/manifest\";\n *\n * const values: Manifest.Values<typeof manifest> = {\n * EMAIL_FROM: \"noreply@example.edu\",\n * RESEND_API_KEY: Redacted.make(key),\n * };\n * ```\n */\nexport type Values<M extends Manifest> = {\n readonly [\n K in keyof M[\"env\"] as M[\"env\"][K][\"optional\"] extends true ? never : K\n ]: Value<M[\"env\"][K]>;\n} & {\n readonly [\n K in keyof M[\"env\"] as M[\"env\"][K][\"optional\"] extends true ? K : never\n ]?: Value<M[\"env\"][K]>;\n};\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Manifest.js","names":[],"sources":["../src/Manifest.ts"],"sourcesContent":["import type * as Redacted from \"effect/Redacted\";\nimport type * as Env from \"./Env.js\";\n\n/**\n * The shape of `confect/_generated/manifest.ts`: plain data with no imports,\n * which infra reads instead of backend code. `env` lists each variable with its\n * kind, `http.mounts` each mount's HTTP prefix, and `digest` identifies the\n * declaration inputs it was generated from.\n */\nexport interface Manifest {\n readonly name: string;\n readonly env: Readonly<Record<string, Env.Descriptor>>;\n readonly http: { readonly mounts: Readonly<Record<string, string>> };\n readonly digest: string;\n}\n\ntype Value<D extends Env.Descriptor> = D extends { readonly kind: \"secret\" }\n ? Redacted.Redacted<string>\n : D extends { readonly kind: \"literals\"; readonly values: infer L }\n ? L extends ReadonlyArray<infer V>\n ? V\n : never\n : string;\n\n/**\n * The values a deployment must supply for a manifest's env: secrets as\n * `Redacted`, literals as one of their values, optional variables omittable.\n *\n * ```ts\n * import manifest from \"@tenant/convex/manifest\";\n *\n * const values: Manifest.Values<typeof manifest> = {\n * EMAIL_FROM: \"noreply@example.edu\",\n * RESEND_API_KEY: Redacted.make(key),\n * };\n * ```\n */\nexport type Values<M extends Manifest> = {\n readonly [\n K in keyof M[\"env\"] as M[\"env\"][K][\"optional\"] extends true ? never : K\n ]: Value<M[\"env\"][K]>;\n} & {\n readonly [\n K in keyof M[\"env\"] as M[\"env\"][K][\"optional\"] extends true ? K : never\n ]?: Value<M[\"env\"][K]>;\n};\n"],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Data from "effect/Data";
|
|
2
2
|
import * as Result from "effect/Result";
|
|
3
|
-
import type * as MiddlewareSpec from "./MiddlewareSpec";
|
|
3
|
+
import type * as MiddlewareSpec from "./MiddlewareSpec.js";
|
|
4
4
|
export type MiddlewareAttachment<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec = MiddlewareSpec.AnyMiddlewareSpec> = MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec ? {
|
|
5
5
|
readonly spec: MiddlewareSpec_;
|
|
6
6
|
readonly options: [MiddlewareSpec_["~Options"]] extends [never] ? undefined : MiddlewareSpec.Options<MiddlewareSpec_>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewareAttachment.d.ts","sourceRoot":"","sources":["../src/MiddlewareAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,cAAc,MAAM,
|
|
1
|
+
{"version":3,"file":"MiddlewareAttachment.d.ts","sourceRoot":"","sources":["../src/MiddlewareAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,oBAAoB,CAC9B,eAAe,SAAS,cAAc,CAAC,iBAAiB,GACtD,cAAc,CAAC,iBAAiB,IAChC,eAAe,SAAS,cAAc,CAAC,iBAAiB,GACxD;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC3D,SAAS,GACT,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7C,GACD,KAAK,CAAC;AAEV,MAAM,MAAM,IAAI,CAAC,eAAe,SAAS,cAAc,CAAC,iBAAiB,IAAI;IAC3E,eAAe,CAAC,UAAU,CAAC;CAC5B,SAAS,CAAC,KAAK,CAAC,GACb,EAAE,GACF,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5C,cAAc,EAAE;QACd,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,gBAAgB,EAAE;QAChB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,iBAAiB,EAAE;QACjB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAChC,CAAC;CACH,CAAC,CAAC;AAEH,eAAO,MAAM,eAAe;;;gCAbA,MAAM;2BACX,MAAM;kCACC,MAAM;gCACR,MAAM;;;;;gCAGN,MAAM;2BACX,MAAM;kCACC,MAAM;gCACR,MAAM;;;;;gCAdN,MAAM;2BACX,MAAM;kCACC,MAAM;;;;;;;oCAGR,MAAM;+BACX,MAAM;sCACC,MAAM;oCACR,MAAM;;;oCAGN,MAAM;+BACX,MAAM;sCACC,MAAM;oCACR,MAAM;;;oCAdN,MAAM;+BACX,MAAM;sCACC,MAAM;;;;;;;;;;;;;;;;;;;;;;;oCAGR,MAAM;+BACX,MAAM;sCACC,MAAM;oCACR,MAAM;;;oCAGN,MAAM;+BACX,MAAM;sCACC,MAAM;oCACR,MAAM;;;oCAdN,MAAM;+BACX,MAAM;sCACC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;gCAGR,MAAM;2BACX,MAAM;kCACC,MAAM;gCACR,MAAM;;;;gCAGN,MAAM;2BACX,MAAM;kCACC,MAAM;gCACR,MAAM;;;;gCAdN,MAAM;2BACX,MAAM;kCACC,MAAM;;CAgB6B,CAAC;AAElE,eAAO,MAAM,qBAAqB;;4BAfN,MAAM;uBACX,MAAM;8BACC,MAAM;4BACR,MAAM;;;4BAGN,MAAM;uBACX,MAAM;8BACC,MAAM;4BACR,MAAM;;;4BAdN,MAAM;uBACX,MAAM;8BACC,MAAM;YA8BlC,CAAC;AAEH,eAAO,MAAM,WAAW,gBACT,aAAa,CAAC,oBAAoB,CAAC,YACtC,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CA2CrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewareAttachment.js","names":[],"sources":["../src/MiddlewareAttachment.ts"],"sourcesContent":["import * as Data from \"effect/Data\";\nimport * as Result from \"effect/Result\";\nimport * as Schema from \"effect/Schema\";\nimport type * as MiddlewareSpec from \"./MiddlewareSpec\";\n\nexport type MiddlewareAttachment<\n MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec =\n MiddlewareSpec.AnyMiddlewareSpec,\n> = MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec\n ? {\n readonly spec: MiddlewareSpec_;\n readonly options: [MiddlewareSpec_[\"~Options\"]] extends [never]\n ? undefined\n : MiddlewareSpec.Options<MiddlewareSpec_>;\n }\n : never;\n\nexport type Args<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec> = [\n MiddlewareSpec_[\"~Options\"],\n] extends [never]\n ? []\n : [options: MiddlewareSpec.Options<MiddlewareSpec_>];\n\nexport type ValidationError = Data.TaggedEnum<{\n InvalidOptions: {\n readonly middlewareKey: string;\n readonly location: string;\n readonly attachmentIndex: number;\n };\n ConflictingSpecs: {\n readonly middlewareKey: string;\n readonly location: string;\n readonly attachmentIndex: number;\n readonly previousIndex: number;\n };\n EquivalentOptions: {\n readonly middlewareKey: string;\n readonly location: string;\n readonly attachmentIndex: number;\n readonly previousIndex: number;\n };\n}>;\n\nexport const ValidationError = Data.taggedEnum<ValidationError>();\n\nexport const formatValidationError = ValidationError.$match({\n InvalidOptions: ({ middlewareKey, location, attachmentIndex }) =>\n `Middleware \"${middlewareKey}\" has invalid options at attachment ${attachmentIndex + 1} on ${location}`,\n ConflictingSpecs: ({ middlewareKey, location }) =>\n `Different middleware specs share key \"${middlewareKey}\" on ${location}`,\n EquivalentOptions: ({\n middlewareKey,\n location,\n attachmentIndex,\n previousIndex,\n }) =>\n `Middleware \"${middlewareKey}\" has equivalent options at attachments ${previousIndex + 1} and ${attachmentIndex + 1} on ${location}`,\n});\n\nexport const validateAll = (\n attachments: ReadonlyArray<MiddlewareAttachment>,\n location: string,\n): Result.Result<void, ValidationError> => {\n for (const [index, attachment] of attachments.entries()) {\n const schema = attachment.spec.options;\n if (schema !== undefined && !Schema.is(schema)(attachment.options)) {\n return Result.fail(\n ValidationError.InvalidOptions({\n middlewareKey: attachment.spec.key,\n location,\n attachmentIndex: index,\n }),\n );\n }\n const equivalent =\n schema === undefined ? undefined : Schema.toEquivalence(schema);\n for (const [previousIndex, previous] of attachments.entries()) {\n if (previousIndex === index) break;\n if (previous.spec.key !== attachment.spec.key) continue;\n if (previous.spec !== attachment.spec) {\n return Result.fail(\n ValidationError.ConflictingSpecs({\n middlewareKey: attachment.spec.key,\n location,\n attachmentIndex: index,\n previousIndex,\n }),\n );\n }\n if (\n equivalent === undefined ||\n equivalent(previous.options, attachment.options)\n ) {\n return Result.fail(\n ValidationError.EquivalentOptions({\n middlewareKey: attachment.spec.key,\n location,\n attachmentIndex: index,\n previousIndex,\n }),\n );\n }\n }\n }\n return Result.void;\n};\n"],"mappings":";;;;;;;;;;AA2CA,MAAa,kBAAkB,KAAK,WAA4B;AAEhE,MAAa,wBAAwB,gBAAgB,OAAO;CAC1D,iBAAiB,EAAE,eAAe,UAAU,sBAC1C,eAAe,cAAc,sCAAsC,kBAAkB,EAAE,MAAM;CAC/F,mBAAmB,EAAE,eAAe,eAClC,yCAAyC,cAAc,OAAO;CAChE,oBAAoB,EAClB,eACA,UACA,iBACA,oBAEA,eAAe,cAAc,0CAA0C,gBAAgB,EAAE,OAAO,kBAAkB,EAAE,MAAM;AAC9H,CAAC;AAED,MAAa,eACX,aACA,aACyC;CACzC,KAAK,MAAM,CAAC,OAAO,eAAe,YAAY,QAAQ,GAAG;EACvD,MAAM,SAAS,WAAW,KAAK;EAC/B,IAAI,WAAW,KAAA,KAAa,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,WAAW,OAAO,GAC/D,OAAO,OAAO,KACZ,gBAAgB,eAAe;GAC7B,eAAe,WAAW,KAAK;GAC/B;GACA,iBAAiB;EACnB,CAAC,CACH;EAEF,MAAM,aACJ,WAAW,KAAA,IAAY,KAAA,IAAY,OAAO,cAAc,MAAM;EAChE,KAAK,MAAM,CAAC,eAAe,aAAa,YAAY,QAAQ,GAAG;GAC7D,IAAI,kBAAkB,OAAO;GAC7B,IAAI,SAAS,KAAK,QAAQ,WAAW,KAAK,KAAK;GAC/C,IAAI,SAAS,SAAS,WAAW,MAC/B,OAAO,OAAO,KACZ,gBAAgB,iBAAiB;IAC/B,eAAe,WAAW,KAAK;IAC/B;IACA,iBAAiB;IACjB;GACF,CAAC,CACH;GAEF,IACE,eAAe,KAAA,KACf,WAAW,SAAS,SAAS,WAAW,OAAO,GAE/C,OAAO,OAAO,KACZ,gBAAgB,kBAAkB;IAChC,eAAe,WAAW,KAAK;IAC/B;IACA,iBAAiB;IACjB;GACF,CAAC,CACH;EAEJ;CACF;CACA,OAAO,OAAO;AAChB"}
|
|
1
|
+
{"version":3,"file":"MiddlewareAttachment.js","names":[],"sources":["../src/MiddlewareAttachment.ts"],"sourcesContent":["import * as Data from \"effect/Data\";\nimport * as Result from \"effect/Result\";\nimport * as Schema from \"effect/Schema\";\nimport type * as MiddlewareSpec from \"./MiddlewareSpec.js\";\n\nexport type MiddlewareAttachment<\n MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec =\n MiddlewareSpec.AnyMiddlewareSpec,\n> = MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec\n ? {\n readonly spec: MiddlewareSpec_;\n readonly options: [MiddlewareSpec_[\"~Options\"]] extends [never]\n ? undefined\n : MiddlewareSpec.Options<MiddlewareSpec_>;\n }\n : never;\n\nexport type Args<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec> = [\n MiddlewareSpec_[\"~Options\"],\n] extends [never]\n ? []\n : [options: MiddlewareSpec.Options<MiddlewareSpec_>];\n\nexport type ValidationError = Data.TaggedEnum<{\n InvalidOptions: {\n readonly middlewareKey: string;\n readonly location: string;\n readonly attachmentIndex: number;\n };\n ConflictingSpecs: {\n readonly middlewareKey: string;\n readonly location: string;\n readonly attachmentIndex: number;\n readonly previousIndex: number;\n };\n EquivalentOptions: {\n readonly middlewareKey: string;\n readonly location: string;\n readonly attachmentIndex: number;\n readonly previousIndex: number;\n };\n}>;\n\nexport const ValidationError = Data.taggedEnum<ValidationError>();\n\nexport const formatValidationError = ValidationError.$match({\n InvalidOptions: ({ middlewareKey, location, attachmentIndex }) =>\n `Middleware \"${middlewareKey}\" has invalid options at attachment ${attachmentIndex + 1} on ${location}`,\n ConflictingSpecs: ({ middlewareKey, location }) =>\n `Different middleware specs share key \"${middlewareKey}\" on ${location}`,\n EquivalentOptions: ({\n middlewareKey,\n location,\n attachmentIndex,\n previousIndex,\n }) =>\n `Middleware \"${middlewareKey}\" has equivalent options at attachments ${previousIndex + 1} and ${attachmentIndex + 1} on ${location}`,\n});\n\nexport const validateAll = (\n attachments: ReadonlyArray<MiddlewareAttachment>,\n location: string,\n): Result.Result<void, ValidationError> => {\n for (const [index, attachment] of attachments.entries()) {\n const schema = attachment.spec.options;\n if (schema !== undefined && !Schema.is(schema)(attachment.options)) {\n return Result.fail(\n ValidationError.InvalidOptions({\n middlewareKey: attachment.spec.key,\n location,\n attachmentIndex: index,\n }),\n );\n }\n const equivalent =\n schema === undefined ? undefined : Schema.toEquivalence(schema);\n for (const [previousIndex, previous] of attachments.entries()) {\n if (previousIndex === index) break;\n if (previous.spec.key !== attachment.spec.key) continue;\n if (previous.spec !== attachment.spec) {\n return Result.fail(\n ValidationError.ConflictingSpecs({\n middlewareKey: attachment.spec.key,\n location,\n attachmentIndex: index,\n previousIndex,\n }),\n );\n }\n if (\n equivalent === undefined ||\n equivalent(previous.options, attachment.options)\n ) {\n return Result.fail(\n ValidationError.EquivalentOptions({\n middlewareKey: attachment.spec.key,\n location,\n attachmentIndex: index,\n previousIndex,\n }),\n );\n }\n }\n }\n return Result.void;\n};\n"],"mappings":";;;;;;;;;;AA2CA,MAAa,kBAAkB,KAAK,WAA4B;AAEhE,MAAa,wBAAwB,gBAAgB,OAAO;CAC1D,iBAAiB,EAAE,eAAe,UAAU,sBAC1C,eAAe,cAAc,sCAAsC,kBAAkB,EAAE,MAAM;CAC/F,mBAAmB,EAAE,eAAe,eAClC,yCAAyC,cAAc,OAAO;CAChE,oBAAoB,EAClB,eACA,UACA,iBACA,oBAEA,eAAe,cAAc,0CAA0C,gBAAgB,EAAE,OAAO,kBAAkB,EAAE,MAAM;AAC9H,CAAC;AAED,MAAa,eACX,aACA,aACyC;CACzC,KAAK,MAAM,CAAC,OAAO,eAAe,YAAY,QAAQ,GAAG;EACvD,MAAM,SAAS,WAAW,KAAK;EAC/B,IAAI,WAAW,KAAA,KAAa,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,WAAW,OAAO,GAC/D,OAAO,OAAO,KACZ,gBAAgB,eAAe;GAC7B,eAAe,WAAW,KAAK;GAC/B;GACA,iBAAiB;EACnB,CAAC,CACH;EAEF,MAAM,aACJ,WAAW,KAAA,IAAY,KAAA,IAAY,OAAO,cAAc,MAAM;EAChE,KAAK,MAAM,CAAC,eAAe,aAAa,YAAY,QAAQ,GAAG;GAC7D,IAAI,kBAAkB,OAAO;GAC7B,IAAI,SAAS,KAAK,QAAQ,WAAW,KAAK,KAAK;GAC/C,IAAI,SAAS,SAAS,WAAW,MAC/B,OAAO,OAAO,KACZ,gBAAgB,iBAAiB;IAC/B,eAAe,WAAW,KAAK;IAC/B;IACA,iBAAiB;IACjB;GACF,CAAC,CACH;GAEF,IACE,eAAe,KAAA,KACf,WAAW,SAAS,SAAS,WAAW,OAAO,GAE/C,OAAO,OAAO,KACZ,gBAAgB,kBAAkB;IAChC,eAAe,WAAW,KAAK;IAC/B;IACA,iBAAiB;IACjB;GACF,CAAC,CACH;EAEJ;CACF;CACA,OAAO,OAAO;AAChB"}
|
package/dist/MiddlewareSpec.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import type { FunctionType, FunctionVisibility } from "convex/server";
|
|
|
2
2
|
import type * as Effect from "effect/Effect";
|
|
3
3
|
import type * as Schema from "effect/Schema";
|
|
4
4
|
import type { unhandled } from "effect/Types";
|
|
5
|
-
import type * as FunctionProvenance from "./FunctionProvenance";
|
|
6
|
-
import type * as FunctionSpec from "./FunctionSpec";
|
|
7
|
-
import type * as RuntimeAndFunctionType from "./RuntimeAndFunctionType";
|
|
5
|
+
import type * as FunctionProvenance from "./FunctionProvenance.js";
|
|
6
|
+
import type * as FunctionSpec from "./FunctionSpec.js";
|
|
7
|
+
import type * as RuntimeAndFunctionType from "./RuntimeAndFunctionType.js";
|
|
8
8
|
export declare const TypeId = "~@confect/core/MiddlewareSpec";
|
|
9
9
|
export type TypeId = typeof TypeId;
|
|
10
10
|
export declare const isMiddlewareSpec: (u: unknown) => u is AnyMiddlewareSpec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewareSpec.d.ts","sourceRoot":"","sources":["../src/MiddlewareSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,KAAK,kBAAkB,MAAM,
|
|
1
|
+
{"version":3,"file":"MiddlewareSpec.d.ts","sourceRoot":"","sources":["../src/MiddlewareSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AAE3E,eAAO,MAAM,MAAM,kCAAkC,CAAC;AACtD,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,eAAO,MAAM,gBAAgB,MAAO,OAAO,KAAG,CAAC,IAAI,iBACjB,CAAC;AAEnC,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,YAAY,CAIxD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK;IAC/D,CACE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC,EAC7D,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GACnC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,iBAAiB,CAAC,QAAQ,GAAG,KAAK,IAAI;IAChD,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;QACpC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;QAChD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;KACxB,CAAC;CACH,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IAChC,CACE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7C,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,GACtD,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAC7B,EAAE,CAAC,GAAG,CAAC,IAAI,EACX,IAAI,SAAS,MAAM,EACnB,SAAS,EACT,SAAS,EACT,YAAY,SAAS,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAC3C,cAAc,SAAS,YAAY,EACnC,cAAc,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;IAEjD,KAAK,CAAC,EAAE,KAAK,GAAG;QACd,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,YAAY,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;CAC1B;AAED,MAAM,MAAM,OAAO,CAAC,eAAe,SAAS,iBAAiB,IAC3D,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtC,MAAM,MAAM,cAAc,CAAC,eAAe,SAAS,iBAAiB,IAClE,eAAe,SAAS,iBAAiB,GACrC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC3C,eAAe,GACf,KAAK,GACP,KAAK,CAAC;AAEZ,MAAM,MAAM,GAAG,CAAC,eAAe,SAAS,iBAAiB,IACvD,eAAe,CAAC,KAAK,CAAC,CAAC;AAEzB,MAAM,MAAM,QAAQ,CAAC,eAAe,SAAS,iBAAiB,IAC5D,eAAe,SAAS,iBAAiB,GACrC,eAAe,CAAC,WAAW,CAAC,GAC5B,KAAK,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,eAAe,SAAS,iBAAiB,IAC5D,eAAe,SAAS,iBAAiB,GACrC,eAAe,CAAC,WAAW,CAAC,GAC5B,KAAK,CAAC;AAEZ,MAAM,MAAM,WAAW,CAAC,eAAe,SAAS,iBAAiB,IAC/D,eAAe,SAAS,iBAAiB,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;AAEhF,MAAM,MAAM,KAAK,CAAC,eAAe,SAAS,iBAAiB,IACzD,eAAe,SAAS,iBAAiB,GACrC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GACjC,KAAK,CAAC;AAEZ,MAAM,MAAM,YAAY,CAAC,eAAe,SAAS,iBAAiB,IAChE,eAAe,SAAS,iBAAiB,GACrC,eAAe,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GACpC,KAAK,CAAC;AAEZ,MAAM,MAAM,aAAa,CAAC,eAAe,SAAS,iBAAiB,IACjE,eAAe,SAAS,iBAAiB,GACrC,eAAe,CAAC,gBAAgB,CAAC,GACjC,KAAK,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,cAAc,GACxB,IAAI,EAAE,MAAM,SAAS;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,EAAE,QAE3D,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,KAAK,CAAC,oBAAoB,SAAS,sBAAsB,EACzD,YAAY,SAAS,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,EACnD,cAAc,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,OAE5C,IAAI,WACA;IACP,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,YAAY,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,GAC1C,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;CACrD,KACA,cAAc,CACf,IAAI,EACJ,IAAI,EACJ,UAAU,SAAS,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,EAC5D,UAAU,SAAS,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,EAC5D,YAAY,EACZ,uBAAuB,CAAC,oBAAoB,CAAC,EAC7C,cAAc,CAyBf,CAAC;AAEJ,KAAK,uBAAuB,CAAC,MAAM,SAAS,sBAAsB,IAAI;KACnE,CAAC,IAAI,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK;CACxD,CAAC,YAAY,CAAC,CAAC;AAEhB,KAAK,2BAA2B,CAAC,MAAM,SAAS,sBAAsB,IACpE,gBAAgB,CACZ;KACG,CAAC,IAAI,MAAM,MAAM,GAAG,OAAO,SAAS,MAAM,CAAC,CAAC,CAAC,GAC1C,eAAe,CAAC,uBAAuB,CAAC,GAAG,MAAM,uEAAuE,CAAC,GACzH,KAAK;CACV,CAAC,MAAM,MAAM,CAAC,GACf,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC9C,eAAe,CAAC,sDAAsD,CAAC,GACvE,KAAK,CAAC,CACb,CAAC;AAEJ,eAAO,MAAM,YAAY,oBACN,aAAa,CAAC,iBAAiB,CAAC,KAChD,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAKpC,CAAC;AAEJ;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM;IACrD,QAAQ,CAAC,+CAA+C,EAAE,OAAO,CAAC;CACnE;AAED,KAAK,cAAc,CAAC,aAAa,SAAS,YAAY,CAAC,YAAY,IACjE,aAAa,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC;AAE1D,KAAK,gBAAgB,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5E;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAC1B,aAAa,SAAS,YAAY,CAAC,YAAY,EAC/C,eAAe,SAAS,iBAAiB,IACvC,aAAa,SAAS,GAAG,GACzB,eAAe,SAAS,GAAG,GACzB,aAAa,SAAS;IACpB,QAAQ,CAAC,kBAAkB,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;CAC1D,GACC,cAAc,CAAC,aAAa,CAAC,SAAS,aAAa,CAAC,eAAe,CAAC,GAClE,eAAe,CAAC,+BAA+B,aAAa,CAAC,MAAM,CAAC,sCAAsC,GAAG,CAAC,eAAe,CAAC,6FAA6F,CAAC,GAC5N,KAAK,GACP;IACI,OAAO,CACL,YAAY,CAAC,eAAe,CAAC,aAAa,CAAC,EAC3C;QAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAA;KAAE,CACvD;CACF,SAAS,CAAC,KAAK,CAAC,GACjB,cAAc,CAAC,aAAa,CAAC,SAAS,aAAa,CAAC,eAAe,CAAC,GAClE,KAAK,GACL,eAAe,CAAC,eAAe,GAAG,CAAC,eAAe,CAAC,qCAAqC,cAAc,CAAC,aAAa,CAAC,4BAA4B,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,GAC5K,eAAe,CAAC,eAAe,GAAG,CAAC,eAAe,CAAC,sCAAsC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,GACtH,KAAK,GACP,KAAK,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,cAAc,CACxB,eAAe,SAAS,iBAAiB,EACzC,UAAU,SAAS,YAAY,CAAC,YAAY,EAC5C,gBAAgB,SAAS,iBAAiB,IACxC;IACF,OAAO,CACL,gBAAgB,EAChB;QAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAA;KAAE,CACvD;CACF,SAAS,CAAC,KAAK,CAAC,GACb,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;IACvE,KAAK;CACN,GACC,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,GAC/D,eAAe,CAAC,eAAe,GAAG,CAAC,eAAe,CAAC,sHAAsH,CAAC,GAC5K,eAAe,CAAC,eAAe,GAAG,CAAC,eAAe,CAAC,qCAAqC,CAAC,CAAC;AAE9F,MAAM,MAAM,qBAAqB,CAC/B,aAAa,SAAS,YAAY,CAAC,YAAY,EAC/C,gBAAgB,SAAS,iBAAiB,IACxC,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,GAClC,OAAO,GACP,gBAAgB,CACZ,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,GACjD,YAAY,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAChD,CAAC;AAEN,KAAK,YAAY,CACf,aAAa,SAAS,YAAY,CAAC,YAAY,EAC/C,gBAAgB,SAAS,iBAAiB,IAE1C,YAAY,CAAC,eAAe,CAAC,aAAa,CAAC,SAAS,MAAM,sBAAsB,GAC5E,sBAAsB,SAAS,iBAAiB,GAC9C;IACE,OAAO,CACL,gBAAgB,EAChB;QAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAA;KAAE,CAC9D;CACF,SAAS,CAAC,KAAK,CAAC,GACf,KAAK,GACL,eAAe,CAAC,eAAe,GAAG,CAAC,sBAAsB,CAAC,mCAAmC,aAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,GACtI,KAAK,GACP,KAAK,CAAC;AAEZ;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,CAC9B,UAAU,SAAS,YAAY,CAAC,YAAY,EAC5C,qBAAqB,SAAS,iBAAiB,IAC7C,gBAAgB,CAClB,UAAU,SAAS,GAAG,GAClB;IACE,OAAO,CACL,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,EAClD,QAAQ,CACN,qBAAqB,GAAG,YAAY,CAAC,eAAe,CAAC,UAAU,CAAC,CACjE,CACF;CACF,SAAS,CAAC,KAAK,CAAC,GACf,KAAK,GACL,eAAe,CAAC,aAAa,UAAU,CAAC,MAAM,CAAC,6EAA6E,CAAC,GAC/H,KAAK,CACV,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAChC,eAAe,SAAS,iBAAiB,EACzC,uBAAuB,SAAS,sBAAsB,CAAC,sBAAsB,EAC7E,mBAAmB,SAAS,kBAAkB,CAAC,kBAAkB,EACjE,gBAAgB,SAAS,iBAAiB,IACxC,mBAAmB,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACvD,eAAe,CAAC,+FAA+F,CAAC,GAChH;IACI,OAAO,CACL,gBAAgB,EAChB;QAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAA;KAAE,CACvD;CACF,SAAS,CAAC,KAAK,CAAC,GACjB,uBAAuB,CAAC,cAAc,CAAC,SAAS,aAAa,CAAC,eAAe,CAAC,GAC5E,OAAO,GACP,eAAe,CAAC,eAAe,GAAG,CAAC,eAAe,CAAC,qCAAqC,uBAAuB,CAAC,cAAc,CAAC,GAAG,CAAC,GACrI,eAAe,CAAC,eAAe,GAAG,CAAC,eAAe,CAAC,wCAAwC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewareSpec.js","names":[],"sources":["../src/MiddlewareSpec.ts"],"sourcesContent":["import type { FunctionType, FunctionVisibility } from \"convex/server\";\nimport type * as Effect from \"effect/Effect\";\nimport * as Predicate from \"effect/Predicate\";\nimport type * as Schema from \"effect/Schema\";\nimport type { unhandled } from \"effect/Types\";\nimport type * as FunctionProvenance from \"./FunctionProvenance\";\nimport type * as FunctionSpec from \"./FunctionSpec\";\nimport * as Lazy from \"./Lazy\";\nimport type * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType\";\n\nexport const TypeId = \"~@confect/core/MiddlewareSpec\";\nexport type TypeId = typeof TypeId;\n\nexport const isMiddlewareSpec = (u: unknown): u is AnyMiddlewareSpec =>\n Predicate.hasProperty(u, TypeId);\n\nexport const allFunctionTypes: ReadonlyArray<FunctionType> = [\n \"query\",\n \"mutation\",\n \"action\",\n];\n\nexport interface SupportedFunctionTypes {\n readonly query: boolean;\n readonly mutation: boolean;\n readonly action: boolean;\n}\n\n/**\n * Marker success type used by middleware to represent the handler's outcome\n * without exposing its concrete success value.\n *\n * Mirrors `RpcMiddleware.SuccessValue` in Effect.\n */\nexport interface SuccessValue {\n readonly _: unique symbol;\n}\n\n/**\n * The wrap-style middleware implementation shape: receives the downstream\n * effect (the remaining middleware plus the function handler) and the covered\n * invocation's metadata, and returns the effect that runs in its place.\n *\n * Mirrors `RpcMiddleware.RpcMiddleware` in Effect.\n */\nexport interface MiddlewareImpl<Provides_, E, R, Options_ = never> {\n (\n effect: Effect.Effect<SuccessValue, E | unhandled, Provides_>,\n context: MiddlewareOptions<Options_>,\n ): Effect.Effect<SuccessValue, E | unhandled, R>;\n}\n\nexport type MiddlewareOptions<Options_ = never> = {\n readonly invocation: {\n readonly name: string;\n readonly functionType: FunctionType;\n readonly functionVisibility: FunctionVisibility;\n readonly args: unknown;\n };\n} & ([Options_] extends [never] ? unknown : { readonly options: Options_ });\n\nexport interface AnyMiddlewareImpl {\n (\n effect: Effect.Effect<SuccessValue, any, any>,\n context: MiddlewareOptions | MiddlewareOptions<unknown>,\n ): Effect.Effect<SuccessValue, any, any>;\n}\n\n/**\n * The class shape produced by {@link MiddlewareSpec}. Only the static side is\n * ever used—the class is a value-level carrier for the middleware's key, its\n * declared functionTypes, and its (lazily-evaluated) error schema, plus the\n * type-level `Provides`/`Error` metadata. It is deliberately not a\n * `Context.Tag`: implementations are registered through the group `Registry`\n * (like `FunctionImpl`s), not resolved from a Layer context.\n */\nexport interface MiddlewareSpec<\n in out Self,\n Key_ extends string,\n Provides_,\n Requires_,\n ErrorSchema_ extends Schema.Codec<any, any>,\n FunctionTypes_ extends FunctionType,\n OptionsSchema_ extends Schema.Schema<any> = never,\n> {\n new (_: never): {\n readonly [TypeId]: TypeId;\n readonly key: Key_;\n };\n readonly [TypeId]: TypeId;\n readonly key: Key_;\n readonly functionTypes: SupportedFunctionTypes;\n readonly error?: ErrorSchema_;\n readonly options?: OptionsSchema_;\n readonly \"~Provides\": Provides_;\n readonly \"~Requires\": Requires_;\n readonly \"~Error\": ErrorSchema_;\n readonly \"~FunctionTypes\": FunctionTypes_;\n readonly \"~Self\": Self;\n readonly \"~Options\": OptionsSchema_;\n}\n\nexport interface AnyMiddlewareSpec {\n readonly [TypeId]: TypeId;\n readonly key: string;\n readonly functionTypes: SupportedFunctionTypes;\n readonly error?: Schema.Codec<any, any>;\n readonly options?: Schema.Schema<any>;\n readonly \"~Provides\": any;\n readonly \"~Requires\": any;\n readonly \"~Error\": any;\n readonly \"~FunctionTypes\": FunctionType;\n readonly \"~Options\": any;\n}\n\nexport type Options<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_[\"~Options\"][\"Type\"];\n\nexport type WithoutOptions<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? [MiddlewareSpec_[\"~Options\"]] extends [never]\n ? MiddlewareSpec_\n : never\n : never;\n\nexport type Key<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_[\"key\"];\n\nexport type Provides<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~Provides\"]\n : never;\n\n/**\n * The services a middleware's implementation may consume from middleware that\n * runs earlier in the same chain (type-level only, like `provides`).\n */\nexport type Requires<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~Requires\"]\n : never;\n\nexport type ErrorSchema<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec ? MiddlewareSpec_[\"~Error\"] : never;\n\nexport type Error<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~Error\"][\"Type\"]\n : never;\n\nexport type EncodedError<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~Error\"][\"Encoded\"]\n : never;\n\nexport type FunctionTypes<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~FunctionTypes\"]\n : never;\n\n/**\n * Declare a middleware's client-safe interface: its identifying key, the\n * service it provides to downstream handlers, the error schema its failures\n * encode through, and the function types it may attach to.\n *\n * ```ts\n * class RequireUser extends MiddlewareSpec.MiddlewareSpec<\n * RequireUser,\n * {\n * provides: CurrentUser;\n * }\n * >()(\"RequireUser\", {\n * error: () => NotSignedIn,\n * functionTypes: { query: true, mutation: true, action: false },\n * }) {}\n * ```\n *\n * The implementation is server-only and supplied separately via\n * `MiddlewareImpl.make` (or `makeByFunctionType`/`provides`) in\n * `@confect/server`.\n */\nexport const MiddlewareSpec =\n <Self, Config extends { provides?: any; requires?: any } = {}>() =>\n <\n const Key_ extends string,\n const FunctionTypesConfig_ extends SupportedFunctionTypes,\n ErrorSchema_ extends Schema.Codec<any, any> = never,\n OptionsSchema_ extends Schema.Schema<any> = never,\n >(\n key: Key_,\n options: {\n readonly error?: () => ErrorSchema_;\n readonly options?: () => OptionsSchema_;\n readonly functionTypes: FunctionTypesConfig_ &\n ValidateFunctionTypesConfig<FunctionTypesConfig_>;\n },\n ): MiddlewareSpec<\n Self,\n Key_,\n \"provides\" extends keyof Config ? Config[\"provides\"] : never,\n \"requires\" extends keyof Config ? Config[\"requires\"] : never,\n ErrorSchema_,\n FunctionTypesFromConfig<FunctionTypesConfig_>,\n OptionsSchema_\n > => {\n const { query, mutation, action } = options.functionTypes;\n if (!query && !mutation && !action) {\n throw new Error(\n `Middleware \"${key}\" must declare at least one function type`,\n );\n }\n\n function MiddlewareSpecClass() {}\n const class_ = MiddlewareSpecClass as any;\n class_[TypeId] = TypeId;\n class_.key = key;\n class_.functionTypes = {\n query,\n mutation,\n action,\n } satisfies SupportedFunctionTypes;\n if (options.error !== undefined) {\n Lazy.defineProperty(class_, \"error\", options.error);\n }\n if (options.options !== undefined) {\n Lazy.defineProperty(class_, \"options\", options.options);\n }\n return class_;\n };\n\ntype FunctionTypesFromConfig<Config extends SupportedFunctionTypes> = {\n [K in FunctionType]: Config[K] extends true ? K : never;\n}[FunctionType];\n\ntype ValidateFunctionTypesConfig<Config extends SupportedFunctionTypes> =\n ValidationResult<\n | {\n [K in keyof Config]: boolean extends Config[K]\n ? AttachmentError<`Function type flag \"${K & string}\" must be a literal \\`true\\` or \\`false\\`, not a computed \\`boolean\\``>\n : never;\n }[keyof Config]\n | ([FunctionTypesFromConfig<Config>] extends [never]\n ? AttachmentError<`A middleware must declare at least one function type`>\n : never)\n >;\n\nexport const errorSchemas = (\n middlewareSpecs: ReadonlyArray<AnyMiddlewareSpec>,\n): ReadonlyArray<Schema.Codec<any, any>> =>\n middlewareSpecs.flatMap((middlewareSpec) =>\n \"error\" in middlewareSpec && middlewareSpec.error !== undefined\n ? [middlewareSpec.error]\n : [],\n );\n\n/**\n * A branded, unconstructible type carrying a spec-authoring error message.\n * Surfaced as (part of) a parameter type so the diagnostic names the exact\n * problem at the `.middleware()`/`.addFunction()` call site.\n */\nexport interface AttachmentError<Message extends string> {\n readonly \"~@confect/core/MiddlewareSpec/AttachmentError\": Message;\n}\n\ntype FunctionTypeOf<FunctionSpec_ extends FunctionSpec.AnyWithProps> =\n FunctionSpec_[\"runtimeAndFunctionType\"][\"functionType\"];\n\ntype ValidationResult<Errors> = [Errors] extends [never] ? unknown : Errors;\n\n/**\n * A matching-type Convex-provenance function is rejected rather than silently\n * skipped: its raw handler passes through Confect untouched, so the middleware\n * could not actually cover it, and skipping it would be a policy hole.\n */\nexport type ValidateFunction<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n MiddlewareSpec_ extends AnyMiddlewareSpec,\n> = FunctionSpec_ extends any\n ? MiddlewareSpec_ extends any\n ? FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Convex\" };\n }\n ? FunctionTypeOf<FunctionSpec_> extends FunctionTypes<MiddlewareSpec_>\n ? AttachmentError<`Convex-provenance function \"${FunctionSpec_[\"name\"]}\" cannot be covered by middleware \"${Key<MiddlewareSpec_>}\"—attach middleware only to groups whose matching-type functions are all Confect-provenance`>\n : never\n : [\n Extract<\n FunctionSpec.MiddlewareSpecs<FunctionSpec_>,\n { readonly key: Key<WithoutOptions<MiddlewareSpec_>> }\n >,\n ] extends [never]\n ? FunctionTypeOf<FunctionSpec_> extends FunctionTypes<MiddlewareSpec_>\n ? never\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" does not declare function type \"${FunctionTypeOf<FunctionSpec_>}\", the type of function \"${FunctionSpec_[\"name\"]}\"`>\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" is already attached to function \"${FunctionSpec_[\"name\"]}\"`>\n : never\n : never;\n\n/**\n * Attachment order is chain order, so requiring `requires` to be satisfied by\n * already-attached middleware is exactly requiring the provider to run\n * earlier.\n */\nexport type ValidateAttach<\n MiddlewareSpec_ extends AnyMiddlewareSpec,\n Functions_ extends FunctionSpec.AnyWithProps,\n MiddlewareSpecs_ extends AnyMiddlewareSpec,\n> = [\n Extract<\n MiddlewareSpecs_,\n { readonly key: Key<WithoutOptions<MiddlewareSpec_>> }\n >,\n] extends [never]\n ? [Exclude<Requires<MiddlewareSpec_>, Provides<MiddlewareSpecs_>>] extends [\n never,\n ]\n ? ValidationResult<ValidateFunction<Functions_, MiddlewareSpec_>>\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" requires services that no middleware attached earlier to this group provides—attach the providing middleware first`>\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" is already attached to this group`>;\n\nexport type ValidateAddedFunction<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n MiddlewareSpecs_ extends AnyMiddlewareSpec,\n> = [MiddlewareSpecs_] extends [never]\n ? unknown\n : ValidationResult<\n | ValidateFunction<FunctionSpec_, MiddlewareSpecs_>\n | GroupOverlap<FunctionSpec_, MiddlewareSpecs_>\n >;\n\ntype GroupOverlap<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n MiddlewareSpecs_ extends AnyMiddlewareSpec,\n> =\n FunctionSpec.MiddlewareSpecs<FunctionSpec_> extends infer FunctionMiddlewareSpec\n ? FunctionMiddlewareSpec extends AnyMiddlewareSpec\n ? [\n Extract<\n MiddlewareSpecs_,\n { readonly key: Key<WithoutOptions<FunctionMiddlewareSpec>> }\n >,\n ] extends [never]\n ? never\n : AttachmentError<`Middleware \"${Key<FunctionMiddlewareSpec>}\" is attached to both function \"${FunctionSpec_[\"name\"]}\" and its group`>\n : never\n : never;\n\n/**\n * The parameter-type validation applied to the group spec at `GroupImpl.make`:\n * every function's attached middleware must have its `requires` services\n * provided by some middleware covering that function (the group's or the\n * function's own). Checked here—with the group fully assembled—rather than at\n * the spec builders, because a function-level middleware's `requires` may\n * legitimately be satisfied by a group middleware the function spec never sees,\n * and group attachment is declaratively order-independent with respect to\n * `addFunction`.\n */\nexport type ValidateImplRequires<\n Functions_ extends FunctionSpec.AnyWithProps,\n GroupMiddlewareSpecs_ extends AnyMiddlewareSpec,\n> = ValidationResult<\n Functions_ extends any\n ? [\n Exclude<\n Requires<FunctionSpec.MiddlewareSpecs<Functions_>>,\n Provides<\n GroupMiddlewareSpecs_ | FunctionSpec.MiddlewareSpecs<Functions_>\n >\n >,\n ] extends [never]\n ? never\n : AttachmentError<`Function \"${Functions_[\"name\"]}\" has middleware requiring services that no middleware covering it provides`>\n : never\n>;\n\nexport type ValidateFunctionAttach<\n MiddlewareSpec_ extends AnyMiddlewareSpec,\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends AnyMiddlewareSpec,\n> = FunctionProvenance_ extends { readonly _tag: \"Convex\" }\n ? AttachmentError<`Plain Convex functions cannot have middleware—their raw handlers are passed through untouched`>\n : [\n Extract<\n MiddlewareSpecs_,\n { readonly key: Key<WithoutOptions<MiddlewareSpec_>> }\n >,\n ] extends [never]\n ? RuntimeAndFunctionType_[\"functionType\"] extends FunctionTypes<MiddlewareSpec_>\n ? unknown\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" does not declare function type \"${RuntimeAndFunctionType_[\"functionType\"]}\"`>\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" is already attached to this function`>;\n"],"mappings":";;;;;;;;;;;AAUA,MAAa,SAAS;AAGtB,MAAa,oBAAoB,MAC/B,UAAU,YAAY,GAAG,MAAM;AAEjC,MAAa,mBAAgD;CAC3D;CACA;CACA;AACF;;;;;;;;;;;;;;;;;;;;;;AAiKA,MAAa,wBAQT,KACA,YAcG;CACH,MAAM,EAAE,OAAO,UAAU,WAAW,QAAQ;CAC5C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAC1B,MAAM,IAAI,MACR,eAAe,IAAI,0CACrB;CAGF,SAAS,sBAAsB,CAAC;CAChC,MAAM,SAAS;CACf,OAAO,UAAU;CACjB,OAAO,MAAM;CACb,OAAO,gBAAgB;EACrB;EACA;EACA;CACF;CACA,IAAI,QAAQ,UAAU,KAAA,GACpB,eAAoB,QAAQ,SAAS,QAAQ,KAAK;CAEpD,IAAI,QAAQ,YAAY,KAAA,GACtB,eAAoB,QAAQ,WAAW,QAAQ,OAAO;CAExD,OAAO;AACT;AAkBF,MAAa,gBACX,oBAEA,gBAAgB,SAAS,mBACvB,WAAW,kBAAkB,eAAe,UAAU,KAAA,IAClD,CAAC,eAAe,KAAK,IACrB,CAAC,CACP"}
|
|
1
|
+
{"version":3,"file":"MiddlewareSpec.js","names":[],"sources":["../src/MiddlewareSpec.ts"],"sourcesContent":["import type { FunctionType, FunctionVisibility } from \"convex/server\";\nimport type * as Effect from \"effect/Effect\";\nimport * as Predicate from \"effect/Predicate\";\nimport type * as Schema from \"effect/Schema\";\nimport type { unhandled } from \"effect/Types\";\nimport type * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport type * as FunctionSpec from \"./FunctionSpec.js\";\nimport * as Lazy from \"./Lazy.js\";\nimport type * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType.js\";\n\nexport const TypeId = \"~@confect/core/MiddlewareSpec\";\nexport type TypeId = typeof TypeId;\n\nexport const isMiddlewareSpec = (u: unknown): u is AnyMiddlewareSpec =>\n Predicate.hasProperty(u, TypeId);\n\nexport const allFunctionTypes: ReadonlyArray<FunctionType> = [\n \"query\",\n \"mutation\",\n \"action\",\n];\n\nexport interface SupportedFunctionTypes {\n readonly query: boolean;\n readonly mutation: boolean;\n readonly action: boolean;\n}\n\n/**\n * Marker success type used by middleware to represent the handler's outcome\n * without exposing its concrete success value.\n *\n * Mirrors `RpcMiddleware.SuccessValue` in Effect.\n */\nexport interface SuccessValue {\n readonly _: unique symbol;\n}\n\n/**\n * The wrap-style middleware implementation shape: receives the downstream\n * effect (the remaining middleware plus the function handler) and the covered\n * invocation's metadata, and returns the effect that runs in its place.\n *\n * Mirrors `RpcMiddleware.RpcMiddleware` in Effect.\n */\nexport interface MiddlewareImpl<Provides_, E, R, Options_ = never> {\n (\n effect: Effect.Effect<SuccessValue, E | unhandled, Provides_>,\n context: MiddlewareOptions<Options_>,\n ): Effect.Effect<SuccessValue, E | unhandled, R>;\n}\n\nexport type MiddlewareOptions<Options_ = never> = {\n readonly invocation: {\n readonly name: string;\n readonly functionType: FunctionType;\n readonly functionVisibility: FunctionVisibility;\n readonly args: unknown;\n };\n} & ([Options_] extends [never] ? unknown : { readonly options: Options_ });\n\nexport interface AnyMiddlewareImpl {\n (\n effect: Effect.Effect<SuccessValue, any, any>,\n context: MiddlewareOptions | MiddlewareOptions<unknown>,\n ): Effect.Effect<SuccessValue, any, any>;\n}\n\n/**\n * The class shape produced by {@link MiddlewareSpec}. Only the static side is\n * ever used—the class is a value-level carrier for the middleware's key, its\n * declared functionTypes, and its (lazily-evaluated) error schema, plus the\n * type-level `Provides`/`Error` metadata. It is deliberately not a\n * `Context.Tag`: implementations are registered through the group `Registry`\n * (like `FunctionImpl`s), not resolved from a Layer context.\n */\nexport interface MiddlewareSpec<\n in out Self,\n Key_ extends string,\n Provides_,\n Requires_,\n ErrorSchema_ extends Schema.Codec<any, any>,\n FunctionTypes_ extends FunctionType,\n OptionsSchema_ extends Schema.Schema<any> = never,\n> {\n new (_: never): {\n readonly [TypeId]: TypeId;\n readonly key: Key_;\n };\n readonly [TypeId]: TypeId;\n readonly key: Key_;\n readonly functionTypes: SupportedFunctionTypes;\n readonly error?: ErrorSchema_;\n readonly options?: OptionsSchema_;\n readonly \"~Provides\": Provides_;\n readonly \"~Requires\": Requires_;\n readonly \"~Error\": ErrorSchema_;\n readonly \"~FunctionTypes\": FunctionTypes_;\n readonly \"~Self\": Self;\n readonly \"~Options\": OptionsSchema_;\n}\n\nexport interface AnyMiddlewareSpec {\n readonly [TypeId]: TypeId;\n readonly key: string;\n readonly functionTypes: SupportedFunctionTypes;\n readonly error?: Schema.Codec<any, any>;\n readonly options?: Schema.Schema<any>;\n readonly \"~Provides\": any;\n readonly \"~Requires\": any;\n readonly \"~Error\": any;\n readonly \"~FunctionTypes\": FunctionType;\n readonly \"~Options\": any;\n}\n\nexport type Options<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_[\"~Options\"][\"Type\"];\n\nexport type WithoutOptions<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? [MiddlewareSpec_[\"~Options\"]] extends [never]\n ? MiddlewareSpec_\n : never\n : never;\n\nexport type Key<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_[\"key\"];\n\nexport type Provides<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~Provides\"]\n : never;\n\n/**\n * The services a middleware's implementation may consume from middleware that\n * runs earlier in the same chain (type-level only, like `provides`).\n */\nexport type Requires<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~Requires\"]\n : never;\n\nexport type ErrorSchema<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec ? MiddlewareSpec_[\"~Error\"] : never;\n\nexport type Error<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~Error\"][\"Type\"]\n : never;\n\nexport type EncodedError<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~Error\"][\"Encoded\"]\n : never;\n\nexport type FunctionTypes<MiddlewareSpec_ extends AnyMiddlewareSpec> =\n MiddlewareSpec_ extends AnyMiddlewareSpec\n ? MiddlewareSpec_[\"~FunctionTypes\"]\n : never;\n\n/**\n * Declare a middleware's client-safe interface: its identifying key, the\n * service it provides to downstream handlers, the error schema its failures\n * encode through, and the function types it may attach to.\n *\n * ```ts\n * class RequireUser extends MiddlewareSpec.MiddlewareSpec<\n * RequireUser,\n * {\n * provides: CurrentUser;\n * }\n * >()(\"RequireUser\", {\n * error: () => NotSignedIn,\n * functionTypes: { query: true, mutation: true, action: false },\n * }) {}\n * ```\n *\n * The implementation is server-only and supplied separately via\n * `MiddlewareImpl.make` (or `makeByFunctionType`/`provides`) in\n * `@confect/server`.\n */\nexport const MiddlewareSpec =\n <Self, Config extends { provides?: any; requires?: any } = {}>() =>\n <\n const Key_ extends string,\n const FunctionTypesConfig_ extends SupportedFunctionTypes,\n ErrorSchema_ extends Schema.Codec<any, any> = never,\n OptionsSchema_ extends Schema.Schema<any> = never,\n >(\n key: Key_,\n options: {\n readonly error?: () => ErrorSchema_;\n readonly options?: () => OptionsSchema_;\n readonly functionTypes: FunctionTypesConfig_ &\n ValidateFunctionTypesConfig<FunctionTypesConfig_>;\n },\n ): MiddlewareSpec<\n Self,\n Key_,\n \"provides\" extends keyof Config ? Config[\"provides\"] : never,\n \"requires\" extends keyof Config ? Config[\"requires\"] : never,\n ErrorSchema_,\n FunctionTypesFromConfig<FunctionTypesConfig_>,\n OptionsSchema_\n > => {\n const { query, mutation, action } = options.functionTypes;\n if (!query && !mutation && !action) {\n throw new Error(\n `Middleware \"${key}\" must declare at least one function type`,\n );\n }\n\n function MiddlewareSpecClass() {}\n const class_ = MiddlewareSpecClass as any;\n class_[TypeId] = TypeId;\n class_.key = key;\n class_.functionTypes = {\n query,\n mutation,\n action,\n } satisfies SupportedFunctionTypes;\n if (options.error !== undefined) {\n Lazy.defineProperty(class_, \"error\", options.error);\n }\n if (options.options !== undefined) {\n Lazy.defineProperty(class_, \"options\", options.options);\n }\n return class_;\n };\n\ntype FunctionTypesFromConfig<Config extends SupportedFunctionTypes> = {\n [K in FunctionType]: Config[K] extends true ? K : never;\n}[FunctionType];\n\ntype ValidateFunctionTypesConfig<Config extends SupportedFunctionTypes> =\n ValidationResult<\n | {\n [K in keyof Config]: boolean extends Config[K]\n ? AttachmentError<`Function type flag \"${K & string}\" must be a literal \\`true\\` or \\`false\\`, not a computed \\`boolean\\``>\n : never;\n }[keyof Config]\n | ([FunctionTypesFromConfig<Config>] extends [never]\n ? AttachmentError<`A middleware must declare at least one function type`>\n : never)\n >;\n\nexport const errorSchemas = (\n middlewareSpecs: ReadonlyArray<AnyMiddlewareSpec>,\n): ReadonlyArray<Schema.Codec<any, any>> =>\n middlewareSpecs.flatMap((middlewareSpec) =>\n \"error\" in middlewareSpec && middlewareSpec.error !== undefined\n ? [middlewareSpec.error]\n : [],\n );\n\n/**\n * A branded, unconstructible type carrying a spec-authoring error message.\n * Surfaced as (part of) a parameter type so the diagnostic names the exact\n * problem at the `.middleware()`/`.addFunction()` call site.\n */\nexport interface AttachmentError<Message extends string> {\n readonly \"~@confect/core/MiddlewareSpec/AttachmentError\": Message;\n}\n\ntype FunctionTypeOf<FunctionSpec_ extends FunctionSpec.AnyWithProps> =\n FunctionSpec_[\"runtimeAndFunctionType\"][\"functionType\"];\n\ntype ValidationResult<Errors> = [Errors] extends [never] ? unknown : Errors;\n\n/**\n * A matching-type Convex-provenance function is rejected rather than silently\n * skipped: its raw handler passes through Confect untouched, so the middleware\n * could not actually cover it, and skipping it would be a policy hole.\n */\nexport type ValidateFunction<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n MiddlewareSpec_ extends AnyMiddlewareSpec,\n> = FunctionSpec_ extends any\n ? MiddlewareSpec_ extends any\n ? FunctionSpec_ extends {\n readonly functionProvenance: { readonly _tag: \"Convex\" };\n }\n ? FunctionTypeOf<FunctionSpec_> extends FunctionTypes<MiddlewareSpec_>\n ? AttachmentError<`Convex-provenance function \"${FunctionSpec_[\"name\"]}\" cannot be covered by middleware \"${Key<MiddlewareSpec_>}\"—attach middleware only to groups whose matching-type functions are all Confect-provenance`>\n : never\n : [\n Extract<\n FunctionSpec.MiddlewareSpecs<FunctionSpec_>,\n { readonly key: Key<WithoutOptions<MiddlewareSpec_>> }\n >,\n ] extends [never]\n ? FunctionTypeOf<FunctionSpec_> extends FunctionTypes<MiddlewareSpec_>\n ? never\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" does not declare function type \"${FunctionTypeOf<FunctionSpec_>}\", the type of function \"${FunctionSpec_[\"name\"]}\"`>\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" is already attached to function \"${FunctionSpec_[\"name\"]}\"`>\n : never\n : never;\n\n/**\n * Attachment order is chain order, so requiring `requires` to be satisfied by\n * already-attached middleware is exactly requiring the provider to run\n * earlier.\n */\nexport type ValidateAttach<\n MiddlewareSpec_ extends AnyMiddlewareSpec,\n Functions_ extends FunctionSpec.AnyWithProps,\n MiddlewareSpecs_ extends AnyMiddlewareSpec,\n> = [\n Extract<\n MiddlewareSpecs_,\n { readonly key: Key<WithoutOptions<MiddlewareSpec_>> }\n >,\n] extends [never]\n ? [Exclude<Requires<MiddlewareSpec_>, Provides<MiddlewareSpecs_>>] extends [\n never,\n ]\n ? ValidationResult<ValidateFunction<Functions_, MiddlewareSpec_>>\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" requires services that no middleware attached earlier to this group provides—attach the providing middleware first`>\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" is already attached to this group`>;\n\nexport type ValidateAddedFunction<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n MiddlewareSpecs_ extends AnyMiddlewareSpec,\n> = [MiddlewareSpecs_] extends [never]\n ? unknown\n : ValidationResult<\n | ValidateFunction<FunctionSpec_, MiddlewareSpecs_>\n | GroupOverlap<FunctionSpec_, MiddlewareSpecs_>\n >;\n\ntype GroupOverlap<\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n MiddlewareSpecs_ extends AnyMiddlewareSpec,\n> =\n FunctionSpec.MiddlewareSpecs<FunctionSpec_> extends infer FunctionMiddlewareSpec\n ? FunctionMiddlewareSpec extends AnyMiddlewareSpec\n ? [\n Extract<\n MiddlewareSpecs_,\n { readonly key: Key<WithoutOptions<FunctionMiddlewareSpec>> }\n >,\n ] extends [never]\n ? never\n : AttachmentError<`Middleware \"${Key<FunctionMiddlewareSpec>}\" is attached to both function \"${FunctionSpec_[\"name\"]}\" and its group`>\n : never\n : never;\n\n/**\n * The parameter-type validation applied to the group spec at `GroupImpl.make`:\n * every function's attached middleware must have its `requires` services\n * provided by some middleware covering that function (the group's or the\n * function's own). Checked here—with the group fully assembled—rather than at\n * the spec builders, because a function-level middleware's `requires` may\n * legitimately be satisfied by a group middleware the function spec never sees,\n * and group attachment is declaratively order-independent with respect to\n * `addFunction`.\n */\nexport type ValidateImplRequires<\n Functions_ extends FunctionSpec.AnyWithProps,\n GroupMiddlewareSpecs_ extends AnyMiddlewareSpec,\n> = ValidationResult<\n Functions_ extends any\n ? [\n Exclude<\n Requires<FunctionSpec.MiddlewareSpecs<Functions_>>,\n Provides<\n GroupMiddlewareSpecs_ | FunctionSpec.MiddlewareSpecs<Functions_>\n >\n >,\n ] extends [never]\n ? never\n : AttachmentError<`Function \"${Functions_[\"name\"]}\" has middleware requiring services that no middleware covering it provides`>\n : never\n>;\n\nexport type ValidateFunctionAttach<\n MiddlewareSpec_ extends AnyMiddlewareSpec,\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n MiddlewareSpecs_ extends AnyMiddlewareSpec,\n> = FunctionProvenance_ extends { readonly _tag: \"Convex\" }\n ? AttachmentError<`Plain Convex functions cannot have middleware—their raw handlers are passed through untouched`>\n : [\n Extract<\n MiddlewareSpecs_,\n { readonly key: Key<WithoutOptions<MiddlewareSpec_>> }\n >,\n ] extends [never]\n ? RuntimeAndFunctionType_[\"functionType\"] extends FunctionTypes<MiddlewareSpec_>\n ? unknown\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" does not declare function type \"${RuntimeAndFunctionType_[\"functionType\"]}\"`>\n : AttachmentError<`Middleware \"${Key<MiddlewareSpec_>}\" is already attached to this function`>;\n"],"mappings":";;;;;;;;;;;AAUA,MAAa,SAAS;AAGtB,MAAa,oBAAoB,MAC/B,UAAU,YAAY,GAAG,MAAM;AAEjC,MAAa,mBAAgD;CAC3D;CACA;CACA;AACF;;;;;;;;;;;;;;;;;;;;;;AAiKA,MAAa,wBAQT,KACA,YAcG;CACH,MAAM,EAAE,OAAO,UAAU,WAAW,QAAQ;CAC5C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAC1B,MAAM,IAAI,MACR,eAAe,IAAI,0CACrB;CAGF,SAAS,sBAAsB,CAAC;CAChC,MAAM,SAAS;CACf,OAAO,UAAU;CACjB,OAAO,MAAM;CACb,OAAO,gBAAgB;EACrB;EACA;EACA;CACF;CACA,IAAI,QAAQ,UAAU,KAAA,GACpB,eAAoB,QAAQ,SAAS,QAAQ,KAAK;CAEpD,IAAI,QAAQ,YAAY,KAAA,GACtB,eAAoB,QAAQ,WAAW,QAAQ,OAAO;CAExD,OAAO;AACT;AAkBF,MAAa,gBACX,oBAEA,gBAAgB,SAAS,mBACvB,WAAW,kBAAkB,eAAe,UAAU,KAAA,IAClD,CAAC,eAAe,KAAK,IACrB,CAAC,CACP"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type * as Schema from "effect/Schema";
|
|
2
|
+
import type * as FunctionProvenance from "./FunctionProvenance.js";
|
|
3
|
+
import type * as MiddlewareSpec from "./MiddlewareSpec.js";
|
|
4
|
+
/**
|
|
5
|
+
* A type-level function from a function's name and args fields to the fields a
|
|
6
|
+
* profile's builders require. Read `this["Name"]` and `this["Args"]` directly
|
|
7
|
+
* in `Type`, passing them to a type alias; a nested object type cannot name
|
|
8
|
+
* `this`.
|
|
9
|
+
*/
|
|
10
|
+
export interface Fields {
|
|
11
|
+
readonly Name: string;
|
|
12
|
+
readonly Args: unknown;
|
|
13
|
+
readonly Type: object;
|
|
14
|
+
}
|
|
15
|
+
export interface NoFields extends Fields {
|
|
16
|
+
readonly Type: {};
|
|
17
|
+
}
|
|
18
|
+
export type Apply<Fields_ extends Fields, Name_ extends string, Args_> = (Fields_ & {
|
|
19
|
+
readonly Name: Name_;
|
|
20
|
+
readonly Args: Args_;
|
|
21
|
+
})["Type"];
|
|
22
|
+
/**
|
|
23
|
+
* A base profile's fields and its extension's, for one function.
|
|
24
|
+
*/
|
|
25
|
+
export interface Both<Base extends Fields, Extension extends Fields> extends Fields {
|
|
26
|
+
readonly Type: Apply<Base, this["Name"], this["Args"]> & Apply<Extension, this["Name"], this["Args"]>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* What a profile callback sees. `args` stays a thunk.
|
|
30
|
+
*/
|
|
31
|
+
export interface Info<FieldsType> {
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly description?: string;
|
|
34
|
+
readonly args: () => FunctionProvenance.ArgsFields;
|
|
35
|
+
readonly fields: "description" extends keyof FieldsType ? Omit<FieldsType, "description"> : FieldsType;
|
|
36
|
+
}
|
|
37
|
+
export interface Attachment<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec, FieldsType> {
|
|
38
|
+
readonly spec: MiddlewareSpec_;
|
|
39
|
+
readonly options: (info: Info<FieldsType>) => MiddlewareSpec.Options<MiddlewareSpec_>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A middleware without options has none to compute and is attached at most
|
|
43
|
+
* once, so it joins a profile's list directly.
|
|
44
|
+
*/
|
|
45
|
+
type TakesOptions<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec> = [
|
|
46
|
+
MiddlewareSpec.WithoutOptions<MiddlewareSpec_>
|
|
47
|
+
] extends [never] ? unknown : MiddlewareSpec.AttachmentError<`Middleware "${MiddlewareSpec.Key<MiddlewareSpec_>}" takes no options, so list it without Profile.attach`>;
|
|
48
|
+
/**
|
|
49
|
+
* Attach a middleware that takes options to every function a profile builds,
|
|
50
|
+
* with options computed from each function's fields.
|
|
51
|
+
*/
|
|
52
|
+
export declare const attach: <MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec, FieldsType>(spec: MiddlewareSpec_ & TakesOptions<MiddlewareSpec_>, options: (info: Info<FieldsType>) => MiddlewareSpec.Options<NoInfer<MiddlewareSpec_>>) => Attachment<MiddlewareSpec_, FieldsType>;
|
|
53
|
+
/**
|
|
54
|
+
* A type function for a schema wrapper, applied to each declared codec.
|
|
55
|
+
*/
|
|
56
|
+
export interface SchemaTransform {
|
|
57
|
+
readonly Input: Schema.Codec<unknown, unknown>;
|
|
58
|
+
readonly Type: Schema.Codec<any, any>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Args wrappers transform the declared field map, before Struct composition.
|
|
62
|
+
*/
|
|
63
|
+
export interface ArgsTransform {
|
|
64
|
+
readonly Input: unknown;
|
|
65
|
+
readonly Type: FunctionProvenance.ArgsFields;
|
|
66
|
+
}
|
|
67
|
+
export interface Transforms {
|
|
68
|
+
readonly args?: ArgsTransform;
|
|
69
|
+
readonly returns?: SchemaTransform;
|
|
70
|
+
readonly item?: SchemaTransform;
|
|
71
|
+
readonly error?: SchemaTransform;
|
|
72
|
+
}
|
|
73
|
+
export type Transform<T, Input> = (T & {
|
|
74
|
+
readonly Input: Input;
|
|
75
|
+
})["Type" & keyof T];
|
|
76
|
+
/**
|
|
77
|
+
* Error wrappers opt into Schema.Never when no error thunk was declared.
|
|
78
|
+
*/
|
|
79
|
+
export type Wrappers<T extends Transforms, FieldsType> = {
|
|
80
|
+
readonly [K in keyof T]-?: K extends keyof Transforms ? <Input extends (K extends "args" ? FunctionProvenance.ArgsFields : Schema.Codec<any, any>)>(thunk: () => Input, info: Info<FieldsType>) => () => Transform<T[K], Input> : never;
|
|
81
|
+
} & {
|
|
82
|
+
readonly [K in Exclude<keyof Transforms, keyof T>]?: never;
|
|
83
|
+
};
|
|
84
|
+
type NonemptyError<T extends Transforms> = T extends {
|
|
85
|
+
readonly error: infer E extends SchemaTransform;
|
|
86
|
+
} ? [Transform<E, typeof Schema.Never>["Type"]] extends [never] ? MiddlewareSpec.AttachmentError<"Profile error wrapper must add an error to Schema.Never"> : unknown : unknown;
|
|
87
|
+
export type SchemaConfig<T extends Transforms, FieldsType> = ([
|
|
88
|
+
keyof T
|
|
89
|
+
] extends [never] ? {
|
|
90
|
+
readonly schemas?: never;
|
|
91
|
+
} : {
|
|
92
|
+
readonly schemas: Wrappers<T, FieldsType>;
|
|
93
|
+
}) & NonemptyError<T>;
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=Profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Profile.d.ts","sourceRoot":"","sources":["../src/Profile.ts"],"names":[],"mappings":"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"}
|
package/dist/Profile.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
+
//#region src/Profile.ts
|
|
3
|
+
var Profile_exports = /* @__PURE__ */ __exportAll({ attach: () => attach });
|
|
4
|
+
/**
|
|
5
|
+
* Attach a middleware that takes options to every function a profile builds,
|
|
6
|
+
* with options computed from each function's fields.
|
|
7
|
+
*/
|
|
8
|
+
const attach = (spec, options) => ({
|
|
9
|
+
spec,
|
|
10
|
+
options
|
|
11
|
+
});
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Profile_exports, attach };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=Profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Profile.js","names":[],"sources":["../src/Profile.ts"],"sourcesContent":["import type * as Schema from \"effect/Schema\";\nimport type * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport type * as MiddlewareSpec from \"./MiddlewareSpec.js\";\n\n/**\n * A type-level function from a function's name and args fields to the fields a\n * profile's builders require. Read `this[\"Name\"]` and `this[\"Args\"]` directly\n * in `Type`, passing them to a type alias; a nested object type cannot name\n * `this`.\n */\nexport interface Fields {\n readonly Name: string;\n // `unknown`, not `ArgsFields`: an index signature here would leak into\n // `keyof this[\"Args\"]`.\n readonly Args: unknown;\n readonly Type: object;\n}\n\nexport interface NoFields extends Fields {\n readonly Type: {};\n}\n\nexport type Apply<\n Fields_ extends Fields,\n Name_ extends string,\n Args_,\n> = (Fields_ & { readonly Name: Name_; readonly Args: Args_ })[\"Type\"];\n\n/**\n * A base profile's fields and its extension's, for one function.\n */\nexport interface Both<\n Base extends Fields,\n Extension extends Fields,\n> extends Fields {\n readonly Type: Apply<Base, this[\"Name\"], this[\"Args\"]> &\n Apply<Extension, this[\"Name\"], this[\"Args\"]>;\n}\n\n/**\n * What a profile callback sees. `args` stays a thunk.\n */\nexport interface Info<FieldsType> {\n readonly name: string;\n readonly description?: string;\n readonly args: () => FunctionProvenance.ArgsFields;\n readonly fields: \"description\" extends keyof FieldsType\n ? Omit<FieldsType, \"description\">\n : FieldsType;\n}\n\nexport interface Attachment<\n MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec,\n FieldsType,\n> {\n readonly spec: MiddlewareSpec_;\n readonly options: (\n info: Info<FieldsType>,\n ) => MiddlewareSpec.Options<MiddlewareSpec_>;\n}\n\n/**\n * A middleware without options has none to compute and is attached at most\n * once, so it joins a profile's list directly.\n */\ntype TakesOptions<MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec> = [\n MiddlewareSpec.WithoutOptions<MiddlewareSpec_>,\n] extends [never]\n ? unknown\n : MiddlewareSpec.AttachmentError<`Middleware \"${MiddlewareSpec.Key<MiddlewareSpec_>}\" takes no options, so list it without Profile.attach`>;\n\n/**\n * Attach a middleware that takes options to every function a profile builds,\n * with options computed from each function's fields.\n */\nexport const attach = <\n MiddlewareSpec_ extends MiddlewareSpec.AnyMiddlewareSpec,\n FieldsType,\n>(\n spec: MiddlewareSpec_ & TakesOptions<MiddlewareSpec_>,\n options: (\n info: Info<FieldsType>,\n ) => MiddlewareSpec.Options<NoInfer<MiddlewareSpec_>>,\n): Attachment<MiddlewareSpec_, FieldsType> => ({ spec, options });\n\n/**\n * A type function for a schema wrapper, applied to each declared codec.\n */\nexport interface SchemaTransform {\n readonly Input: Schema.Codec<unknown, unknown>;\n readonly Type: Schema.Codec<any, any>;\n}\n\n/**\n * Args wrappers transform the declared field map, before Struct composition.\n */\nexport interface ArgsTransform {\n readonly Input: unknown;\n readonly Type: FunctionProvenance.ArgsFields;\n}\n\nexport interface Transforms {\n readonly args?: ArgsTransform;\n readonly returns?: SchemaTransform;\n readonly item?: SchemaTransform;\n readonly error?: SchemaTransform;\n}\n\nexport type Transform<T, Input> = (T & { readonly Input: Input })[\"Type\" &\n keyof T];\n\n/**\n * Error wrappers opt into Schema.Never when no error thunk was declared.\n */\nexport type Wrappers<T extends Transforms, FieldsType> = {\n readonly [K in keyof T]-?: K extends keyof Transforms\n ? <\n Input extends (K extends \"args\"\n ? FunctionProvenance.ArgsFields\n : Schema.Codec<any, any>),\n >(\n thunk: () => Input,\n info: Info<FieldsType>,\n ) => () => Transform<T[K], Input>\n : never;\n} & { readonly [K in Exclude<keyof Transforms, keyof T>]?: never };\n\ntype NonemptyError<T extends Transforms> = T extends {\n readonly error: infer E extends SchemaTransform;\n}\n ? [Transform<E, typeof Schema.Never>[\"Type\"]] extends [never]\n ? MiddlewareSpec.AttachmentError<\"Profile error wrapper must add an error to Schema.Never\">\n : unknown\n : unknown;\n\nexport type SchemaConfig<T extends Transforms, FieldsType> = ([\n keyof T,\n] extends [never]\n ? { readonly schemas?: never }\n : { readonly schemas: Wrappers<T, FieldsType> }) &\n NonemptyError<T>;\n"],"mappings":";;;;;;;AA2EA,MAAa,UAIX,MACA,aAG6C;CAAE;CAAM;AAAQ"}
|
package/dist/Ref.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type * as MiddlewareAttachment from "./MiddlewareAttachment";
|
|
1
|
+
import type * as MiddlewareAttachment from "./MiddlewareAttachment.js";
|
|
2
2
|
import type { DefaultFunctionArgs, FunctionReference as ConvexFunctionReference, FunctionVisibility, PaginationOptions, PaginationResult } from "convex/server";
|
|
3
3
|
import type { Value } from "convex/values";
|
|
4
4
|
import { ConvexError } from "convex/values";
|
|
5
5
|
import * as Effect from "effect/Effect";
|
|
6
6
|
import * as Option from "effect/Option";
|
|
7
7
|
import * as Schema from "effect/Schema";
|
|
8
|
-
import type * as FunctionProvenance from "./FunctionProvenance";
|
|
9
|
-
import type * as FunctionSpec from "./FunctionSpec";
|
|
10
|
-
import * as MiddlewareSpec from "./MiddlewareSpec";
|
|
11
|
-
import type * as RuntimeAndFunctionType from "./RuntimeAndFunctionType";
|
|
8
|
+
import type * as FunctionProvenance from "./FunctionProvenance.js";
|
|
9
|
+
import type * as FunctionSpec from "./FunctionSpec.js";
|
|
10
|
+
import * as MiddlewareSpec from "./MiddlewareSpec.js";
|
|
11
|
+
import type * as RuntimeAndFunctionType from "./RuntimeAndFunctionType.js";
|
|
12
12
|
export declare const TypeId = "~@confect/core/Ref";
|
|
13
13
|
export type TypeId = typeof TypeId;
|
|
14
14
|
export interface Base<RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType, FunctionVisibility_ extends FunctionVisibility, Args_ extends DefaultFunctionArgs, Returns_, Error_ = never> {
|
|
@@ -19,6 +19,7 @@ export interface Base<RuntimeAndFunctionType_ extends RuntimeAndFunctionType.Run
|
|
|
19
19
|
readonly "~ArgsVariance"?: string extends keyof Args_ ? unknown : (args: Args_) => void;
|
|
20
20
|
readonly "~Returns": Returns_;
|
|
21
21
|
readonly "~Error": Error_;
|
|
22
|
+
readonly functionType?: RuntimeAndFunctionType_["functionType"];
|
|
22
23
|
readonly convexFunctionName: string;
|
|
23
24
|
/**
|
|
24
25
|
* Preserved for component references and function handles, which have no
|
|
@@ -169,13 +170,13 @@ convexFunctionNamespace: string, functionSpec: FunctionSpec_, groupMiddlewareAtt
|
|
|
169
170
|
* and `error` from the provenance on first use, so building it forces no
|
|
170
171
|
* schema.
|
|
171
172
|
*/
|
|
172
|
-
export declare const fromProvenance: (convexFunctionName: string, provenance: FunctionProvenance.AnyConfect, middlewareAttachments: ReadonlyArray<MiddlewareAttachment.MiddlewareAttachment>, functionReference?: ConvexFunctionReference<any, any
|
|
173
|
+
export declare const fromProvenance: (convexFunctionName: string, provenance: FunctionProvenance.AnyConfect, middlewareAttachments: ReadonlyArray<MiddlewareAttachment.MiddlewareAttachment>, functionReference?: ConvexFunctionReference<any, any>, functionType?: "query" | "mutation" | "action") => AnyConfect;
|
|
173
174
|
export declare const getConvexFunctionName: (ref: Any) => string;
|
|
174
175
|
export declare const getFunctionReference: <Ref_ extends Any>(ref: Ref_) => FunctionReference<Ref_>;
|
|
175
176
|
/**
|
|
176
177
|
* Adapt a native reference without assigning Confect codecs or typed errors.
|
|
177
178
|
*/
|
|
178
|
-
export declare const fromFunctionReference: <Type extends "query" | "mutation" | "action", Visibility extends FunctionVisibility, Args_ extends DefaultFunctionArgs, Returns_>(functionReference: ConvexFunctionReference<Type, Visibility, Args_, Returns_>) => ConvexRef<Extract<RuntimeAndFunctionType.RuntimeAndFunctionType, {
|
|
179
|
+
export declare const fromFunctionReference: <Type extends "query" | "mutation" | "action", Visibility extends FunctionVisibility, Args_ extends DefaultFunctionArgs, Returns_>(functionReference: ConvexFunctionReference<Type, Visibility, Args_, Returns_>, functionType?: NoInfer<Type>) => ConvexRef<Extract<RuntimeAndFunctionType.RuntimeAndFunctionType, {
|
|
179
180
|
readonly runtime: "Convex";
|
|
180
181
|
readonly functionType: Type;
|
|
181
182
|
}>, Visibility, Args_, Returns_>;
|
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,8 +1,8 @@
|
|
|
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 * as Predicate from "effect/Predicate";
|
|
5
4
|
import * as Schema from "effect/Schema";
|
|
5
|
+
import * as Predicate from "effect/Predicate";
|
|
6
6
|
import { getFunctionAddress, makeFunctionReference } from "convex/server";
|
|
7
7
|
import { ConvexError } from "convex/values";
|
|
8
8
|
import * as Effect from "effect/Effect";
|
|
@@ -42,8 +42,9 @@ const make = (convexFunctionNamespace, functionSpec, groupMiddlewareAttachments
|
|
|
42
42
|
return Match.value(functionSpec.functionProvenance).pipe(Match.tag("Convex", () => ({
|
|
43
43
|
[TypeId]: TypeId,
|
|
44
44
|
_tag: "Convex",
|
|
45
|
+
functionType: functionSpec.runtimeAndFunctionType.functionType,
|
|
45
46
|
convexFunctionName
|
|
46
|
-
})), Match.tag("Confect", (provenance) => fromProvenance(convexFunctionName, provenance, [...groupMiddlewareAttachments, ...functionSpec.middlewareAttachments])), Match.exhaustive);
|
|
47
|
+
})), Match.tag("Confect", (provenance) => fromProvenance(convexFunctionName, provenance, [...groupMiddlewareAttachments, ...functionSpec.middlewareAttachments], void 0, functionSpec.runtimeAndFunctionType.functionType)), Match.exhaustive);
|
|
47
48
|
};
|
|
48
49
|
/**
|
|
49
50
|
* Build a Confect ref that runs with `provenance`'s codecs. Pass
|
|
@@ -52,10 +53,11 @@ const make = (convexFunctionNamespace, functionSpec, groupMiddlewareAttachments
|
|
|
52
53
|
* and `error` from the provenance on first use, so building it forces no
|
|
53
54
|
* schema.
|
|
54
55
|
*/
|
|
55
|
-
const fromProvenance = (convexFunctionName, provenance, middlewareAttachments, functionReference) => {
|
|
56
|
+
const fromProvenance = (convexFunctionName, provenance, middlewareAttachments, functionReference, functionType) => {
|
|
56
57
|
const ref = {
|
|
57
58
|
[TypeId]: TypeId,
|
|
58
59
|
_tag: "Confect",
|
|
60
|
+
...functionType === void 0 ? {} : { functionType },
|
|
59
61
|
convexFunctionName,
|
|
60
62
|
...functionReference === void 0 ? {} : { functionReference },
|
|
61
63
|
kind: provenance.kind,
|
|
@@ -83,11 +85,12 @@ const getFunctionReference = (ref) => {
|
|
|
83
85
|
/**
|
|
84
86
|
* Adapt a native reference without assigning Confect codecs or typed errors.
|
|
85
87
|
*/
|
|
86
|
-
const fromFunctionReference = (functionReference) => {
|
|
88
|
+
const fromFunctionReference = (functionReference, functionType) => {
|
|
87
89
|
const address = getFunctionAddress(functionReference);
|
|
88
90
|
return {
|
|
89
91
|
[TypeId]: TypeId,
|
|
90
92
|
_tag: "Convex",
|
|
93
|
+
...functionType === void 0 ? {} : { functionType },
|
|
91
94
|
convexFunctionName: address.name ?? address.reference ?? address.functionHandle ?? "<external function>",
|
|
92
95
|
functionReference
|
|
93
96
|
};
|