@confect/core 1.0.0-next.0

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.
Files changed (67) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +7 -0
  3. package/dist/FunctionSpec.d.ts +95 -0
  4. package/dist/FunctionSpec.d.ts.map +1 -0
  5. package/dist/FunctionSpec.js +38 -0
  6. package/dist/FunctionSpec.js.map +1 -0
  7. package/dist/GenericId.d.ts +13 -0
  8. package/dist/GenericId.d.ts.map +1 -0
  9. package/dist/GenericId.js +15 -0
  10. package/dist/GenericId.js.map +1 -0
  11. package/dist/GroupPath.d.ts +33 -0
  12. package/dist/GroupPath.d.ts.map +1 -0
  13. package/dist/GroupPath.js +6 -0
  14. package/dist/GroupPath.js.map +1 -0
  15. package/dist/GroupSpec.d.ts +32 -0
  16. package/dist/GroupSpec.d.ts.map +1 -0
  17. package/dist/GroupSpec.js +49 -0
  18. package/dist/GroupSpec.js.map +1 -0
  19. package/dist/PaginationResult.d.ts +20 -0
  20. package/dist/PaginationResult.d.ts.map +1 -0
  21. package/dist/PaginationResult.js +16 -0
  22. package/dist/PaginationResult.js.map +1 -0
  23. package/dist/Ref.d.ts +40 -0
  24. package/dist/Ref.d.ts.map +1 -0
  25. package/dist/Ref.js +20 -0
  26. package/dist/Ref.js.map +1 -0
  27. package/dist/Refs.d.ts +22 -0
  28. package/dist/Refs.d.ts.map +1 -0
  29. package/dist/Refs.js +24 -0
  30. package/dist/Refs.js.map +1 -0
  31. package/dist/Spec.d.ts +23 -0
  32. package/dist/Spec.d.ts.map +1 -0
  33. package/dist/Spec.js +23 -0
  34. package/dist/Spec.js.map +1 -0
  35. package/dist/SystemFields.d.ts +28 -0
  36. package/dist/SystemFields.d.ts.map +1 -0
  37. package/dist/SystemFields.js +24 -0
  38. package/dist/SystemFields.js.map +1 -0
  39. package/dist/Types.d.ts +35 -0
  40. package/dist/Types.d.ts.map +1 -0
  41. package/dist/Types.js +6 -0
  42. package/dist/Types.js.map +1 -0
  43. package/dist/UserIdentity.d.ts +65 -0
  44. package/dist/UserIdentity.d.ts.map +1 -0
  45. package/dist/UserIdentity.js +32 -0
  46. package/dist/UserIdentity.js.map +1 -0
  47. package/dist/_virtual/rolldown_runtime.js +13 -0
  48. package/dist/index.d.ts +12 -0
  49. package/dist/index.js +13 -0
  50. package/dist/internal/utils.d.ts +5 -0
  51. package/dist/internal/utils.d.ts.map +1 -0
  52. package/dist/internal/utils.js +68 -0
  53. package/dist/internal/utils.js.map +1 -0
  54. package/package.json +73 -0
  55. package/src/FunctionSpec.ts +153 -0
  56. package/src/GenericId.ts +18 -0
  57. package/src/GroupPath.ts +61 -0
  58. package/src/GroupSpec.ts +120 -0
  59. package/src/PaginationResult.ts +21 -0
  60. package/src/Ref.ts +175 -0
  61. package/src/Refs.ts +99 -0
  62. package/src/Spec.ts +52 -0
  63. package/src/SystemFields.ts +51 -0
  64. package/src/Types.ts +166 -0
  65. package/src/UserIdentity.ts +28 -0
  66. package/src/index.ts +11 -0
  67. package/src/internal/utils.ts +86 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # @confect/core
2
+
3
+ ## 1.0.0-next.0
4
+
5
+ ### Major Changes
6
+
7
+ - 2ff70a7: Initial release.
package/LICENSE ADDED
@@ -0,0 +1,7 @@
1
+ ISC License
2
+
3
+ Copyright 2024 RJ Dellecese
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,95 @@
1
+ import { Schema } from "effect";
2
+ import { FunctionType, FunctionVisibility, RegisteredAction, RegisteredMutation, RegisteredQuery } from "convex/server";
3
+
4
+ //#region src/FunctionSpec.d.ts
5
+ declare namespace FunctionSpec_d_exports {
6
+ export { Any, AnyWithProps, AnyWithPropsWithFunctionType, Args, ExcludeName, FunctionSpec, GetFunctionType, GetFunctionVisibility, Name, RegisteredFunction, Returns, TypeId, WithFunctionType, WithName, action, internalAction, internalMutation, internalQuery, isFunctionSpec, mutation, query };
7
+ }
8
+ declare const TypeId = "@confect/core/api/FunctionSpec";
9
+ type TypeId = typeof TypeId;
10
+ declare const isFunctionSpec: (u: unknown) => u is AnyWithProps;
11
+ interface FunctionSpec<FunctionType_ extends FunctionType, FunctionVisibility_ extends FunctionVisibility, Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext> {
12
+ readonly [TypeId]: TypeId;
13
+ readonly functionType: FunctionType_;
14
+ readonly functionVisibility: FunctionVisibility_;
15
+ readonly name: Name_;
16
+ readonly args: Args_;
17
+ readonly returns: Returns_;
18
+ }
19
+ interface Any {
20
+ readonly [TypeId]: TypeId;
21
+ }
22
+ interface AnyWithProps extends FunctionSpec<FunctionType, FunctionVisibility, string, Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {}
23
+ interface AnyWithPropsWithFunctionType<FunctionType_ extends FunctionType> extends FunctionSpec<FunctionType_, FunctionVisibility, string, Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {}
24
+ type GetFunctionType<Function extends AnyWithProps> = Function["functionType"];
25
+ type GetFunctionVisibility<Function extends AnyWithProps> = Function["functionVisibility"];
26
+ type Name<Function extends AnyWithProps> = Function["name"];
27
+ type Args<Function extends AnyWithProps> = Function["args"];
28
+ type Returns<Function extends AnyWithProps> = Function["returns"];
29
+ type WithName<Function extends AnyWithProps, Name_ extends string> = Extract<Function, {
30
+ readonly name: Name_;
31
+ }>;
32
+ type WithFunctionType<Function extends AnyWithProps, FunctionType_ extends FunctionType> = Extract<Function, {
33
+ readonly functionType: FunctionType_;
34
+ }>;
35
+ type ExcludeName<Function extends AnyWithProps, Name_ extends Name<Function>> = Exclude<Function, {
36
+ readonly name: Name_;
37
+ }>;
38
+ type RegisteredFunction<Function extends AnyWithProps> = Function["functionType"] extends "query" ? RegisteredQuery<GetFunctionVisibility<Function>, Args<Function>["Encoded"], Promise<Returns<Function>["Encoded"]>> : Function["functionType"] extends "mutation" ? RegisteredMutation<GetFunctionVisibility<Function>, Args<Function>["Encoded"], Promise<Returns<Function>["Encoded"]>> : Function["functionType"] extends "action" ? RegisteredAction<GetFunctionVisibility<Function>, Args<Function>["Encoded"], Promise<Returns<Function>["Encoded"]>> : never;
39
+ declare const internalQuery: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext>({
40
+ name,
41
+ args,
42
+ returns
43
+ }: {
44
+ name: Name_;
45
+ args: Args_;
46
+ returns: Returns_;
47
+ }) => FunctionSpec<"query", "internal", Name_, Args_, Returns_>;
48
+ declare const query: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext>({
49
+ name,
50
+ args,
51
+ returns
52
+ }: {
53
+ name: Name_;
54
+ args: Args_;
55
+ returns: Returns_;
56
+ }) => FunctionSpec<"query", "public", Name_, Args_, Returns_>;
57
+ declare const internalMutation: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext>({
58
+ name,
59
+ args,
60
+ returns
61
+ }: {
62
+ name: Name_;
63
+ args: Args_;
64
+ returns: Returns_;
65
+ }) => FunctionSpec<"mutation", "internal", Name_, Args_, Returns_>;
66
+ declare const mutation: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext>({
67
+ name,
68
+ args,
69
+ returns
70
+ }: {
71
+ name: Name_;
72
+ args: Args_;
73
+ returns: Returns_;
74
+ }) => FunctionSpec<"mutation", "public", Name_, Args_, Returns_>;
75
+ declare const internalAction: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext>({
76
+ name,
77
+ args,
78
+ returns
79
+ }: {
80
+ name: Name_;
81
+ args: Args_;
82
+ returns: Returns_;
83
+ }) => FunctionSpec<"action", "internal", Name_, Args_, Returns_>;
84
+ declare const action: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext>({
85
+ name,
86
+ args,
87
+ returns
88
+ }: {
89
+ name: Name_;
90
+ args: Args_;
91
+ returns: Returns_;
92
+ }) => FunctionSpec<"action", "public", Name_, Args_, Returns_>;
93
+ //#endregion
94
+ export { Any, AnyWithProps, AnyWithPropsWithFunctionType, Args, ExcludeName, FunctionSpec, FunctionSpec_d_exports, GetFunctionType, GetFunctionVisibility, Name, RegisteredFunction, Returns, TypeId, WithFunctionType, WithName, action, internalAction, internalMutation, internalQuery, isFunctionSpec, mutation, query };
95
+ //# sourceMappingURL=FunctionSpec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionSpec.d.ts","names":[],"sources":["../src/FunctionSpec.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { __export } from "./_virtual/rolldown_runtime.js";
2
+ import { validateConfectFunctionIdentifier } from "./internal/utils.js";
3
+ import { Predicate } from "effect";
4
+
5
+ //#region src/FunctionSpec.ts
6
+ var FunctionSpec_exports = /* @__PURE__ */ __export({
7
+ TypeId: () => TypeId,
8
+ action: () => action,
9
+ internalAction: () => internalAction,
10
+ internalMutation: () => internalMutation,
11
+ internalQuery: () => internalQuery,
12
+ isFunctionSpec: () => isFunctionSpec,
13
+ mutation: () => mutation,
14
+ query: () => query
15
+ });
16
+ const TypeId = "@confect/core/api/FunctionSpec";
17
+ const isFunctionSpec = (u) => Predicate.hasProperty(u, TypeId);
18
+ const Proto = { [TypeId]: TypeId };
19
+ const make = (functionType, functionVisibility) => ({ name, args, returns }) => {
20
+ validateConfectFunctionIdentifier(name);
21
+ return Object.assign(Object.create(Proto), {
22
+ functionType,
23
+ functionVisibility,
24
+ name,
25
+ args,
26
+ returns
27
+ });
28
+ };
29
+ const internalQuery = make("query", "internal");
30
+ const query = make("query", "public");
31
+ const internalMutation = make("mutation", "internal");
32
+ const mutation = make("mutation", "public");
33
+ const internalAction = make("action", "internal");
34
+ const action = make("action", "public");
35
+
36
+ //#endregion
37
+ export { FunctionSpec_exports, TypeId, action, internalAction, internalMutation, internalQuery, isFunctionSpec, mutation, query };
38
+ //# sourceMappingURL=FunctionSpec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionSpec.js","names":[],"sources":["../src/FunctionSpec.ts"],"sourcesContent":["import type {\n FunctionType,\n FunctionVisibility,\n RegisteredAction,\n RegisteredMutation,\n RegisteredQuery,\n} from \"convex/server\";\nimport type { Schema } from \"effect\";\nimport { Predicate } from \"effect\";\nimport { validateConfectFunctionIdentifier } from \"./internal/utils\";\n\nexport const TypeId = \"@confect/core/api/FunctionSpec\";\nexport type TypeId = typeof TypeId;\n\nexport const isFunctionSpec = (u: unknown): u is AnyWithProps =>\n Predicate.hasProperty(u, TypeId);\n\nexport interface FunctionSpec<\n FunctionType_ extends FunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n Args_ extends Schema.Schema.AnyNoContext,\n Returns_ extends Schema.Schema.AnyNoContext,\n> {\n readonly [TypeId]: TypeId;\n readonly functionType: FunctionType_;\n readonly functionVisibility: FunctionVisibility_;\n readonly name: Name_;\n readonly args: Args_;\n readonly returns: Returns_;\n}\n\nexport interface Any {\n readonly [TypeId]: TypeId;\n}\n\nexport interface AnyWithProps\n extends FunctionSpec<\n FunctionType,\n FunctionVisibility,\n string,\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n > {}\n\nexport interface AnyWithPropsWithFunctionType<\n FunctionType_ extends FunctionType,\n> extends FunctionSpec<\n FunctionType_,\n FunctionVisibility,\n string,\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n > {}\n\nexport type GetFunctionType<Function extends AnyWithProps> =\n Function[\"functionType\"];\n\nexport type GetFunctionVisibility<Function extends AnyWithProps> =\n Function[\"functionVisibility\"];\n\nexport type Name<Function extends AnyWithProps> = Function[\"name\"];\n\nexport type Args<Function extends AnyWithProps> = Function[\"args\"];\n\nexport type Returns<Function extends AnyWithProps> = Function[\"returns\"];\n\nexport type WithName<\n Function extends AnyWithProps,\n Name_ extends string,\n> = Extract<Function, { readonly name: Name_ }>;\n\nexport type WithFunctionType<\n Function extends AnyWithProps,\n FunctionType_ extends FunctionType,\n> = Extract<Function, { readonly functionType: FunctionType_ }>;\n\nexport type ExcludeName<\n Function extends AnyWithProps,\n Name_ extends Name<Function>,\n> = Exclude<Function, { readonly name: Name_ }>;\n\nexport type RegisteredFunction<Function extends AnyWithProps> =\n Function[\"functionType\"] extends \"query\"\n ? RegisteredQuery<\n GetFunctionVisibility<Function>,\n Args<Function>[\"Encoded\"],\n Promise<Returns<Function>[\"Encoded\"]>\n >\n : Function[\"functionType\"] extends \"mutation\"\n ? RegisteredMutation<\n GetFunctionVisibility<Function>,\n Args<Function>[\"Encoded\"],\n Promise<Returns<Function>[\"Encoded\"]>\n >\n : Function[\"functionType\"] extends \"action\"\n ? RegisteredAction<\n GetFunctionVisibility<Function>,\n Args<Function>[\"Encoded\"],\n Promise<Returns<Function>[\"Encoded\"]>\n >\n : never;\n\nconst Proto = {\n [TypeId]: TypeId,\n};\n\nconst make =\n <\n FunctionType_ extends FunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n >(\n functionType: FunctionType_,\n functionVisibility: FunctionVisibility_,\n ) =>\n <\n const Name_ extends string,\n Args_ extends Schema.Schema.AnyNoContext,\n Returns_ extends Schema.Schema.AnyNoContext,\n >({\n name,\n args,\n returns,\n }: {\n name: Name_;\n args: Args_;\n returns: Returns_;\n }): FunctionSpec<\n FunctionType_,\n FunctionVisibility_,\n Name_,\n Args_,\n Returns_\n > => {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n functionType,\n functionVisibility,\n name,\n args,\n returns,\n });\n };\n\nexport const internalQuery = make(\"query\", \"internal\");\nexport const query = make(\"query\", \"public\");\n\nexport const internalMutation = make(\"mutation\", \"internal\");\nexport const mutation = make(\"mutation\", \"public\");\n\nexport const internalAction = make(\"action\", \"internal\");\nexport const action = make(\"action\", \"public\");\n"],"mappings":";;;;;;;;;;;;;;;AAWA,MAAa,SAAS;AAGtB,MAAa,kBAAkB,MAC7B,UAAU,YAAY,GAAG,OAAO;AAwFlC,MAAM,QAAQ,GACX,SAAS,QACX;AAED,MAAM,QAKF,cACA,wBAMA,EACA,MACA,MACA,cAWG;AACH,mCAAkC,KAAK;AAEvC,QAAO,OAAO,OAAO,OAAO,OAAO,MAAM,EAAE;EACzC;EACA;EACA;EACA;EACA;EACD,CAAC;;AAGN,MAAa,gBAAgB,KAAK,SAAS,WAAW;AACtD,MAAa,QAAQ,KAAK,SAAS,SAAS;AAE5C,MAAa,mBAAmB,KAAK,YAAY,WAAW;AAC5D,MAAa,WAAW,KAAK,YAAY,SAAS;AAElD,MAAa,iBAAiB,KAAK,UAAU,WAAW;AACxD,MAAa,SAAS,KAAK,UAAU,SAAS"}
@@ -0,0 +1,13 @@
1
+ import { Option, Schema, SchemaAST } from "effect";
2
+ import { GenericId as GenericId$1 } from "convex/values";
3
+
4
+ //#region src/GenericId.d.ts
5
+ declare namespace GenericId_d_exports {
6
+ export { GenericId, tableName };
7
+ }
8
+ declare const GenericId: <TableName extends string>(tableName: TableName) => Schema.Schema<GenericId$1<TableName>>;
9
+ type GenericId<TableName extends string> = GenericId$1<TableName>;
10
+ declare const tableName: <TableName extends string>(ast: SchemaAST.AST) => Option.Option<TableName>;
11
+ //#endregion
12
+ export { GenericId, GenericId_d_exports, tableName };
13
+ //# sourceMappingURL=GenericId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericId.d.ts","names":[],"sources":["../src/GenericId.ts"],"sourcesContent":[],"mappings":";;;;;;;cAKa,iDACA,cACV,MAAA,CAAO,OAAO,YAAgB;KAKrB,sCAAsC,YAAgB;cAErD,2CACN,SAAA,CAAU,QACd,MAAA,CAAO,OAAO"}
@@ -0,0 +1,15 @@
1
+ import { __export } from "./_virtual/rolldown_runtime.js";
2
+ import { Schema, SchemaAST } from "effect";
3
+
4
+ //#region src/GenericId.ts
5
+ var GenericId_exports = /* @__PURE__ */ __export({
6
+ GenericId: () => GenericId,
7
+ tableName: () => tableName
8
+ });
9
+ const ConvexId = Symbol.for("ConvexId");
10
+ const GenericId = (tableName$1) => Schema.String.pipe(Schema.annotations({ [ConvexId]: tableName$1 }));
11
+ const tableName = (ast) => SchemaAST.getAnnotation(ConvexId)(ast);
12
+
13
+ //#endregion
14
+ export { GenericId, GenericId_exports, tableName };
15
+ //# sourceMappingURL=GenericId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericId.js","names":["tableName"],"sources":["../src/GenericId.ts"],"sourcesContent":["import type { GenericId as ConvexGenericId } from \"convex/values\";\nimport { type Option, Schema, SchemaAST } from \"effect\";\n\nconst ConvexId = Symbol.for(\"ConvexId\");\n\nexport const GenericId = <TableName extends string>(\n tableName: TableName,\n): Schema.Schema<ConvexGenericId<TableName>> =>\n Schema.String.pipe(\n Schema.annotations({ [ConvexId]: tableName }),\n ) as unknown as Schema.Schema<ConvexGenericId<TableName>>;\n\nexport type GenericId<TableName extends string> = ConvexGenericId<TableName>;\n\nexport const tableName = <TableName extends string>(\n ast: SchemaAST.AST,\n): Option.Option<TableName> =>\n SchemaAST.getAnnotation<TableName>(ConvexId)(ast);\n"],"mappings":";;;;;;;;AAGA,MAAM,WAAW,OAAO,IAAI,WAAW;AAEvC,MAAa,aACX,gBAEA,OAAO,OAAO,KACZ,OAAO,YAAY,GAAG,WAAWA,aAAW,CAAC,CAC9C;AAIH,MAAa,aACX,QAEA,UAAU,cAAyB,SAAS,CAAC,IAAI"}
@@ -0,0 +1,33 @@
1
+ import { AnyWithProps, Groups, Name, WithName } from "./GroupSpec.js";
2
+ import { Record } from "effect";
3
+
4
+ //#region src/GroupPath.d.ts
5
+ declare namespace GroupPath_d_exports {
6
+ export { All, GroupAt, SubGroupsAt };
7
+ }
8
+ /**
9
+ * Recursively generates paths for a group and its nested groups.
10
+ *
11
+ * - For a group with no subgroups, returns just the group name.
12
+ * - For a group with subgroups, returns the group name plus all possible paths through its direct subgroups.
13
+ */
14
+ type All<Group extends AnyWithProps, Depth extends 1[] = []> = Depth["length"] extends 15 ? string : Group extends any ? [Groups<Group>] extends [never] ? Name<Group> : Name<Group> | AllHelper<Group, Groups<Group>, Depth> : never;
15
+ type AllHelper<Parent extends AnyWithProps, Groups_ extends AnyWithProps, Depth extends 1[] = []> = Groups_ extends AnyWithProps ? `${Name<Parent>}.${All<Groups_, [...Depth, 1]>}` : never;
16
+ /**
17
+ * Recursively extracts the group at the given dot-separated path.
18
+ * Path must match the format defined in `Path` above, e.g. "group" or "group.subgroup".
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * type G = WithPath<RootGroup, "group.subgroup">;
23
+ * ```
24
+ */
25
+ type GroupAt<Group, Path extends string> = Group extends AnyWithProps ? Path extends `${infer Head}.${infer Tail}` ? Group extends {
26
+ readonly name: Head;
27
+ } ? Group extends {
28
+ readonly groups: Record.ReadonlyRecord<string, infer SubGroup>;
29
+ } ? GroupAt<SubGroup, Tail> : never : never : WithName<Group, Path> : never;
30
+ type SubGroupsAt<Group extends AnyWithProps, GroupPath extends string> = Groups<GroupAt<Group, GroupPath>> extends infer SubGroups ? SubGroups extends AnyWithProps ? `${GroupPath}.${Name<SubGroups>}` : never : never;
31
+ //#endregion
32
+ export { All, GroupAt, GroupPath_d_exports, SubGroupsAt };
33
+ //# sourceMappingURL=GroupPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupPath.d.ts","names":[],"sources":["../src/GroupPath.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;KASY,kBACI,wCAEZ,sCAEA,qBACG,OAAiB,0BAChB,KAAe,SACf,KAAe,SAAS,UAAU,OAAO,OAAiB,QAAQ;KAGrE,yBACY,8BACC,wCAEd,gBAAgB,kBACb,KAAe,WAAW,IAAI,aAAa;AAhBlD;;;;;;;;;AAQQ,KAoBI,OApBJ,CAAA,KAAA,EAAA,aAAA,MAAA,CAAA,GAuBJ,KAvBI,SAuBU,YAvBV,GAwBJ,IAxBI,SAAA,GAAA,KAAA,KAAA,IAAA,KAAA,KAAA,EAAA,GAyBF,KAzBE,SAAA;EAAkC,SAAA,IAAA,EAyBL,IAzBK;CAAwB,GA0B1D,KA1B0D,SAAA;EAAjB,SAAA,MAAA,EA2BtB,MAAA,CAAO,cA3Be,CAAA,MAAA,EAAA,KAAA,SAAA,CAAA;CAAyB,GA6BhE,OA7BgE,CA6BxD,QA7BwD,EA6B9C,IA7B8C,CAAA,GAAA,KAAA,GAAA,KAAA,GAgCpE,QAhCoE,CAgCjD,KAhCiD,EAgC1C,IAhC0C,CAAA,GAAA,KAAA;AAA1C,KAmCpB,WAnCoB,CAAA,cAoChB,YApCgB,EAAA,kBAAA,MAAA,CAAA,GAuC9B,MAvC8B,CAuCb,OAvCa,CAuCL,KAvCK,EAuCE,SAvCF,CAAA,CAAA,SAAA,KAAA,UAAA,GAwC1B,SAxC0B,SAwCR,YAxCQ,GAAA,GAyCrB,SAzCqB,IAyCR,IAzCQ,CAyCO,SAzCP,CAAA,EAAA,GAAA,KAAA,GAAA,KAAA"}
@@ -0,0 +1,6 @@
1
+ //#region src/GroupPath.ts
2
+ var GroupPath_exports = {};
3
+
4
+ //#endregion
5
+ export { GroupPath_exports };
6
+ //# sourceMappingURL=GroupPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupPath.js","names":[],"sources":["../src/GroupPath.ts"],"sourcesContent":["import type { Record } from \"effect\";\nimport type * as GroupSpec from \"./GroupSpec\";\n\n/**\n * Recursively generates paths for a group and its nested groups.\n *\n * - For a group with no subgroups, returns just the group name.\n * - For a group with subgroups, returns the group name plus all possible paths through its direct subgroups.\n */\nexport type All<\n Group extends GroupSpec.AnyWithProps,\n Depth extends 1[] = [],\n> = Depth[\"length\"] extends 15\n ? string\n : Group extends any\n ? [GroupSpec.Groups<Group>] extends [never]\n ? GroupSpec.Name<Group>\n : GroupSpec.Name<Group> | AllHelper<Group, GroupSpec.Groups<Group>, Depth>\n : never;\n\ntype AllHelper<\n Parent extends GroupSpec.AnyWithProps,\n Groups_ extends GroupSpec.AnyWithProps,\n Depth extends 1[] = [],\n> = Groups_ extends GroupSpec.AnyWithProps\n ? `${GroupSpec.Name<Parent>}.${All<Groups_, [...Depth, 1]>}`\n : never;\n\n/**\n * Recursively extracts the group at the given dot-separated path.\n * Path must match the format defined in `Path` above, e.g. \"group\" or \"group.subgroup\".\n *\n * @example\n * ```ts\n * type G = WithPath<RootGroup, \"group.subgroup\">;\n * ```\n */\nexport type GroupAt<\n Group,\n Path extends string,\n> = Group extends GroupSpec.AnyWithProps\n ? Path extends `${infer Head}.${infer Tail}`\n ? Group extends { readonly name: Head }\n ? Group extends {\n readonly groups: Record.ReadonlyRecord<string, infer SubGroup>;\n }\n ? GroupAt<SubGroup, Tail>\n : never\n : never\n : GroupSpec.WithName<Group, Path>\n : never;\n\nexport type SubGroupsAt<\n Group extends GroupSpec.AnyWithProps,\n GroupPath extends string,\n> =\n GroupSpec.Groups<GroupAt<Group, GroupPath>> extends infer SubGroups\n ? SubGroups extends GroupSpec.AnyWithProps\n ? `${GroupPath}.${GroupSpec.Name<SubGroups>}`\n : never\n : never;\n"],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import { AnyWithProps as AnyWithProps$1, Name as Name$1, WithName as WithName$1 } from "./FunctionSpec.js";
2
+
3
+ //#region src/GroupSpec.d.ts
4
+ declare namespace GroupSpec_d_exports {
5
+ export { Any, AnyWithProps, Functions, GroupNames, GroupSpec, Groups, Name, TypeId, WithName, isGroupSpec, make };
6
+ }
7
+ declare const TypeId = "@confect/core/api/GroupSpec";
8
+ type TypeId = typeof TypeId;
9
+ declare const isGroupSpec: (u: unknown) => u is Any;
10
+ interface GroupSpec<Name_ extends string, Functions_ extends AnyWithProps$1 = never, Groups_ extends AnyWithProps = never> {
11
+ readonly [TypeId]: TypeId;
12
+ readonly name: Name_;
13
+ readonly functions: { [FunctionName in Name$1<Functions_>]: WithName$1<Functions_, FunctionName> };
14
+ readonly groups: { [GroupName in Name<Groups_>]: WithName<Groups_, GroupName> };
15
+ addFunction<Function extends AnyWithProps$1>(function_: Function): GroupSpec<Name_, Functions_ | Function, Groups_>;
16
+ addGroup<Group extends AnyWithProps>(group: Group): GroupSpec<Name_, Functions_, Groups_ | Group>;
17
+ }
18
+ interface Any {
19
+ readonly [TypeId]: TypeId;
20
+ }
21
+ interface AnyWithProps extends GroupSpec<string, AnyWithProps$1, AnyWithProps> {}
22
+ type Name<Group extends AnyWithProps> = Group["name"];
23
+ type Functions<Group extends AnyWithProps> = Group["functions"][keyof Group["functions"]];
24
+ type Groups<Group extends AnyWithProps> = Group["groups"][keyof Group["groups"]];
25
+ type GroupNames<Group extends AnyWithProps> = [Groups<Group>] extends [never] ? never : Name<Groups<Group>>;
26
+ type WithName<Group extends AnyWithProps, Name_ extends Name<Group>> = Extract<Group, {
27
+ readonly name: Name_;
28
+ }>;
29
+ declare const make: <const Name_ extends string>(name: Name_) => GroupSpec<Name_>;
30
+ //#endregion
31
+ export { Any, AnyWithProps, Functions, GroupNames, GroupSpec, GroupSpec_d_exports, Groups, Name, TypeId, WithName, isGroupSpec, make };
32
+ //# sourceMappingURL=GroupSpec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupSpec.d.ts","names":[],"sources":["../src/GroupSpec.ts"],"sourcesContent":[],"mappings":";;;;;;cAIa,MAAA;KACD,MAAA,UAAgB;cAEf,kCAAiC;UAG7B,mDAEI,wCACH;YAEN,MAAA,GAAS;iBACJ;yCAEI,OAAkB,cAAc,WAC/C,YACA;mCAIY,KAAK,WAAW,SAAS,SAAS;+BAGrB,2BAChB,WACV,UAAU,OAAO,aAAa,UAAU;yBAEpB,qBACd,QACN,UAAU,OAAO,YAAY,UAAU;;UAG3B,GAAA;EAhCJ,UAiCD,MAAA,CAjCO,EAiCE,MAjCF;AACnB;AAEa,UAiCI,YAAA,SACP,SAjCwB,CAAA,MAAA,EAiCN,cAjCM,EAiCqB,YAjCrB,CAAA,CAAA,CAElC;AAEqB,KA+BT,IA/BS,CAAA,cA+BU,YA/BV,CAAA,GA+B0B,KA/B1B,CAAA,MAAA,CAAA;AACH,KAgCN,SAhCM,CAAA,cAgCkB,YAhClB,CAAA,GAiChB,KAjCgB,CAAA,WAAA,CAAA,CAAA,MAiCS,KAjCT,CAAA,WAAA,CAAA,CAAA;AAEG,KAiCT,MAjCS,CAAA,cAiCY,YAjCZ,CAAA,GAkCnB,KAlCmB,CAAA,QAAA,CAAA,CAAA,MAkCG,KAlCH,CAAA,QAAA,CAAA,CAAA;AAAT,KAoCA,UApCA,CAAA,cAoCyB,YApCzB,CAAA,GAAA,CAoC0C,MApC1C,CAoCiD,KApCjD,CAAA,CAAA,SAAA,CACK,KAAA,CAEsB,GAAA,KAAA,GAqCnC,IArCmC,CAqC9B,MArC8B,CAqCvB,KArCuB,CAAA,CAAA;AAAlB,KAuCT,QAvCS,CAAA,cAwCL,YAxCK,EAAA,cAyCL,IAzCK,CAyCA,KAzCA,CAAA,CAAA,GA0CjB,OA1CiB,CA0CT,KA1CS,EAAA;EACf,SAAA,IAAA,EAyC8B,KAzC9B;CACA,CAAA;AAF+C,cA2FxC,IA3FwC,EAAA,CAAA,oBAAA,MAAA,CAAA,CAAA,IAAA,EA4F7C,KA5F6C,EAAA,GA6FlD,SA7FkD,CA6FxC,KA7FwC,CAAA"}
@@ -0,0 +1,49 @@
1
+ import { __export } from "./_virtual/rolldown_runtime.js";
2
+ import { validateConfectFunctionIdentifier } from "./internal/utils.js";
3
+ import { Predicate, Record } from "effect";
4
+
5
+ //#region src/GroupSpec.ts
6
+ var GroupSpec_exports = /* @__PURE__ */ __export({
7
+ TypeId: () => TypeId,
8
+ isGroupSpec: () => isGroupSpec,
9
+ make: () => make
10
+ });
11
+ const TypeId = "@confect/core/api/GroupSpec";
12
+ const isGroupSpec = (u) => Predicate.hasProperty(u, TypeId);
13
+ const Proto = {
14
+ [TypeId]: TypeId,
15
+ addFunction(function_) {
16
+ const this_ = this;
17
+ return makeProto({
18
+ name: this_.name,
19
+ functions: Record.set(this_.functions, function_.name, function_),
20
+ groups: this_.groups
21
+ });
22
+ },
23
+ addGroup(group) {
24
+ const this_ = this;
25
+ const group_ = group;
26
+ return makeProto({
27
+ name: this_.name,
28
+ functions: this_.functions,
29
+ groups: Record.set(this_.groups, group_.name, group_)
30
+ });
31
+ }
32
+ };
33
+ const makeProto = ({ name, functions, groups }) => Object.assign(Object.create(Proto), {
34
+ name,
35
+ functions,
36
+ groups
37
+ });
38
+ const make = (name) => {
39
+ validateConfectFunctionIdentifier(name);
40
+ return makeProto({
41
+ name,
42
+ functions: Record.empty(),
43
+ groups: Record.empty()
44
+ });
45
+ };
46
+
47
+ //#endregion
48
+ export { GroupSpec_exports, TypeId, isGroupSpec, make };
49
+ //# sourceMappingURL=GroupSpec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupSpec.js","names":[],"sources":["../src/GroupSpec.ts"],"sourcesContent":["import { Predicate, Record } from \"effect\";\nimport type * as FunctionSpec from \"./FunctionSpec\";\nimport { validateConfectFunctionIdentifier } from \"./internal/utils\";\n\nexport const TypeId = \"@confect/core/api/GroupSpec\";\nexport type TypeId = typeof TypeId;\n\nexport const isGroupSpec = (u: unknown): u is Any =>\n Predicate.hasProperty(u, TypeId);\n\nexport interface GroupSpec<\n Name_ extends string,\n Functions_ extends FunctionSpec.AnyWithProps = never,\n Groups_ extends AnyWithProps = never,\n> {\n readonly [TypeId]: TypeId;\n readonly name: Name_;\n readonly functions: {\n [FunctionName in FunctionSpec.Name<Functions_>]: FunctionSpec.WithName<\n Functions_,\n FunctionName\n >;\n };\n readonly groups: {\n [GroupName in Name<Groups_>]: WithName<Groups_, GroupName>;\n };\n\n addFunction<Function extends FunctionSpec.AnyWithProps>(\n function_: Function,\n ): GroupSpec<Name_, Functions_ | Function, Groups_>;\n\n addGroup<Group extends AnyWithProps>(\n group: Group,\n ): GroupSpec<Name_, Functions_, Groups_ | Group>;\n}\n\nexport interface Any {\n readonly [TypeId]: TypeId;\n}\n\nexport interface AnyWithProps\n extends GroupSpec<string, FunctionSpec.AnyWithProps, AnyWithProps> {}\n\nexport type Name<Group extends AnyWithProps> = Group[\"name\"];\n\nexport type Functions<Group extends AnyWithProps> =\n Group[\"functions\"][keyof Group[\"functions\"]];\n\nexport type Groups<Group extends AnyWithProps> =\n Group[\"groups\"][keyof Group[\"groups\"]];\n\nexport type GroupNames<Group extends AnyWithProps> = [Groups<Group>] extends [\n never,\n]\n ? never\n : Name<Groups<Group>>;\n\nexport type WithName<\n Group extends AnyWithProps,\n Name_ extends Name<Group>,\n> = Extract<Group, { readonly name: Name_ }>;\n\nconst Proto = {\n [TypeId]: TypeId,\n\n addFunction<Function extends FunctionSpec.AnyWithProps>(\n this: Any,\n function_: Function,\n ) {\n const this_ = this as AnyWithProps;\n\n return makeProto({\n name: this_.name,\n functions: Record.set(this_.functions, function_.name, function_),\n groups: this_.groups,\n });\n },\n\n addGroup<Group extends Any>(this: Any, group: Group) {\n const this_ = this as AnyWithProps;\n const group_ = group as unknown as AnyWithProps;\n\n return makeProto({\n name: this_.name,\n functions: this_.functions,\n groups: Record.set(this_.groups, group_.name, group_),\n });\n },\n};\n\nconst makeProto = <\n Name_ extends string,\n Functions_ extends FunctionSpec.AnyWithProps,\n Groups_ extends AnyWithProps,\n>({\n name,\n functions,\n groups,\n}: {\n name: Name_;\n functions: Record.ReadonlyRecord<string, Functions_>;\n groups: Record.ReadonlyRecord<string, Groups_>;\n}): GroupSpec<Name_, Functions_, Groups_> =>\n Object.assign(Object.create(Proto), {\n name,\n functions,\n groups,\n });\n\nexport const make = <const Name_ extends string>(\n name: Name_,\n): GroupSpec<Name_> => {\n validateConfectFunctionIdentifier(name);\n\n return makeProto({\n name,\n functions: Record.empty(),\n groups: Record.empty(),\n });\n};\n"],"mappings":";;;;;;;;;;AAIA,MAAa,SAAS;AAGtB,MAAa,eAAe,MAC1B,UAAU,YAAY,GAAG,OAAO;AAsDlC,MAAM,QAAQ;EACX,SAAS;CAEV,YAEE,WACA;EACA,MAAM,QAAQ;AAEd,SAAO,UAAU;GACf,MAAM,MAAM;GACZ,WAAW,OAAO,IAAI,MAAM,WAAW,UAAU,MAAM,UAAU;GACjE,QAAQ,MAAM;GACf,CAAC;;CAGJ,SAAuC,OAAc;EACnD,MAAM,QAAQ;EACd,MAAM,SAAS;AAEf,SAAO,UAAU;GACf,MAAM,MAAM;GACZ,WAAW,MAAM;GACjB,QAAQ,OAAO,IAAI,MAAM,QAAQ,OAAO,MAAM,OAAO;GACtD,CAAC;;CAEL;AAED,MAAM,aAIJ,EACA,MACA,WACA,aAMA,OAAO,OAAO,OAAO,OAAO,MAAM,EAAE;CAClC;CACA;CACA;CACD,CAAC;AAEJ,MAAa,QACX,SACqB;AACrB,mCAAkC,KAAK;AAEvC,QAAO,UAAU;EACf;EACA,WAAW,OAAO,OAAO;EACzB,QAAQ,OAAO,OAAO;EACvB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Schema } from "effect";
2
+
3
+ //#region src/PaginationResult.d.ts
4
+ declare namespace PaginationResult_d_exports {
5
+ export { PaginationResult };
6
+ }
7
+ declare const PaginationResult: <Doc extends Schema.Schema.AnyNoContext>(Doc: Doc) => Schema.Struct<{
8
+ page: Schema.mutable<Schema.Array$<Doc>>;
9
+ isDone: typeof Schema.Boolean;
10
+ continueCursor: typeof Schema.String;
11
+ splitCursor: Schema.optionalWith<Schema.Union<[typeof Schema.String, typeof Schema.Null]>, {
12
+ exact: true;
13
+ }>;
14
+ pageStatus: Schema.optionalWith<Schema.Union<[Schema.Literal<["SplitRecommended"]>, Schema.Literal<["SplitRequired"]>, typeof Schema.Null]>, {
15
+ exact: true;
16
+ }>;
17
+ }>;
18
+ //#endregion
19
+ export { PaginationResult, PaginationResult_d_exports };
20
+ //# sourceMappingURL=PaginationResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginationResult.d.ts","names":[],"sources":["../src/PaginationResult.ts"],"sourcesContent":[],"mappings":";;;;;;cAEa,+BAAgC,MAAA,CAAO,MAAA,CAAO,mBACpD,QAAG,MAAA,CAAA;;;;EADG,WAAA,qBAkBT,aAAA,CAAA,CAAA,oBAAA,EAAA,kBAAA,CAAA,CAAA,EAAA;IAlBgD,KAAA,EAAO,IAAA;EACpD,CAAA,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { __export } from "./_virtual/rolldown_runtime.js";
2
+ import { Schema } from "effect";
3
+
4
+ //#region src/PaginationResult.ts
5
+ var PaginationResult_exports = /* @__PURE__ */ __export({ PaginationResult: () => PaginationResult });
6
+ const PaginationResult = (Doc) => Schema.Struct({
7
+ page: Schema.mutable(Schema.Array(Doc)),
8
+ isDone: Schema.Boolean,
9
+ continueCursor: Schema.String,
10
+ splitCursor: Schema.optionalWith(Schema.Union(Schema.String, Schema.Null), { exact: true }),
11
+ pageStatus: Schema.optionalWith(Schema.Union(Schema.Literal("SplitRecommended"), Schema.Literal("SplitRequired"), Schema.Null), { exact: true })
12
+ });
13
+
14
+ //#endregion
15
+ export { PaginationResult, PaginationResult_exports };
16
+ //# sourceMappingURL=PaginationResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginationResult.js","names":[],"sources":["../src/PaginationResult.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\nexport const PaginationResult = <Doc extends Schema.Schema.AnyNoContext>(\n Doc: Doc,\n) =>\n Schema.Struct({\n page: Schema.mutable(Schema.Array(Doc)),\n isDone: Schema.Boolean,\n continueCursor: Schema.String,\n splitCursor: Schema.optionalWith(Schema.Union(Schema.String, Schema.Null), {\n exact: true,\n }),\n pageStatus: Schema.optionalWith(\n Schema.Union(\n Schema.Literal(\"SplitRecommended\"),\n Schema.Literal(\"SplitRequired\"),\n Schema.Null,\n ),\n { exact: true },\n ),\n });\n"],"mappings":";;;;;AAEA,MAAa,oBACX,QAEA,OAAO,OAAO;CACZ,MAAM,OAAO,QAAQ,OAAO,MAAM,IAAI,CAAC;CACvC,QAAQ,OAAO;CACf,gBAAgB,OAAO;CACvB,aAAa,OAAO,aAAa,OAAO,MAAM,OAAO,QAAQ,OAAO,KAAK,EAAE,EACzE,OAAO,MACR,CAAC;CACF,YAAY,OAAO,aACjB,OAAO,MACL,OAAO,QAAQ,mBAAmB,EAClC,OAAO,QAAQ,gBAAgB,EAC/B,OAAO,KACR,EACD,EAAE,OAAO,MAAM,CAChB;CACF,CAAC"}
package/dist/Ref.d.ts ADDED
@@ -0,0 +1,40 @@
1
+ import { AnyWithProps, Args as Args$1, FunctionSpec, GetFunctionType as GetFunctionType$1, GetFunctionVisibility as GetFunctionVisibility$1, Returns as Returns$1 } from "./FunctionSpec.js";
2
+ import { Schema } from "effect";
3
+ import { FunctionType, FunctionVisibility } from "convex/server";
4
+
5
+ //#region src/Ref.d.ts
6
+ declare namespace Ref_d_exports {
7
+ export { Any, AnyAction, AnyInternal, AnyMutation, AnyPublic, AnyPublicAction, AnyPublicMutation, AnyPublicQuery, AnyQuery, Args, FromFunctionSpec, GetFunctionType, GetFunctionVisibility, Ref, Returns, getConvexFunctionName, getFunction, make };
8
+ }
9
+ interface Ref<_FunctionType extends FunctionType, _FunctionVisibility extends FunctionVisibility, _Args extends Schema.Schema.AnyNoContext, _Returns extends Schema.Schema.AnyNoContext> {
10
+ readonly _FunctionType?: _FunctionType;
11
+ readonly _FunctionVisibility?: _FunctionVisibility;
12
+ readonly _Args?: _Args;
13
+ readonly _Returns?: _Returns;
14
+ }
15
+ interface Any extends Ref<any, any, any, any> {}
16
+ interface AnyInternal extends Ref<any, "internal", any, any> {}
17
+ interface AnyPublic extends Ref<any, "public", any, any> {}
18
+ interface AnyQuery extends Ref<"query", FunctionVisibility, Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {}
19
+ interface AnyMutation extends Ref<"mutation", FunctionVisibility, Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {}
20
+ interface AnyAction extends Ref<"action", FunctionVisibility, Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {}
21
+ interface AnyPublicQuery extends Ref<"query", "public", Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {}
22
+ interface AnyPublicMutation extends Ref<"mutation", "public", Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {}
23
+ interface AnyPublicAction extends Ref<"action", "public", Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {}
24
+ type GetFunctionType<Ref_> = Ref_ extends Ref<infer FunctionType_, infer _FunctionVisibility, infer _Args, infer _Returns> ? FunctionType_ : never;
25
+ type GetFunctionVisibility<Ref_> = Ref_ extends Ref<infer _FunctionType, infer FunctionVisibility_, infer _Args, infer _Returns> ? FunctionVisibility_ : never;
26
+ type Args<Ref_> = Ref_ extends Ref<infer _FunctionType, infer _FunctionVisibility, infer Args_, infer _Returns> ? Args_ : never;
27
+ type Returns<Ref_> = Ref_ extends Ref<infer _FunctionType, infer _FunctionVisibility, infer _Args, infer Returns_> ? Returns_ : never;
28
+ type FromFunctionSpec<F extends AnyWithProps> = Ref<GetFunctionType$1<F>, GetFunctionVisibility$1<F>, Args$1<F>, Returns$1<F>>;
29
+ declare const make: <FunctionType_$1 extends FunctionType, FunctionVisibility_$1 extends FunctionVisibility, Args_$1 extends Schema.Schema.AnyNoContext, Returns_$1 extends Schema.Schema.AnyNoContext>(
30
+ /**
31
+ * This is a Convex "function name" of the format "myGroupDir/myGroupMod:myFunc".
32
+ */
33
+ convexFunctionName: string, function_: FunctionSpec<FunctionType_$1, FunctionVisibility_$1, string, Args_$1, Returns_$1>) => Ref<FunctionType_$1, FunctionVisibility_$1, Args_$1, Returns_$1>;
34
+ type HiddenFunction<Ref_ extends Any> = FunctionSpec<GetFunctionType<Ref_>, GetFunctionVisibility<Ref_>, string, Args<Ref_>, Returns<Ref_>>;
35
+ declare const getFunction: <FunctionType_$1 extends FunctionType, FunctionVisibility_$1 extends FunctionVisibility, Args_$1 extends Schema.Schema.AnyNoContext, Returns_$1 extends Schema.Schema.AnyNoContext, Ref_ extends Ref<FunctionType_$1, FunctionVisibility_$1, Args_$1, Returns_$1>>(ref: Ref_) => HiddenFunction<Ref_>;
36
+ type HiddenConvexFunctionName = string;
37
+ declare const getConvexFunctionName: <FunctionType_$1 extends FunctionType, FunctionVisibility_$1 extends FunctionVisibility, Args_$1 extends Schema.Schema.AnyNoContext, Returns_$1 extends Schema.Schema.AnyNoContext>(ref: Ref<FunctionType_$1, FunctionVisibility_$1, Args_$1, Returns_$1>) => HiddenConvexFunctionName;
38
+ //#endregion
39
+ export { Any, AnyAction, AnyInternal, AnyMutation, AnyPublic, AnyPublicAction, AnyPublicMutation, AnyPublicQuery, AnyQuery, Args, FromFunctionSpec, GetFunctionType, GetFunctionVisibility, Ref, Ref_d_exports, Returns, getConvexFunctionName, getFunction, make };
40
+ //# sourceMappingURL=Ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ref.d.ts","names":[],"sources":["../src/Ref.ts"],"sourcesContent":[],"mappings":";;;;;;;;UAIiB,0BACO,0CACM,kCACd,MAAA,CAAO,MAAA,CAAO,+BACX,MAAA,CAAO,MAAA,CAAO;2BAEN;iCACM;mBACd;sBACG;;UAGL,GAAA,SAAY;UAEZ,WAAA,SAAoB;UAEpB,SAAA,SAAkB;UAElB,QAAA,SACP,aAEN,oBACA,MAAA,CAAO,MAAA,CAAO,cACd,MAAA,CAAO,MAAA,CAAO;UAGD,WAAA,SACP,gBAEN,oBACA,MAAA,CAAO,MAAA,CAAO,cACd,MAAA,CAAO,MAAA,CAAO;UAGD,SAAA,SACP,cAEN,oBACA,MAAA,CAAO,MAAA,CAAO,cACd,MAAA,CAAO,MAAA,CAAO;UAGD,cAAA,SACP,uBAGN,MAAA,CAAO,MAAA,CAAO,cACd,MAAA,CAAO,MAAA,CAAO;UAGD,iBAAA,SACP,0BAGN,MAAA,CAAO,MAAA,CAAO,cACd,MAAA,CAAO,MAAA,CAAO;UAGD,eAAA,SACP,wBAGN,MAAA,CAAO,MAAA,CAAO,cACd,MAAA,CAAO,MAAA,CAAO,eA/DlB;AACwB,KAiEZ,eAjEY,CAAA,IAAA,CAAA,GAkEtB,IAlEsB,SAkET,GAlES,CAAA,KAAA,cAAA,EAAA,KAAA,oBAAA,EAAA,KAAA,MAAA,EAAA,KAAA,SAAA,CAAA,GAwElB,aAxEkB,GAAA,KAAA;AACM,KA0ElB,qBA1EkB,CAAA,IAAA,CAAA,GA2E5B,IA3E4B,SA2Ef,GA3Ee,CAAA,KAAA,cAAA,EAAA,KAAA,oBAAA,EAAA,KAAA,MAAA,EAAA,KAAA,SAAA,CAAA,GAiFxB,mBAjFwB,GAAA,KAAA;AACd,KAmFJ,IAnFkB,CAAA,IAAA,CAAA,GAoF5B,IApF4B,SAoFf,GApFe,CAAA,KAAA,cAAA,EAAA,KAAA,oBAAA,EAAA,KAAA,MAAA,EAAA,KAAA,SAAA,CAAA,GA0FxB,KA1FwB,GAAA,KAAA;AACX,KA4FP,OA5FqB,CAAA,IAAA,CAAA,GA6F/B,IA7F+B,SA6FlB,GA7FkB,CAAA,KAAA,cAAA,EAAA,KAAA,oBAAA,EAAA,KAAA,MAAA,EAAA,KAAA,SAAA,CAAA,GAmG3B,QAnG2B,GAAA,KAAA;AAEN,KAoGf,gBApGe,CAAA,UAoGY,YApGZ,CAAA,GAoGyC,GApGzC,CAqGzB,iBArGyB,CAqGI,CArGJ,CAAA,EAsGzB,uBAtGyB,CAsGU,CAtGV,CAAA,EAuGzB,MAvGyB,CAuGP,CAvGO,CAAA,EAwGzB,SAxGyB,CAwGJ,CAxGI,CAAA,CAAA;AACM,cA0GpB,IA1GoB,EAAA,CAAA,wBA2GT,YA3GS,EAAA,8BA4GH,kBA5GG,EAAA,gBA6GjB,MAAA,CAAO,MAAA,CAAO,YA7GG,EAAA,mBA8Gd,MAAA,CAAO,MAAA,CAAO,YA9GA,CAAA;;;;AAKjC,kBAAqB,EAAA,MAAW,EAAA,SAAA,EAgHnB,YAhHmB,CAiH5B,eAjH4B,EAkH5B,qBAlH4B,EAAA,MAAA,EAoH5B,OApH4B,EAqH5B,UArH4B,CAAA,EAAA,GAuH7B,GAvH6B,CAuHzB,eAvHyB,EAuHV,qBAvHU,EAuHW,OAvHX,EAuHkB,UAvHlB,CAAA;AAEhC,KA8HK,cA9HwB,CAAA,aA8HI,GA9HO,CAAA,GA8HA,YA9HA,CA+HtC,eA/HsC,CA+HtB,IA/HsB,CAAA,EAgItC,qBAhIsC,CAgIhB,IAhIgB,CAAA,EAAA,MAAA,EAkItC,IAlIsC,CAkIjC,IAlIiC,CAAA,EAmItC,OAnIsC,CAmI9B,IAnI8B,CAAA,CAAA;AAEvB,cAoIJ,WApIyB,EAAA,CAAA,wBAqId,YArIc,EAAA,8BAsIR,kBAtIQ,EAAA,gBAuItB,MAAA,CAAO,MAAA,CAAO,YAvIQ,EAAA,mBAwInB,MAAA,CAAO,MAAA,CAAO,YAxIK,EAAA,aAyIvB,GAzIuB,CAyInB,eAzImB,EAyIJ,qBAzII,EAyIiB,OAzIjB,EAyIwB,UAzIxB,CAAA,CAAA,CAAA,GAAA,EA2I/B,IA3I+B,EAAA,GA4InC,cA5ImC,CA4IpB,IA5IoB,CAAA;AAEtC,KA+IK,wBAAA,GA9IH,MAAA;AAEE,cA8IS,qBA9IT,EAAA,CAAA,wBA+IoB,YA/IpB,EAAA,8BAgJ0B,kBAhJ1B,EAAA,gBAiJY,MAAA,CAAO,MAAA,CAAO,YAjJ1B,EAAA,mBAkJe,MAAA,CAAO,MAAA,CAAO,YAlJ7B,CAAA,CAAA,GAAA,EAoJG,GApJH,CAoJO,eApJP,EAoJsB,qBApJtB,EAoJ2C,OApJ3C,EAoJkD,UApJlD,CAAA,EAAA,GAqJD,wBArJC"}
package/dist/Ref.js ADDED
@@ -0,0 +1,20 @@
1
+ import { __export } from "./_virtual/rolldown_runtime.js";
2
+
3
+ //#region src/Ref.ts
4
+ var Ref_exports = /* @__PURE__ */ __export({
5
+ getConvexFunctionName: () => getConvexFunctionName,
6
+ getFunction: () => getFunction,
7
+ make: () => make
8
+ });
9
+ const make = (convexFunctionName, function_) => ({
10
+ [HiddenFunctionKey]: function_,
11
+ [HiddenConvexFunctionNameKey]: convexFunctionName
12
+ });
13
+ const HiddenFunctionKey = "@confect/core/api/HiddenFunctionKey";
14
+ const getFunction = (ref) => ref[HiddenFunctionKey];
15
+ const HiddenConvexFunctionNameKey = "@confect/core/api/HiddenConvexFunctionNameKey";
16
+ const getConvexFunctionName = (ref) => ref[HiddenConvexFunctionNameKey];
17
+
18
+ //#endregion
19
+ export { Ref_exports, getConvexFunctionName, getFunction, make };
20
+ //# sourceMappingURL=Ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ref.js","names":[],"sources":["../src/Ref.ts"],"sourcesContent":["import type { FunctionType, FunctionVisibility } from \"convex/server\";\nimport type { Schema } from \"effect\";\nimport type * as FunctionSpec from \"./FunctionSpec\";\n\nexport interface Ref<\n _FunctionType extends FunctionType,\n _FunctionVisibility extends FunctionVisibility,\n _Args extends Schema.Schema.AnyNoContext,\n _Returns extends Schema.Schema.AnyNoContext,\n> {\n readonly _FunctionType?: _FunctionType;\n readonly _FunctionVisibility?: _FunctionVisibility;\n readonly _Args?: _Args;\n readonly _Returns?: _Returns;\n}\n\nexport interface Any extends Ref<any, any, any, any> {}\n\nexport interface AnyInternal extends Ref<any, \"internal\", any, any> {}\n\nexport interface AnyPublic extends Ref<any, \"public\", any, any> {}\n\nexport interface AnyQuery\n extends Ref<\n \"query\",\n FunctionVisibility,\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n > {}\n\nexport interface AnyMutation\n extends Ref<\n \"mutation\",\n FunctionVisibility,\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n > {}\n\nexport interface AnyAction\n extends Ref<\n \"action\",\n FunctionVisibility,\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n > {}\n\nexport interface AnyPublicQuery\n extends Ref<\n \"query\",\n \"public\",\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n > {}\n\nexport interface AnyPublicMutation\n extends Ref<\n \"mutation\",\n \"public\",\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n > {}\n\nexport interface AnyPublicAction\n extends Ref<\n \"action\",\n \"public\",\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n > {}\n\nexport type GetFunctionType<Ref_> =\n Ref_ extends Ref<\n infer FunctionType_,\n infer _FunctionVisibility,\n infer _Args,\n infer _Returns\n >\n ? FunctionType_\n : never;\n\nexport type GetFunctionVisibility<Ref_> =\n Ref_ extends Ref<\n infer _FunctionType,\n infer FunctionVisibility_,\n infer _Args,\n infer _Returns\n >\n ? FunctionVisibility_\n : never;\n\nexport type Args<Ref_> =\n Ref_ extends Ref<\n infer _FunctionType,\n infer _FunctionVisibility,\n infer Args_,\n infer _Returns\n >\n ? Args_\n : never;\n\nexport type Returns<Ref_> =\n Ref_ extends Ref<\n infer _FunctionType,\n infer _FunctionVisibility,\n infer _Args,\n infer Returns_\n >\n ? Returns_\n : never;\n\nexport type FromFunctionSpec<F extends FunctionSpec.AnyWithProps> = Ref<\n FunctionSpec.GetFunctionType<F>,\n FunctionSpec.GetFunctionVisibility<F>,\n FunctionSpec.Args<F>,\n FunctionSpec.Returns<F>\n>;\n\nexport const make = <\n FunctionType_ extends FunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Args_ extends Schema.Schema.AnyNoContext,\n Returns_ extends Schema.Schema.AnyNoContext,\n>(\n /**\n * This is a Convex \"function name\" of the format \"myGroupDir/myGroupMod:myFunc\".\n */\n convexFunctionName: string,\n // TODO: Pull out all of the fields from the function spec except the name (we don't need it because we already have the convex function name) and spread them here\n function_: FunctionSpec.FunctionSpec<\n FunctionType_,\n FunctionVisibility_,\n string,\n Args_,\n Returns_\n >,\n): Ref<FunctionType_, FunctionVisibility_, Args_, Returns_> =>\n ({\n [HiddenFunctionKey]: function_,\n [HiddenConvexFunctionNameKey]: convexFunctionName,\n }) as Ref<FunctionType_, FunctionVisibility_, Args_, Returns_>;\n\n// TODO: Is this hidden stuff necessary/useful still?\nconst HiddenFunctionKey = \"@confect/core/api/HiddenFunctionKey\";\ntype HiddenFunctionKey = typeof HiddenFunctionKey;\ntype HiddenFunction<Ref_ extends Any> = FunctionSpec.FunctionSpec<\n GetFunctionType<Ref_>,\n GetFunctionVisibility<Ref_>,\n string,\n Args<Ref_>,\n Returns<Ref_>\n>;\n\nexport const getFunction = <\n FunctionType_ extends FunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Args_ extends Schema.Schema.AnyNoContext,\n Returns_ extends Schema.Schema.AnyNoContext,\n Ref_ extends Ref<FunctionType_, FunctionVisibility_, Args_, Returns_>,\n>(\n ref: Ref_,\n): HiddenFunction<Ref_> => (ref as any)[HiddenFunctionKey];\n\nconst HiddenConvexFunctionNameKey =\n \"@confect/core/api/HiddenConvexFunctionNameKey\";\ntype HiddenConvexFunctionNameKey = typeof HiddenConvexFunctionNameKey;\ntype HiddenConvexFunctionName = string;\n\nexport const getConvexFunctionName = <\n FunctionType_ extends FunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Args_ extends Schema.Schema.AnyNoContext,\n Returns_ extends Schema.Schema.AnyNoContext,\n>(\n ref: Ref<FunctionType_, FunctionVisibility_, Args_, Returns_>,\n): HiddenConvexFunctionName => (ref as any)[HiddenConvexFunctionNameKey];\n"],"mappings":";;;;;;;;AAqHA,MAAa,QASX,oBAEA,eAQC;EACE,oBAAoB;EACpB,8BAA8B;CAChC;AAGH,MAAM,oBAAoB;AAU1B,MAAa,eAOX,QAC0B,IAAY;AAExC,MAAM,8BACJ;AAIF,MAAa,yBAMX,QAC8B,IAAY"}
package/dist/Refs.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { AnyWithProps, Name as Name$1, WithName } from "./FunctionSpec.js";
2
+ import { AnyWithProps as AnyWithProps$1, Functions, Groups, Name as Name$2, WithName as WithName$1 } from "./GroupSpec.js";
3
+ import { Any, AnyInternal, AnyPublic, FromFunctionSpec } from "./Ref.js";
4
+ import { AnyWithProps as AnyWithProps$2, Groups as Groups$1 } from "./Spec.js";
5
+ import { Types } from "effect";
6
+
7
+ //#region src/Refs.d.ts
8
+ declare namespace Refs_d_exports {
9
+ export { Refs, make };
10
+ }
11
+ type Refs<Spec_ extends AnyWithProps$2, Predicate$1 extends Any = Any> = Types.Simplify<Helper<Groups$1<Spec_>, Predicate$1>>;
12
+ type GroupRefs<Group$1 extends AnyWithProps$1, Predicate$1 extends Any> = Types.Simplify<Helper<Groups<Group$1>, Predicate$1> & FilteredFunctions<Functions<Group$1>, Predicate$1>>;
13
+ type FilteredFunctions<Functions$1 extends AnyWithProps, Predicate$1 extends Any> = { [Name in Name$1<Functions$1> as WithName<Functions$1, Name> extends infer F extends AnyWithProps ? FromFunctionSpec<F> extends Predicate$1 ? Name : never : never]: WithName<Functions$1, Name> extends infer F extends AnyWithProps ? FromFunctionSpec<F> : never };
14
+ type Helper<Groups$2 extends AnyWithProps$1, Predicate$1 extends Any> = { [GroupName in Name$2<Groups$2> as WithName$1<Groups$2, GroupName> extends infer Group extends AnyWithProps$1 ? GroupRefs<Group, Predicate$1> extends Record<string, never> ? never : GroupName : never]: WithName$1<Groups$2, GroupName> extends infer Group extends AnyWithProps$1 ? GroupRefs<Group, Predicate$1> : never };
15
+ declare const make: <Spec_ extends AnyWithProps$2>(spec: Spec_) => {
16
+ all: Refs<Spec_>;
17
+ public: Refs<Spec_, AnyPublic>;
18
+ internal: Refs<Spec_, AnyInternal>;
19
+ };
20
+ //#endregion
21
+ export { Refs, Refs_d_exports, make };
22
+ //# sourceMappingURL=Refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Refs.d.ts","names":[],"sources":["../src/Refs.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;KAOY,mBACI,oCACI,MAAU,OAC1B,KAAA,CAAM,SAAS,OAAO,SAAY,QAAQ;KAEzC,0BACW,oCACI,OAChB,KAAA,CAAM,SACR,OAAO,OAAiB,UAAQ,eAC9B,kBAAkB,UAAoB,UAAQ;KAG7C,sCACe,kCACA,kBAET,OAAkB,gBAAc,SACvC,aACA,8BACwB,eACtB,iBAAqB,WAAW,cAC9B,uBAEM,SAAsB,aAAW,8BAC3C,eACE,iBAAqB;KAItB,wBACY,oCACG,uBAEJ,OAAe,aAAW,WACtC,UACA,uCAC4B,iBAC1B,UAAU,OAAO,qBAAmB,gCAElC,oBACM,WAAmB,UAAQ,uCACrC,iBACE,UAAU,OAAO,sBA3CvB;AACgB,cAoDH,IApDG,EAAA,CAAA,cAoDmB,cApDnB,CAAA,CAAA,IAAA,EAqDR,KArDQ,EAAA,GAAA;EACI,GAAA,EAsDb,IAtDa,CAsDR,KAtDQ,CAAA;EAAU,MAAA,EAuDpB,IAvDoB,CAuDf,KAvDe,EAuDR,SAvDQ,CAAA;EACQ,QAAA,EAuD1B,IAvD0B,CAuDrB,KAvDqB,EAuDd,WAvDc,CAAA;CAAZ"}
package/dist/Refs.js ADDED
@@ -0,0 +1,24 @@
1
+ import { __export } from "./_virtual/rolldown_runtime.js";
2
+ import { getConvexFunctionName, make as make$1 } from "./Ref.js";
3
+ import { Record, pipe } from "effect";
4
+
5
+ //#region src/Refs.ts
6
+ var Refs_exports = /* @__PURE__ */ __export({ make: () => make });
7
+ const make = (spec) => {
8
+ const refs = makeHelper(spec.groups);
9
+ return {
10
+ all: refs,
11
+ public: refs,
12
+ internal: refs
13
+ };
14
+ };
15
+ const makeHelper = (groups, groupPath = null) => pipe(groups, Record.map((group) => {
16
+ const currentGroupPath = groupPath ? `${groupPath}/${group.name}` : group.name;
17
+ return Record.union(makeHelper(group.groups, currentGroupPath), Record.map(group.functions, (function_) => make$1(`${currentGroupPath}:${function_.name}`, function_)), (_subGroup, _function) => {
18
+ throw new Error(`Group and function at same level have same name ('${getConvexFunctionName(_function)}')`);
19
+ });
20
+ }));
21
+
22
+ //#endregion
23
+ export { Refs_exports, make };
24
+ //# sourceMappingURL=Refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Refs.js","names":["Ref.make","Ref.getConvexFunctionName"],"sources":["../src/Refs.ts"],"sourcesContent":["import type { Types } from \"effect\";\nimport { pipe, Record } from \"effect\";\nimport type * as FunctionSpec from \"./FunctionSpec\";\nimport type * as GroupSpec from \"./GroupSpec\";\nimport * as Ref from \"./Ref\";\nimport type * as Spec from \"./Spec\";\n\nexport type Refs<\n Spec_ extends Spec.AnyWithProps,\n Predicate extends Ref.Any = Ref.Any,\n> = Types.Simplify<Helper<Spec.Groups<Spec_>, Predicate>>;\n\ntype GroupRefs<\n Group extends GroupSpec.AnyWithProps,\n Predicate extends Ref.Any,\n> = Types.Simplify<\n Helper<GroupSpec.Groups<Group>, Predicate> &\n FilteredFunctions<GroupSpec.Functions<Group>, Predicate>\n>;\n\ntype FilteredFunctions<\n Functions extends FunctionSpec.AnyWithProps,\n Predicate extends Ref.Any,\n> = {\n [Name in FunctionSpec.Name<Functions> as FunctionSpec.WithName<\n Functions,\n Name\n > extends infer F extends FunctionSpec.AnyWithProps\n ? Ref.FromFunctionSpec<F> extends Predicate\n ? Name\n : never\n : never]: FunctionSpec.WithName<Functions, Name> extends infer F extends\n FunctionSpec.AnyWithProps\n ? Ref.FromFunctionSpec<F>\n : never;\n};\n\ntype Helper<\n Groups extends GroupSpec.AnyWithProps,\n Predicate extends Ref.Any,\n> = {\n [GroupName in GroupSpec.Name<Groups> as GroupSpec.WithName<\n Groups,\n GroupName\n > extends infer Group extends GroupSpec.AnyWithProps\n ? GroupRefs<Group, Predicate> extends Record<string, never>\n ? never\n : GroupName\n : never]: GroupSpec.WithName<Groups, GroupName> extends infer Group extends\n GroupSpec.AnyWithProps\n ? GroupRefs<Group, Predicate>\n : never;\n};\n\ntype Any =\n | {\n readonly [key: string]: Any;\n }\n | Ref.Any;\n\nexport const make = <Spec_ extends Spec.AnyWithProps>(\n spec: Spec_,\n): {\n all: Refs<Spec_>;\n public: Refs<Spec_, Ref.AnyPublic>;\n internal: Refs<Spec_, Ref.AnyInternal>;\n} => {\n const refs = makeHelper(spec.groups);\n return {\n all: refs as Refs<Spec_>,\n public: refs as Refs<Spec_, Ref.AnyPublic>,\n internal: refs as Refs<Spec_, Ref.AnyInternal>,\n };\n};\n\nconst makeHelper = (\n groups: Record.ReadonlyRecord<string, GroupSpec.Any>,\n groupPath: string | null = null,\n): Any =>\n pipe(\n groups as Record.ReadonlyRecord<string, GroupSpec.AnyWithProps>,\n Record.map((group) => {\n const currentGroupPath = groupPath\n ? `${groupPath}/${group.name}`\n : group.name;\n\n return Record.union(\n makeHelper(group.groups, currentGroupPath),\n Record.map(group.functions, (function_) =>\n Ref.make(`${currentGroupPath}:${function_.name}`, function_),\n ),\n (_subGroup, _function) => {\n throw new Error(\n `Group and function at same level have same name ('${Ref.getConvexFunctionName(_function)}')`,\n );\n },\n );\n }),\n );\n"],"mappings":";;;;;;AA4DA,MAAa,QACX,SAKG;CACH,MAAM,OAAO,WAAW,KAAK,OAAO;AACpC,QAAO;EACL,KAAK;EACL,QAAQ;EACR,UAAU;EACX;;AAGH,MAAM,cACJ,QACA,YAA2B,SAE3B,KACE,QACA,OAAO,KAAK,UAAU;CACpB,MAAM,mBAAmB,YACrB,GAAG,UAAU,GAAG,MAAM,SACtB,MAAM;AAEV,QAAO,OAAO,MACZ,WAAW,MAAM,QAAQ,iBAAiB,EAC1C,OAAO,IAAI,MAAM,YAAY,cAC3BA,OAAS,GAAG,iBAAiB,GAAG,UAAU,QAAQ,UAAU,CAC7D,GACA,WAAW,cAAc;AACxB,QAAM,IAAI,MACR,qDAAqDC,sBAA0B,UAAU,CAAC,IAC3F;GAEJ;EACD,CACH"}
package/dist/Spec.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ import { AnyWithProps as AnyWithProps$1, Name, WithName } from "./GroupSpec.js";
2
+
3
+ //#region src/Spec.d.ts
4
+ declare namespace Spec_d_exports {
5
+ export { Any, AnyWithProps, Groups, Spec, TypeId, isSpec, make };
6
+ }
7
+ declare const TypeId = "@confect/core/api/Spec";
8
+ type TypeId = typeof TypeId;
9
+ declare const isSpec: (u: unknown) => u is AnyWithProps;
10
+ interface Spec<Groups_ extends AnyWithProps$1 = never> {
11
+ readonly [TypeId]: TypeId;
12
+ readonly groups: { [GroupName in Name<Groups_>]: WithName<Groups_, GroupName> };
13
+ add<Group extends AnyWithProps$1>(group: Group): Spec<Groups_ | Group>;
14
+ }
15
+ interface Any {
16
+ readonly [TypeId]: TypeId;
17
+ }
18
+ interface AnyWithProps extends Spec<AnyWithProps$1> {}
19
+ type Groups<Spec_ extends AnyWithProps> = Spec_["groups"][keyof Spec_["groups"]];
20
+ declare const make: () => Spec;
21
+ //#endregion
22
+ export { Any, AnyWithProps, Groups, Spec, Spec_d_exports, TypeId, isSpec, make };
23
+ //# sourceMappingURL=Spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spec.d.ts","names":[],"sources":["../src/Spec.ts"],"sourcesContent":[],"mappings":";;;;;;cAGa,MAAA;KACD,MAAA,UAAgB;cAEf,6BAA4B;UAGxB,qBAAqB;YAC1B,MAAA,GAAS;mCAEH,KAAe,WAAW,SACtC,SACA;oBAIc,uBACT,QACN,KAAK,UAAU;;UAGH,GAAA;YACL,MAAA,GAAS;AArBrB;AACY,UAuBK,YAAA,SAAqB,IAvBJ,CAuBS,cAvBT,CAAA,CAAA,CAElC;AAGiB,KAoBL,MApBS,CAAA,cAoBY,YApBZ,CAAA,GAqBnB,KArBmB,CAAA,QAAA,CAAA,CAAA,MAqBG,KArBH,CAAA,QAAA,CAAA,CAAA;AAAiB,cA0CzB,IA1CyB,EAAA,GAAA,GA0Cd,IA1Cc"}
package/dist/Spec.js ADDED
@@ -0,0 +1,23 @@
1
+ import { __export } from "./_virtual/rolldown_runtime.js";
2
+ import { Predicate, Record } from "effect";
3
+
4
+ //#region src/Spec.ts
5
+ var Spec_exports = /* @__PURE__ */ __export({
6
+ TypeId: () => TypeId,
7
+ isSpec: () => isSpec,
8
+ make: () => make
9
+ });
10
+ const TypeId = "@confect/core/api/Spec";
11
+ const isSpec = (u) => Predicate.hasProperty(u, TypeId);
12
+ const Proto = {
13
+ [TypeId]: TypeId,
14
+ add(group) {
15
+ return makeProto({ groups: Record.set(this.groups, group.name, group) });
16
+ }
17
+ };
18
+ const makeProto = ({ groups }) => Object.assign(Object.create(Proto), { groups });
19
+ const make = () => makeProto({ groups: {} });
20
+
21
+ //#endregion
22
+ export { Spec_exports, TypeId, isSpec, make };
23
+ //# sourceMappingURL=Spec.js.map