@gaganref/confect-core 10.3.1-fork.69 → 10.3.1-fork.70

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.
@@ -88,7 +88,7 @@ export type Bound<Spec_ extends Spec.AnyWithProps, From extends IdScope.IdScope,
88
88
  /**
89
89
  * Build a publishable contract containing only exported functions and codecs.
90
90
  */
91
- export declare const make: <Spec_ extends Spec.AnyWithProps, const Scope extends IdScope.IdScope, const Tables extends string>(spec: Spec_, scope: Scope, tables: ReadonlyArray<Tables>) => Component<Spec_, Scope, Tables>;
91
+ export declare const contract: <Spec_ extends Spec.AnyWithProps, const Scope extends IdScope.IdScope, const Tables extends string>(spec: Spec_, scope: Scope, tables: ReadonlyArray<Tables>) => Component<Spec_, Scope, Tables>;
92
92
  /**
93
93
  * Bind the published contract to an actual installed component reference.
94
94
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../src/Component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../src/Component.ts"],"names":[],"mappings":"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"}
package/dist/Component.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
2
  import { defineProperty } from "./Lazy.js";
3
- import { fromProvenance, isRef, make as make$1 } from "./Ref.js";
3
+ import { fromProvenance, isRef, make } from "./Ref.js";
4
4
  import { app, instance } from "./IdScope.js";
5
5
  import { GenericId, rebase } from "./GenericId.js";
6
6
  import { groups } from "./Spec.js";
@@ -18,8 +18,8 @@ var Component_exports = /* @__PURE__ */ __exportAll({
18
18
  EmptyComponentScopeError: () => EmptyComponentScopeError,
19
19
  UninstalledComponentReferenceError: () => UninstalledComponentReferenceError,
20
20
  bind: () => bind,
21
+ contract: () => contract,
21
22
  id: () => id,
22
- make: () => make,
23
23
  schema: () => schema
24
24
  });
25
25
  var EmptyComponentScopeError = class extends Data.TaggedError("EmptyComponentScopeError") {
@@ -55,14 +55,14 @@ const BoundTypeId = "~@confect/core/BoundComponent";
55
55
  /**
56
56
  * Build a publishable contract containing only exported functions and codecs.
57
57
  */
58
- const make = (spec, scope, tables) => {
58
+ const contract = (spec, scope, tables) => {
59
59
  const specGroups = groups(spec);
60
60
  Result.getOrThrow(validateContract(scope, specGroups));
61
61
  const collect = (groups, prefix = "") => pipe(groups, Record.map((group, name) => {
62
62
  const path = prefix === "" ? name : `${prefix}/${name}`;
63
63
  const functions = pipe(group.functions, Record.filter((functionSpec) => {
64
64
  return Match.value(functionSpec.functionVisibility).pipe(Match.when("public", () => true), Match.when("internal", () => false), Match.exhaustive);
65
- }), Record.map((functionSpec) => make$1(path, functionSpec, group.middlewareAttachments)));
65
+ }), Record.map((functionSpec) => make(path, functionSpec, group.middlewareAttachments)));
66
66
  return {
67
67
  ...collect(group.groups, path),
68
68
  ...functions
@@ -78,11 +78,11 @@ const make = (spec, scope, tables) => {
78
78
  * Bind the published contract to an actual installed component reference.
79
79
  */
80
80
  const bind = (component, native, options) => {
81
- const contract = component[TypeId];
81
+ const published = component[TypeId];
82
82
  const address = getFunctionAddress(native);
83
- const installedReference = Result.getOrThrow(Result.fromNullishOr(address.reference, () => new UninstalledComponentReferenceError({ definitionScope: contract.scope })));
83
+ const installedReference = Result.getOrThrow(Result.fromNullishOr(address.reference, () => new UninstalledComponentReferenceError({ definitionScope: published.scope })));
84
84
  const scope = instance(options?.parentScope ?? app, installedReference);
85
- const rebase$1 = (schema) => rebase(schema, contract.scope, scope);
85
+ const rebase$1 = (schema) => rebase(schema, published.scope, scope);
86
86
  const rebaseMiddleware = memoize((middleware) => {
87
87
  if (!("error" in middleware)) return middleware;
88
88
  const boundMiddleware = Object.create(middleware);
@@ -123,11 +123,11 @@ const bind = (component, native, options) => {
123
123
  }), Match.exhaustive);
124
124
  } else return visit(child, reference);
125
125
  });
126
- const refs = visit(contract.refs, native);
126
+ const refs = visit(published.refs, native);
127
127
  Object.defineProperty(refs, BoundTypeId, { value: {
128
- from: contract.scope,
128
+ from: published.scope,
129
129
  scope,
130
- tables: contract.tables
130
+ tables: published.tables
131
131
  } });
132
132
  return refs;
133
133
  };
@@ -141,6 +141,6 @@ const id = (component, table) => GenericId(table, component[BoundTypeId].scope);
141
141
  */
142
142
  const schema = (component, codec) => rebase(codec, component[BoundTypeId].from, component[BoundTypeId].scope);
143
143
  //#endregion
144
- export { ComponentNameCollisionError, Component_exports, EmptyComponentScopeError, UninstalledComponentReferenceError, bind, id, make, schema };
144
+ export { ComponentNameCollisionError, Component_exports, EmptyComponentScopeError, UninstalledComponentReferenceError, bind, contract, id, schema };
145
145
 
146
146
  //# sourceMappingURL=Component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","names":["Spec.groups","Ref.make","IdScope.instance","IdScope.app","rebase","GenericId.rebase","Ref.isRef","Ref.fromProvenance","GenericId.GenericId"],"sources":["../src/Component.ts"],"sourcesContent":["import type { DefaultFunctionArgs, FunctionReference } from \"convex/server\";\nimport { getFunctionAddress } from \"convex/server\";\nimport * as Array from \"effect/Array\";\nimport * as Data from \"effect/Data\";\nimport * as Result from \"effect/Result\";\nimport { memoize, pipe } from \"effect/Function\";\nimport * as Match from \"effect/Match\";\nimport * as Record from \"effect/Record\";\nimport * as Schema from \"effect/Schema\";\nimport type * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport type * as FunctionSpec from \"./FunctionSpec.js\";\nimport * as GenericId from \"./GenericId.js\";\nimport type * as GroupSpec from \"./GroupSpec.js\";\nimport * as IdScope from \"./IdScope.js\";\nimport * as Lazy from \"./Lazy.js\";\nimport type * as MiddlewareSpec from \"./MiddlewareSpec.js\";\nimport * as Ref from \"./Ref.js\";\nimport type * as Refs from \"./Refs.js\";\nimport type * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType.js\";\nimport * as Spec from \"./Spec.js\";\n\nexport class EmptyComponentScopeError extends Data.TaggedError(\n \"EmptyComponentScopeError\",\n)<{\n readonly definitionScope: IdScope.IdScope;\n}> {\n override get message(): string {\n return \"A component contract requires a nonempty definition scope.\";\n }\n}\n\nexport class ComponentNameCollisionError extends Data.TaggedError(\n \"ComponentNameCollisionError\",\n)<{\n readonly groupPath: string;\n readonly functionName: string;\n}> {\n override get message(): string {\n return `Group and function at same level have same name ('${this.groupPath}:${this.functionName}')`;\n }\n}\n\nexport class UninstalledComponentReferenceError extends Data.TaggedError(\n \"UninstalledComponentReferenceError\",\n)<{\n readonly definitionScope: IdScope.IdScope;\n}> {\n override get message(): string {\n return \"Component.bind expects an installed component from the generated components registry.\";\n }\n}\n\nconst validateNames = (\n groups: Readonly<Record<string, GroupSpec.AnyWithProps>>,\n prefix = \"\",\n): Result.Result<void, ComponentNameCollisionError> => {\n for (const [name, group] of Record.toEntries(groups)) {\n const path = prefix === \"\" ? name : `${prefix}/${name}`;\n for (const functionSpec of Record.values(group.functions)) {\n if (Record.has(group.groups, functionSpec.name)) {\n return Result.fail(\n new ComponentNameCollisionError({\n groupPath: path,\n functionName: functionSpec.name,\n }),\n );\n }\n }\n const nested = validateNames(group.groups, path);\n if (Result.isFailure(nested)) return nested;\n }\n return Result.succeed(undefined);\n};\n\nconst validateContract = (\n scope: IdScope.IdScope,\n groups: Readonly<Record<string, GroupSpec.AnyWithProps>>,\n): Result.Result<\n void,\n EmptyComponentScopeError | ComponentNameCollisionError\n> =>\n scope === \"\"\n ? Result.fail(new EmptyComponentScopeError({ definitionScope: scope }))\n : validateNames(groups);\n\nconst TypeId = \"~@confect/core/Component\";\nconst BoundTypeId = \"~@confect/core/BoundComponent\";\n\n/**\n * Convex's generated ComponentApi erases database ID brands at the boundary.\n */\ntype Wire<A> = A extends { readonly __tableName: string }\n ? string\n : A extends\n | string\n | number\n | bigint\n | boolean\n | null\n | undefined\n | ArrayBuffer\n ? A\n : { [K in keyof A]: Wire<A[K]> };\n\ntype OmitEmpty<A> = {\n [K in keyof A as keyof A[K] extends never ? never : K]: A[K];\n};\ntype ApiGroups<\n GroupSpec_ extends GroupSpec.AnyWithProps,\n Name extends string | undefined,\n> = OmitEmpty<{\n [GroupName in GroupSpec.Name<GroupSpec_>]: ApiGroup<\n GroupSpec.WithName<GroupSpec_, GroupName>,\n Name\n >;\n}>;\ntype ApiGroup<\n GroupSpec_ extends GroupSpec.AnyWithProps,\n Name extends string | undefined,\n> = ApiGroups<GroupSpec.Groups<GroupSpec_>, Name> & {\n [\n FunctionSpec_ in GroupSpec.Functions<GroupSpec_> as FunctionSpec.GetFunctionVisibility<FunctionSpec_> extends \"public\"\n ? FunctionSpec.Name<FunctionSpec_>\n : never\n ]: FunctionReference<\n RuntimeAndFunctionType.GetFunctionType<\n FunctionSpec_[\"runtimeAndFunctionType\"]\n >,\n \"internal\",\n Extract<Wire<FunctionSpec.EncodedArgs<FunctionSpec_>>, DefaultFunctionArgs>,\n Wire<FunctionSpec.EncodedReturns<FunctionSpec_>>,\n Name\n >;\n};\n\nexport type Api<\n Spec_ extends Spec.AnyWithProps,\n Name extends string | undefined = string | undefined,\n> = ApiGroups<Spec.Groups<Spec_>, Name>;\n\ninterface Tree {\n readonly [key: string]: Tree | Ref.Any;\n}\n\nexport interface Component<\n Spec_ extends Spec.AnyWithProps,\n Scope extends IdScope.IdScope,\n Tables extends string = string,\n> {\n readonly [TypeId]: {\n readonly refs: Tree;\n readonly scope: Scope;\n readonly tables: ReadonlyArray<Tables>;\n };\n readonly \"~Spec\": Spec_;\n}\n\n/**\n * An opaque identity: its string representation is not part of the API.\n */\nexport type MountScope<\n Parent extends IdScope.IdScope,\n Name extends string | undefined,\n> = IdScope.Mount<Parent, Name>;\n\ntype MountName<ComponentApi> =\n ComponentApi extends FunctionReference<any, any, any, any, infer Name>\n ? Name\n : ComponentApi extends object\n ? {\n [Key in keyof ComponentApi]: MountName<ComponentApi[Key]>;\n }[keyof ComponentApi]\n : never;\n\ntype BindRefs<\n RefTree,\n From extends IdScope.IdScope,\n To extends IdScope.IdScope,\n> = RefTree extends Ref.Any\n ? RefTree extends { readonly _tag: \"Convex\" }\n ? Ref.ConvexRef<\n Ref.GetRuntimeAndFunctionType<RefTree>,\n \"internal\",\n Extract<Wire<Ref.Args<RefTree>>, DefaultFunctionArgs>,\n Wire<Ref.Returns<RefTree>>\n >\n : Extract<\n Ref.Ref<\n Ref.GetRuntimeAndFunctionType<RefTree>,\n \"internal\",\n Extract<\n GenericId.Rebase<Ref.Args<RefTree>, From, To>,\n DefaultFunctionArgs\n >,\n GenericId.Rebase<Ref.Returns<RefTree>, From, To>,\n GenericId.Rebase<Ref.Error<RefTree>, From, To>\n >,\n { readonly _tag: RefTree[\"_tag\"] }\n >\n : { [Key in keyof RefTree]: BindRefs<RefTree[Key], From, To> };\n\nexport type Bound<\n Spec_ extends Spec.AnyWithProps,\n From extends IdScope.IdScope,\n To extends IdScope.IdScope,\n Tables extends string,\n> = BindRefs<Refs.Refs<Spec_, Ref.AnyPublic>, From, To> & {\n readonly [BoundTypeId]: {\n readonly from: From;\n readonly scope: To;\n readonly tables: ReadonlyArray<Tables>;\n };\n};\n\n/**\n * Build a publishable contract containing only exported functions and codecs.\n */\nexport const make = <\n Spec_ extends Spec.AnyWithProps,\n const Scope extends IdScope.IdScope,\n const Tables extends string,\n>(\n spec: Spec_,\n scope: Scope,\n tables: ReadonlyArray<Tables>,\n): Component<Spec_, Scope, Tables> => {\n const specGroups = Spec.groups(spec);\n Result.getOrThrow(validateContract(scope, specGroups));\n const collect = (\n groups: Readonly<Record<string, GroupSpec.AnyWithProps>>,\n prefix = \"\",\n ): Tree =>\n pipe(\n groups,\n Record.map((group, name) => {\n const path = prefix === \"\" ? name : `${prefix}/${name}`;\n const functions = pipe(\n group.functions,\n Record.filter((functionSpec) => {\n return Match.value(functionSpec.functionVisibility).pipe(\n Match.when(\"public\", () => true),\n Match.when(\"internal\", () => false),\n Match.exhaustive,\n );\n }),\n Record.map((functionSpec) =>\n Ref.make(path, functionSpec, group.middlewareAttachments),\n ),\n );\n return { ...collect(group.groups, path), ...functions };\n }),\n Record.filter((children) => !Record.isEmptyRecord(children)),\n );\n return {\n [TypeId]: { refs: collect(specGroups), scope, tables },\n } as Component<Spec_, Scope, Tables>;\n};\n\n/**\n * Bind the published contract to an actual installed component reference.\n */\nexport const bind = <\n Spec_ extends Spec.AnyWithProps,\n From extends IdScope.IdScope,\n Tables extends string,\n Native extends Api<NoInfer<Spec_>>,\n const Parent extends IdScope.IdScope = IdScope.App,\n>(\n component: Component<Spec_, From, Tables>,\n native: Native,\n options?: { readonly parentScope: Parent },\n): Bound<\n Spec_,\n From,\n MountScope<Parent, Extract<MountName<Native>, string | undefined>>,\n Tables\n> => {\n const contract = component[TypeId];\n const address = getFunctionAddress(native);\n const installedReference = Result.getOrThrow(\n Result.fromNullishOr(\n address.reference,\n () =>\n new UninstalledComponentReferenceError({\n definitionScope: contract.scope,\n }),\n ),\n );\n // Preserve the opaque address as an identity only. Calls retain the native\n // references; no component address is constructed or parsed for routing.\n const scope = IdScope.instance(\n options?.parentScope ?? IdScope.app,\n installedReference,\n );\n const rebase = (schema: Schema.ConstraintCodec<any, any, never, never>) =>\n GenericId.rebase(schema, contract.scope, scope);\n const rebaseMiddleware = memoize(\n (middleware: MiddlewareSpec.AnyMiddlewareSpec) => {\n if (!(\"error\" in middleware)) return middleware;\n const boundMiddleware = Object.create(\n middleware,\n ) as MiddlewareSpec.AnyMiddlewareSpec;\n Lazy.defineProperty(boundMiddleware, \"error\", () => {\n const error = middleware.error;\n return error === undefined ? undefined : rebase(error);\n });\n return boundMiddleware;\n },\n );\n const visit = (tree: Tree, references: unknown): Tree =>\n Record.map(tree, (child, key) => {\n const reference = (references as Record<string, unknown>)[key];\n if (Ref.isRef(child)) {\n const nativeRef = reference as FunctionReference<any, any>;\n return Match.value(child).pipe(\n Match.tag(\"Convex\", (ref) => ({\n ...ref,\n functionReference: nativeRef,\n })),\n Match.tag(\"Confect\", (ref) => {\n const provenance = {\n _tag: \"Confect\" as const,\n kind: Match.value(ref.kind).pipe(\n Match.tag(\"Standard\", (kind) => kind),\n Match.tag(\"Paginated\", (kind) => {\n const boundKind = { _tag: \"Paginated\" as const };\n Lazy.defineProperty(boundKind, \"userArgs\", () =>\n Schema.Struct(Record.map(kind.userArgs.fields, rebase)),\n );\n Lazy.defineProperty(boundKind, \"item\", () =>\n rebase(kind.item),\n );\n Lazy.defineProperty(boundKind, \"page\", () =>\n rebase(kind.page),\n );\n return boundKind as FunctionProvenance.Paginated;\n }),\n Match.exhaustive,\n ),\n };\n Lazy.defineProperty(provenance, \"args\", () =>\n Schema.Struct(Record.map(ref.args.fields, rebase)),\n );\n Lazy.defineProperty(provenance, \"returns\", () =>\n rebase(ref.returns),\n );\n if (\"error\" in ref) {\n Lazy.defineProperty(provenance, \"error\", () => {\n const error = ref.error;\n return error === undefined ? undefined : rebase(error);\n });\n }\n return Ref.fromProvenance(\n ref.convexFunctionName,\n provenance as FunctionProvenance.AnyConfect,\n Array.map(ref.middlewareAttachments, (attachment) => ({\n ...attachment,\n spec: rebaseMiddleware(attachment.spec),\n })),\n nativeRef,\n ref.functionType,\n ref.reservedArgument,\n );\n }),\n Match.exhaustive,\n );\n } else {\n return visit(child, reference);\n }\n });\n const refs = visit(contract.refs, native);\n Object.defineProperty(refs, BoundTypeId, {\n value: { from: contract.scope, scope, tables: contract.tables },\n });\n return refs as Bound<\n Spec_,\n From,\n MountScope<Parent, Extract<MountName<Native>, string | undefined>>,\n Tables\n >;\n};\n\n/**\n * Reference an installed component's table ID in host schemas.\n */\nexport const id = <\n From extends IdScope.IdScope,\n To extends IdScope.IdScope,\n Tables extends string,\n const Table extends Tables,\n>(\n component: {\n readonly [BoundTypeId]: {\n readonly from: From;\n readonly scope: To;\n readonly tables: ReadonlyArray<Tables>;\n };\n },\n table: Table,\n) => GenericId.GenericId(table, component[BoundTypeId].scope);\n\n/**\n * Reuse a component's codec in a host function or table without losing its\n * scope.\n */\nexport const schema = <\n From extends IdScope.IdScope,\n To extends IdScope.IdScope,\n Schema_ extends Schema.Codec<any, any>,\n>(\n component: {\n readonly [BoundTypeId]: { readonly from: From; readonly scope: To };\n },\n codec: Schema_,\n) =>\n GenericId.rebase(\n codec,\n component[BoundTypeId].from,\n component[BoundTypeId].scope,\n );\n"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","names":["Spec.groups","Ref.make","IdScope.instance","IdScope.app","rebase","GenericId.rebase","Ref.isRef","Ref.fromProvenance","GenericId.GenericId"],"sources":["../src/Component.ts"],"sourcesContent":["import type { DefaultFunctionArgs, FunctionReference } from \"convex/server\";\nimport { getFunctionAddress } from \"convex/server\";\nimport * as Array from \"effect/Array\";\nimport * as Data from \"effect/Data\";\nimport * as Result from \"effect/Result\";\nimport { memoize, pipe } from \"effect/Function\";\nimport * as Match from \"effect/Match\";\nimport * as Record from \"effect/Record\";\nimport * as Schema from \"effect/Schema\";\nimport type * as FunctionProvenance from \"./FunctionProvenance.js\";\nimport type * as FunctionSpec from \"./FunctionSpec.js\";\nimport * as GenericId from \"./GenericId.js\";\nimport type * as GroupSpec from \"./GroupSpec.js\";\nimport * as IdScope from \"./IdScope.js\";\nimport * as Lazy from \"./Lazy.js\";\nimport type * as MiddlewareSpec from \"./MiddlewareSpec.js\";\nimport * as Ref from \"./Ref.js\";\nimport type * as Refs from \"./Refs.js\";\nimport type * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType.js\";\nimport * as Spec from \"./Spec.js\";\n\nexport class EmptyComponentScopeError extends Data.TaggedError(\n \"EmptyComponentScopeError\",\n)<{\n readonly definitionScope: IdScope.IdScope;\n}> {\n override get message(): string {\n return \"A component contract requires a nonempty definition scope.\";\n }\n}\n\nexport class ComponentNameCollisionError extends Data.TaggedError(\n \"ComponentNameCollisionError\",\n)<{\n readonly groupPath: string;\n readonly functionName: string;\n}> {\n override get message(): string {\n return `Group and function at same level have same name ('${this.groupPath}:${this.functionName}')`;\n }\n}\n\nexport class UninstalledComponentReferenceError extends Data.TaggedError(\n \"UninstalledComponentReferenceError\",\n)<{\n readonly definitionScope: IdScope.IdScope;\n}> {\n override get message(): string {\n return \"Component.bind expects an installed component from the generated components registry.\";\n }\n}\n\nconst validateNames = (\n groups: Readonly<Record<string, GroupSpec.AnyWithProps>>,\n prefix = \"\",\n): Result.Result<void, ComponentNameCollisionError> => {\n for (const [name, group] of Record.toEntries(groups)) {\n const path = prefix === \"\" ? name : `${prefix}/${name}`;\n for (const functionSpec of Record.values(group.functions)) {\n if (Record.has(group.groups, functionSpec.name)) {\n return Result.fail(\n new ComponentNameCollisionError({\n groupPath: path,\n functionName: functionSpec.name,\n }),\n );\n }\n }\n const nested = validateNames(group.groups, path);\n if (Result.isFailure(nested)) return nested;\n }\n return Result.succeed(undefined);\n};\n\nconst validateContract = (\n scope: IdScope.IdScope,\n groups: Readonly<Record<string, GroupSpec.AnyWithProps>>,\n): Result.Result<\n void,\n EmptyComponentScopeError | ComponentNameCollisionError\n> =>\n scope === \"\"\n ? Result.fail(new EmptyComponentScopeError({ definitionScope: scope }))\n : validateNames(groups);\n\nconst TypeId = \"~@confect/core/Component\";\nconst BoundTypeId = \"~@confect/core/BoundComponent\";\n\n/**\n * Convex's generated ComponentApi erases database ID brands at the boundary.\n */\ntype Wire<A> = A extends { readonly __tableName: string }\n ? string\n : A extends\n | string\n | number\n | bigint\n | boolean\n | null\n | undefined\n | ArrayBuffer\n ? A\n : { [K in keyof A]: Wire<A[K]> };\n\ntype OmitEmpty<A> = {\n [K in keyof A as keyof A[K] extends never ? never : K]: A[K];\n};\ntype ApiGroups<\n GroupSpec_ extends GroupSpec.AnyWithProps,\n Name extends string | undefined,\n> = OmitEmpty<{\n [GroupName in GroupSpec.Name<GroupSpec_>]: ApiGroup<\n GroupSpec.WithName<GroupSpec_, GroupName>,\n Name\n >;\n}>;\ntype ApiGroup<\n GroupSpec_ extends GroupSpec.AnyWithProps,\n Name extends string | undefined,\n> = ApiGroups<GroupSpec.Groups<GroupSpec_>, Name> & {\n [\n FunctionSpec_ in GroupSpec.Functions<GroupSpec_> as FunctionSpec.GetFunctionVisibility<FunctionSpec_> extends \"public\"\n ? FunctionSpec.Name<FunctionSpec_>\n : never\n ]: FunctionReference<\n RuntimeAndFunctionType.GetFunctionType<\n FunctionSpec_[\"runtimeAndFunctionType\"]\n >,\n \"internal\",\n Extract<Wire<FunctionSpec.EncodedArgs<FunctionSpec_>>, DefaultFunctionArgs>,\n Wire<FunctionSpec.EncodedReturns<FunctionSpec_>>,\n Name\n >;\n};\n\nexport type Api<\n Spec_ extends Spec.AnyWithProps,\n Name extends string | undefined = string | undefined,\n> = ApiGroups<Spec.Groups<Spec_>, Name>;\n\ninterface Tree {\n readonly [key: string]: Tree | Ref.Any;\n}\n\nexport interface Component<\n Spec_ extends Spec.AnyWithProps,\n Scope extends IdScope.IdScope,\n Tables extends string = string,\n> {\n readonly [TypeId]: {\n readonly refs: Tree;\n readonly scope: Scope;\n readonly tables: ReadonlyArray<Tables>;\n };\n readonly \"~Spec\": Spec_;\n}\n\n/**\n * An opaque identity: its string representation is not part of the API.\n */\nexport type MountScope<\n Parent extends IdScope.IdScope,\n Name extends string | undefined,\n> = IdScope.Mount<Parent, Name>;\n\ntype MountName<ComponentApi> =\n ComponentApi extends FunctionReference<any, any, any, any, infer Name>\n ? Name\n : ComponentApi extends object\n ? {\n [Key in keyof ComponentApi]: MountName<ComponentApi[Key]>;\n }[keyof ComponentApi]\n : never;\n\ntype BindRefs<\n RefTree,\n From extends IdScope.IdScope,\n To extends IdScope.IdScope,\n> = RefTree extends Ref.Any\n ? RefTree extends { readonly _tag: \"Convex\" }\n ? Ref.ConvexRef<\n Ref.GetRuntimeAndFunctionType<RefTree>,\n \"internal\",\n Extract<Wire<Ref.Args<RefTree>>, DefaultFunctionArgs>,\n Wire<Ref.Returns<RefTree>>\n >\n : Extract<\n Ref.Ref<\n Ref.GetRuntimeAndFunctionType<RefTree>,\n \"internal\",\n Extract<\n GenericId.Rebase<Ref.Args<RefTree>, From, To>,\n DefaultFunctionArgs\n >,\n GenericId.Rebase<Ref.Returns<RefTree>, From, To>,\n GenericId.Rebase<Ref.Error<RefTree>, From, To>\n >,\n { readonly _tag: RefTree[\"_tag\"] }\n >\n : { [Key in keyof RefTree]: BindRefs<RefTree[Key], From, To> };\n\nexport type Bound<\n Spec_ extends Spec.AnyWithProps,\n From extends IdScope.IdScope,\n To extends IdScope.IdScope,\n Tables extends string,\n> = BindRefs<Refs.Refs<Spec_, Ref.AnyPublic>, From, To> & {\n readonly [BoundTypeId]: {\n readonly from: From;\n readonly scope: To;\n readonly tables: ReadonlyArray<Tables>;\n };\n};\n\n/**\n * Build a publishable contract containing only exported functions and codecs.\n */\nexport const contract = <\n Spec_ extends Spec.AnyWithProps,\n const Scope extends IdScope.IdScope,\n const Tables extends string,\n>(\n spec: Spec_,\n scope: Scope,\n tables: ReadonlyArray<Tables>,\n): Component<Spec_, Scope, Tables> => {\n const specGroups = Spec.groups(spec);\n Result.getOrThrow(validateContract(scope, specGroups));\n const collect = (\n groups: Readonly<Record<string, GroupSpec.AnyWithProps>>,\n prefix = \"\",\n ): Tree =>\n pipe(\n groups,\n Record.map((group, name) => {\n const path = prefix === \"\" ? name : `${prefix}/${name}`;\n const functions = pipe(\n group.functions,\n Record.filter((functionSpec) => {\n return Match.value(functionSpec.functionVisibility).pipe(\n Match.when(\"public\", () => true),\n Match.when(\"internal\", () => false),\n Match.exhaustive,\n );\n }),\n Record.map((functionSpec) =>\n Ref.make(path, functionSpec, group.middlewareAttachments),\n ),\n );\n return { ...collect(group.groups, path), ...functions };\n }),\n Record.filter((children) => !Record.isEmptyRecord(children)),\n );\n return {\n [TypeId]: { refs: collect(specGroups), scope, tables },\n } as Component<Spec_, Scope, Tables>;\n};\n\n/**\n * Bind the published contract to an actual installed component reference.\n */\nexport const bind = <\n Spec_ extends Spec.AnyWithProps,\n From extends IdScope.IdScope,\n Tables extends string,\n Native extends Api<NoInfer<Spec_>>,\n const Parent extends IdScope.IdScope = IdScope.App,\n>(\n component: Component<Spec_, From, Tables>,\n native: Native,\n options?: { readonly parentScope: Parent },\n): Bound<\n Spec_,\n From,\n MountScope<Parent, Extract<MountName<Native>, string | undefined>>,\n Tables\n> => {\n const published = component[TypeId];\n const address = getFunctionAddress(native);\n const installedReference = Result.getOrThrow(\n Result.fromNullishOr(\n address.reference,\n () =>\n new UninstalledComponentReferenceError({\n definitionScope: published.scope,\n }),\n ),\n );\n // Preserve the opaque address as an identity only. Calls retain the native\n // references; no component address is constructed or parsed for routing.\n const scope = IdScope.instance(\n options?.parentScope ?? IdScope.app,\n installedReference,\n );\n const rebase = (schema: Schema.ConstraintCodec<any, any, never, never>) =>\n GenericId.rebase(schema, published.scope, scope);\n const rebaseMiddleware = memoize(\n (middleware: MiddlewareSpec.AnyMiddlewareSpec) => {\n if (!(\"error\" in middleware)) return middleware;\n const boundMiddleware = Object.create(\n middleware,\n ) as MiddlewareSpec.AnyMiddlewareSpec;\n Lazy.defineProperty(boundMiddleware, \"error\", () => {\n const error = middleware.error;\n return error === undefined ? undefined : rebase(error);\n });\n return boundMiddleware;\n },\n );\n const visit = (tree: Tree, references: unknown): Tree =>\n Record.map(tree, (child, key) => {\n const reference = (references as Record<string, unknown>)[key];\n if (Ref.isRef(child)) {\n const nativeRef = reference as FunctionReference<any, any>;\n return Match.value(child).pipe(\n Match.tag(\"Convex\", (ref) => ({\n ...ref,\n functionReference: nativeRef,\n })),\n Match.tag(\"Confect\", (ref) => {\n const provenance = {\n _tag: \"Confect\" as const,\n kind: Match.value(ref.kind).pipe(\n Match.tag(\"Standard\", (kind) => kind),\n Match.tag(\"Paginated\", (kind) => {\n const boundKind = { _tag: \"Paginated\" as const };\n Lazy.defineProperty(boundKind, \"userArgs\", () =>\n Schema.Struct(Record.map(kind.userArgs.fields, rebase)),\n );\n Lazy.defineProperty(boundKind, \"item\", () =>\n rebase(kind.item),\n );\n Lazy.defineProperty(boundKind, \"page\", () =>\n rebase(kind.page),\n );\n return boundKind as FunctionProvenance.Paginated;\n }),\n Match.exhaustive,\n ),\n };\n Lazy.defineProperty(provenance, \"args\", () =>\n Schema.Struct(Record.map(ref.args.fields, rebase)),\n );\n Lazy.defineProperty(provenance, \"returns\", () =>\n rebase(ref.returns),\n );\n if (\"error\" in ref) {\n Lazy.defineProperty(provenance, \"error\", () => {\n const error = ref.error;\n return error === undefined ? undefined : rebase(error);\n });\n }\n return Ref.fromProvenance(\n ref.convexFunctionName,\n provenance as FunctionProvenance.AnyConfect,\n Array.map(ref.middlewareAttachments, (attachment) => ({\n ...attachment,\n spec: rebaseMiddleware(attachment.spec),\n })),\n nativeRef,\n ref.functionType,\n ref.reservedArgument,\n );\n }),\n Match.exhaustive,\n );\n } else {\n return visit(child, reference);\n }\n });\n const refs = visit(published.refs, native);\n Object.defineProperty(refs, BoundTypeId, {\n value: { from: published.scope, scope, tables: published.tables },\n });\n return refs as Bound<\n Spec_,\n From,\n MountScope<Parent, Extract<MountName<Native>, string | undefined>>,\n Tables\n >;\n};\n\n/**\n * Reference an installed component's table ID in host schemas.\n */\nexport const id = <\n From extends IdScope.IdScope,\n To extends IdScope.IdScope,\n Tables extends string,\n const Table extends Tables,\n>(\n component: {\n readonly [BoundTypeId]: {\n readonly from: From;\n readonly scope: To;\n readonly tables: ReadonlyArray<Tables>;\n };\n },\n table: Table,\n) => GenericId.GenericId(table, component[BoundTypeId].scope);\n\n/**\n * Reuse a component's codec in a host function or table without losing its\n * scope.\n */\nexport const schema = <\n From extends IdScope.IdScope,\n To extends IdScope.IdScope,\n Schema_ extends Schema.Codec<any, any>,\n>(\n component: {\n readonly [BoundTypeId]: { readonly from: From; readonly scope: To };\n },\n codec: Schema_,\n) =>\n GenericId.rebase(\n codec,\n component[BoundTypeId].from,\n component[BoundTypeId].scope,\n );\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gaganref/confect-core",
3
- "version": "10.3.1-fork.69",
3
+ "version": "10.3.1-fork.70",
4
4
  "peerDependencies": {
5
5
  "convex": "^1.49.0",
6
6
  "effect": ">=4.0.0 <4.1.0"
package/src/Component.ts CHANGED
@@ -215,7 +215,7 @@ export type Bound<
215
215
  /**
216
216
  * Build a publishable contract containing only exported functions and codecs.
217
217
  */
218
- export const make = <
218
+ export const contract = <
219
219
  Spec_ extends Spec.AnyWithProps,
220
220
  const Scope extends IdScope.IdScope,
221
221
  const Tables extends string,
@@ -275,14 +275,14 @@ export const bind = <
275
275
  MountScope<Parent, Extract<MountName<Native>, string | undefined>>,
276
276
  Tables
277
277
  > => {
278
- const contract = component[TypeId];
278
+ const published = component[TypeId];
279
279
  const address = getFunctionAddress(native);
280
280
  const installedReference = Result.getOrThrow(
281
281
  Result.fromNullishOr(
282
282
  address.reference,
283
283
  () =>
284
284
  new UninstalledComponentReferenceError({
285
- definitionScope: contract.scope,
285
+ definitionScope: published.scope,
286
286
  }),
287
287
  ),
288
288
  );
@@ -293,7 +293,7 @@ export const bind = <
293
293
  installedReference,
294
294
  );
295
295
  const rebase = (schema: Schema.ConstraintCodec<any, any, never, never>) =>
296
- GenericId.rebase(schema, contract.scope, scope);
296
+ GenericId.rebase(schema, published.scope, scope);
297
297
  const rebaseMiddleware = memoize(
298
298
  (middleware: MiddlewareSpec.AnyMiddlewareSpec) => {
299
299
  if (!("error" in middleware)) return middleware;
@@ -368,9 +368,9 @@ export const bind = <
368
368
  return visit(child, reference);
369
369
  }
370
370
  });
371
- const refs = visit(contract.refs, native);
371
+ const refs = visit(published.refs, native);
372
372
  Object.defineProperty(refs, BoundTypeId, {
373
- value: { from: contract.scope, scope, tables: contract.tables },
373
+ value: { from: published.scope, scope, tables: published.tables },
374
374
  });
375
375
  return refs as Bound<
376
376
  Spec_,