@confect/core 9.2.4 → 9.3.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.
- package/CHANGELOG.md +51 -0
- package/dist/FunctionProvenance.d.ts +74 -3
- package/dist/FunctionProvenance.d.ts.map +1 -1
- package/dist/FunctionProvenance.js +43 -2
- package/dist/FunctionProvenance.js.map +1 -1
- package/dist/FunctionSpec.d.ts +42 -9
- package/dist/FunctionSpec.d.ts.map +1 -1
- package/dist/FunctionSpec.js +16 -2
- package/dist/FunctionSpec.js.map +1 -1
- package/dist/PaginationOptions.d.ts +31 -0
- package/dist/PaginationOptions.d.ts.map +1 -0
- package/dist/PaginationOptions.js +29 -0
- package/dist/PaginationOptions.js.map +1 -0
- package/dist/PaginationResult.d.ts +1 -0
- package/dist/PaginationResult.d.ts.map +1 -1
- package/dist/PaginationResult.js.map +1 -1
- package/dist/Ref.d.ts +34 -5
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +52 -14
- package/dist/Ref.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/tsconfig.src.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/FunctionProvenance.ts +147 -4
- package/src/FunctionSpec.ts +67 -1
- package/src/PaginationOptions.ts +25 -0
- package/src/PaginationResult.ts +3 -0
- package/src/Ref.ts +97 -28
- package/src/index.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,56 @@
|
|
|
1
1
|
# @confect/core
|
|
2
2
|
|
|
3
|
+
## 9.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 16b5ad6: Add first-class paginated queries: declare one with `FunctionSpec.publicPaginatedQuery` (or `internalPaginatedQuery`) and read it with the new `usePaginatedQuery` hook from `@confect/react`.
|
|
8
|
+
|
|
9
|
+
Pass an `item` schema — the type of one element in a page — in place of `returns`, plus an optional `args` struct for your own arguments. The handler receives `paginationOpts` alongside them and forwards it to `paginate`.
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
// confect/notes.spec.ts
|
|
13
|
+
FunctionSpec.publicPaginatedQuery({
|
|
14
|
+
name: "listByAuthor",
|
|
15
|
+
args: () => Schema.Struct({ author: Schema.String }),
|
|
16
|
+
item: () => notes.Doc,
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
// confect/notes.impl.ts
|
|
20
|
+
({ author, paginationOpts }) =>
|
|
21
|
+
Effect.gen(function* () {
|
|
22
|
+
const reader = yield* DatabaseReader;
|
|
23
|
+
|
|
24
|
+
return yield* reader
|
|
25
|
+
.table("notes")
|
|
26
|
+
.index("by_creation_time", "desc")
|
|
27
|
+
.paginate(paginationOpts, (q) => q.eq(q.field("author"), author));
|
|
28
|
+
}).pipe(Effect.orDie);
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Declaring `paginationOpts` in `args` yourself is a type and runtime error.
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
import { PaginatedQueryResult, usePaginatedQuery } from "@confect/react";
|
|
35
|
+
|
|
36
|
+
const notes = usePaginatedQuery(
|
|
37
|
+
refs.public.notes.listByAuthor,
|
|
38
|
+
{ author },
|
|
39
|
+
{ initialNumItems: 10 },
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
// `notes.results` holds the pages decoded through `item`.
|
|
43
|
+
if (PaginatedQueryResult.isCanLoadMore(notes)) {
|
|
44
|
+
notes.loadMore(10);
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The hook returns a `PaginatedQueryResult<Item, E>`. `LoadingFirstPage`, `LoadingMore`, `CanLoadMore`, and `Exhausted` all carry `results` and `isLoading`; `loadMore` lives only on `CanLoadMore`, the one state it can make progress from. A declared `error` schema surfaces as a `Failure` variant carrying the decoded error instead of throwing during render, and `Failure` carries `results` too, so the pages loaded before it can still be rendered. Without an `error` schema, `Failure` is absent from the type entirely.
|
|
49
|
+
|
|
50
|
+
`paginate` in `@confect/server` now accepts Convex's full `PaginationOptions`, so a handler's `paginationOpts` passes straight through. `@confect/react` now requires `convex` >= 1.36.0.
|
|
51
|
+
|
|
52
|
+
## 9.2.5
|
|
53
|
+
|
|
3
54
|
## 9.2.4
|
|
4
55
|
|
|
5
56
|
## 9.2.3
|
|
@@ -1,19 +1,43 @@
|
|
|
1
1
|
import type { DefaultFunctionArgs } from "convex/server";
|
|
2
|
-
import type { Schema } from "effect";
|
|
3
2
|
import * as Data from "effect/Data";
|
|
3
|
+
import * as Schema from "effect/Schema";
|
|
4
|
+
import * as PaginationOptions from "./PaginationOptions";
|
|
5
|
+
import * as PaginationResult from "./PaginationResult";
|
|
4
6
|
export type FunctionProvenance = Data.TaggedEnum<{
|
|
5
7
|
Confect: {
|
|
6
8
|
args: Schema.Schema.AnyNoContext;
|
|
7
9
|
returns: Schema.Schema.AnyNoContext;
|
|
8
10
|
error?: Schema.Schema.AnyNoContext;
|
|
11
|
+
kind: ConfectKind;
|
|
9
12
|
};
|
|
10
13
|
Convex: {};
|
|
11
14
|
}>;
|
|
12
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The declaration shape of a Confect function — orthogonal to both the
|
|
17
|
+
* provenance origin (Confect vs Convex) and the function type
|
|
18
|
+
* (query/mutation/action). A `Standard` function declares its `args` and
|
|
19
|
+
* `returns` schemas directly; a `Paginated` function declares `userArgs` and
|
|
20
|
+
* `item` schemas from which the Convex-facing `args`/`returns` are composed.
|
|
21
|
+
*/
|
|
22
|
+
export type ConfectKind = Standard | Paginated;
|
|
23
|
+
export interface Standard {
|
|
24
|
+
readonly _tag: "Standard";
|
|
25
|
+
}
|
|
26
|
+
export interface Paginated<UserArgs extends AnyUserArgs = AnyUserArgs, Item extends Schema.Schema.AnyNoContext = Schema.Schema.AnyNoContext> {
|
|
27
|
+
readonly _tag: "Paginated";
|
|
28
|
+
/** User-declared args — no `paginationOpts`. */
|
|
29
|
+
readonly userArgs: UserArgs;
|
|
30
|
+
/** Page element schema. */
|
|
31
|
+
readonly item: Item;
|
|
32
|
+
/** Mutable array of items — the page decode target. */
|
|
33
|
+
readonly page: Schema.Schema.AnyNoContext;
|
|
34
|
+
}
|
|
35
|
+
export interface Confect<Args extends Schema.Schema.AnyNoContext, Returns extends Schema.Schema.AnyNoContext, Error extends Schema.Schema.AnyNoContext = never, Kind extends ConfectKind = ConfectKind> {
|
|
13
36
|
readonly _tag: "Confect";
|
|
14
37
|
readonly args: Args;
|
|
15
38
|
readonly returns: Returns;
|
|
16
39
|
readonly error?: Error;
|
|
40
|
+
readonly kind: Kind;
|
|
17
41
|
}
|
|
18
42
|
export interface AnyConfect extends Confect<Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {
|
|
19
43
|
}
|
|
@@ -30,6 +54,7 @@ export declare const FunctionProvenance: {
|
|
|
30
54
|
readonly args: Schema.Schema.AnyNoContext;
|
|
31
55
|
readonly returns: Schema.Schema.AnyNoContext;
|
|
32
56
|
readonly error?: Schema.Schema.AnyNoContext;
|
|
57
|
+
readonly kind: ConfectKind;
|
|
33
58
|
}, "_tag">;
|
|
34
59
|
readonly Convex: Data.Case.Constructor<{
|
|
35
60
|
readonly _tag: "Convex";
|
|
@@ -41,6 +66,7 @@ export declare const FunctionProvenance: {
|
|
|
41
66
|
readonly args: Schema.Schema.AnyNoContext;
|
|
42
67
|
readonly returns: Schema.Schema.AnyNoContext;
|
|
43
68
|
readonly error?: Schema.Schema.AnyNoContext;
|
|
69
|
+
readonly kind: ConfectKind;
|
|
44
70
|
}, {
|
|
45
71
|
readonly _tag: Tag;
|
|
46
72
|
}> | Extract<{
|
|
@@ -57,6 +83,7 @@ export declare const FunctionProvenance: {
|
|
|
57
83
|
readonly args: Schema.Schema.AnyNoContext;
|
|
58
84
|
readonly returns: Schema.Schema.AnyNoContext;
|
|
59
85
|
readonly error?: Schema.Schema.AnyNoContext;
|
|
86
|
+
readonly kind: ConfectKind;
|
|
60
87
|
}) => any;
|
|
61
88
|
readonly Convex: (args: {
|
|
62
89
|
readonly _tag: "Convex";
|
|
@@ -68,6 +95,7 @@ export declare const FunctionProvenance: {
|
|
|
68
95
|
readonly args: Schema.Schema.AnyNoContext;
|
|
69
96
|
readonly returns: Schema.Schema.AnyNoContext;
|
|
70
97
|
readonly error?: Schema.Schema.AnyNoContext;
|
|
98
|
+
readonly kind: ConfectKind;
|
|
71
99
|
} | {
|
|
72
100
|
readonly _tag: "Convex";
|
|
73
101
|
readonly _args: DefaultFunctionArgs;
|
|
@@ -79,6 +107,7 @@ export declare const FunctionProvenance: {
|
|
|
79
107
|
readonly args: Schema.Schema.AnyNoContext;
|
|
80
108
|
readonly returns: Schema.Schema.AnyNoContext;
|
|
81
109
|
readonly error?: Schema.Schema.AnyNoContext;
|
|
110
|
+
readonly kind: ConfectKind;
|
|
82
111
|
}) => any;
|
|
83
112
|
readonly Convex: (args: {
|
|
84
113
|
readonly _tag: "Convex";
|
|
@@ -90,6 +119,7 @@ export declare const FunctionProvenance: {
|
|
|
90
119
|
readonly args: Schema.Schema.AnyNoContext;
|
|
91
120
|
readonly returns: Schema.Schema.AnyNoContext;
|
|
92
121
|
readonly error?: Schema.Schema.AnyNoContext;
|
|
122
|
+
readonly kind: ConfectKind;
|
|
93
123
|
} | {
|
|
94
124
|
readonly _tag: "Convex";
|
|
95
125
|
readonly _args: DefaultFunctionArgs;
|
|
@@ -113,7 +143,48 @@ export declare const FunctionProvenance: {
|
|
|
113
143
|
* is observable via `"error" in provenance` without forcing anything; nothing
|
|
114
144
|
* relies on `Data`'s structural `Equal`/`Hash` for provenance values.
|
|
115
145
|
*/
|
|
116
|
-
export declare const Confect: <Args extends Schema.Schema.AnyNoContext, Returns extends Schema.Schema.AnyNoContext, Error extends Schema.Schema.AnyNoContext = never>(args: () => Args, returns: () => Returns, error?: () => Error) => Confect<Args, Returns, Error>;
|
|
146
|
+
export declare const Confect: <Args extends Schema.Schema.AnyNoContext, Returns extends Schema.Schema.AnyNoContext, Error extends Schema.Schema.AnyNoContext = never>(args: () => Args, returns: () => Returns, error?: () => Error) => Confect<Args, Returns, Error, Standard>;
|
|
147
|
+
/**
|
|
148
|
+
* Any struct-shaped, context-free schema usable as a paginated query's user
|
|
149
|
+
* args. A structural bound rather than `Schema.Struct<Schema.Struct.Fields>`
|
|
150
|
+
* because `Schema.Struct` is not covariant in its fields parameter — concrete
|
|
151
|
+
* structs do not extend `Schema.Struct<Schema.Struct.Fields>`.
|
|
152
|
+
*/
|
|
153
|
+
export interface AnyUserArgs extends Schema.Schema.AnyNoContext {
|
|
154
|
+
readonly fields: Schema.Struct.Fields;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* The composed args schema of a paginated query: the user-declared fields
|
|
158
|
+
* plus the `paginationOpts` field managed by Convex's pagination protocol.
|
|
159
|
+
*
|
|
160
|
+
* The `extends infer ... extends` conditional lets TypeScript accept the
|
|
161
|
+
* composed struct where `Schema.Schema.AnyNoContext` is required even while
|
|
162
|
+
* `UserArgs` is an unresolved type parameter; for concrete user args it
|
|
163
|
+
* evaluates away entirely.
|
|
164
|
+
*/
|
|
165
|
+
export type PaginatedArgs<UserArgs extends AnyUserArgs> = Schema.Struct<UserArgs["fields"] & {
|
|
166
|
+
paginationOpts: typeof PaginationOptions.PaginationOptions;
|
|
167
|
+
}> extends infer ComposedArgs extends Schema.Schema.AnyNoContext ? ComposedArgs : never;
|
|
168
|
+
/**
|
|
169
|
+
* The composed returns schema of a paginated query: a `PaginationResult` of
|
|
170
|
+
* the item schema. Same deferred-conditional device as {@link PaginatedArgs}.
|
|
171
|
+
*/
|
|
172
|
+
export type PaginatedReturns<Item extends Schema.Schema.AnyNoContext> = PaginationResult.PaginationResult<Item> extends infer ComposedReturns extends Schema.Schema.AnyNoContext ? ComposedReturns : never;
|
|
173
|
+
export interface ConfectPaginated<UserArgs extends AnyUserArgs, Item extends Schema.Schema.AnyNoContext, Error extends Schema.Schema.AnyNoContext = never> extends Confect<PaginatedArgs<UserArgs>, PaginatedReturns<Item>, Error, Paginated<UserArgs, Item>> {
|
|
174
|
+
}
|
|
175
|
+
export interface AnyConfectPaginated extends ConfectPaginated<AnyUserArgs, Schema.Schema.AnyNoContext, Schema.Schema.AnyNoContext> {
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Build the provenance of a paginated query from lazy schema thunks, with the
|
|
179
|
+
* same laziness contract as {@link Confect}. The user-facing schemas live on
|
|
180
|
+
* the `Paginated` kind (`kind.userArgs`, `kind.item`, `kind.page`) — the kind
|
|
181
|
+
* container is built eagerly (it is cheap) while the schemas inside it stay
|
|
182
|
+
* lazy. The composed Convex-facing `args`/`returns` are derived lazily from
|
|
183
|
+
* them: `args` spreads the user fields plus `paginationOpts`, and `returns`
|
|
184
|
+
* wraps the item in `PaginationResult`. Composition living here means the
|
|
185
|
+
* composed schemas can never drift from the stored user schemas.
|
|
186
|
+
*/
|
|
187
|
+
export declare const ConfectPaginated: <UserArgs extends AnyUserArgs, Item extends Schema.Schema.AnyNoContext, Error extends Schema.Schema.AnyNoContext = never>(userArgs: () => UserArgs, item: () => Item, error?: () => Error) => ConfectPaginated<UserArgs, Item, Error>;
|
|
117
188
|
export declare const Convex: <_Args extends DefaultFunctionArgs, _Returns>() => {
|
|
118
189
|
readonly _tag: "Convex";
|
|
119
190
|
readonly _args: DefaultFunctionArgs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionProvenance.d.ts","sourceRoot":"","sources":["../src/FunctionProvenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"FunctionProvenance.d.ts","sourceRoot":"","sources":["../src/FunctionProvenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { defineProperty } from "./Lazy.js";
|
|
3
|
+
import { PaginationOptions } from "./PaginationOptions.js";
|
|
4
|
+
import { PaginationResult } from "./PaginationResult.js";
|
|
3
5
|
import * as Data from "effect/Data";
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
4
7
|
//#region src/FunctionProvenance.ts
|
|
5
8
|
var FunctionProvenance_exports = /* @__PURE__ */ __exportAll({
|
|
6
9
|
Confect: () => Confect,
|
|
10
|
+
ConfectPaginated: () => ConfectPaginated,
|
|
7
11
|
Convex: () => Convex,
|
|
8
12
|
FunctionProvenance: () => FunctionProvenance
|
|
9
13
|
});
|
|
10
14
|
const FunctionProvenance = Data.taggedEnum();
|
|
15
|
+
const Standard = { _tag: "Standard" };
|
|
11
16
|
/**
|
|
12
17
|
* Build a `Confect` provenance from lazy schema thunks. `args`, `returns`,
|
|
13
18
|
* and `error` are exposed as sync lazy memoised getters (via {@link Lazy.defineProperty})
|
|
@@ -25,14 +30,50 @@ const FunctionProvenance = Data.taggedEnum();
|
|
|
25
30
|
* relies on `Data`'s structural `Equal`/`Hash` for provenance values.
|
|
26
31
|
*/
|
|
27
32
|
const Confect = (args, returns, error) => {
|
|
28
|
-
const provenance = {
|
|
33
|
+
const provenance = {
|
|
34
|
+
_tag: "Confect",
|
|
35
|
+
kind: Standard
|
|
36
|
+
};
|
|
29
37
|
defineProperty(provenance, "args", args);
|
|
30
38
|
defineProperty(provenance, "returns", returns);
|
|
31
39
|
if (error !== void 0) defineProperty(provenance, "error", error);
|
|
32
40
|
return provenance;
|
|
33
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* Build the provenance of a paginated query from lazy schema thunks, with the
|
|
44
|
+
* same laziness contract as {@link Confect}. The user-facing schemas live on
|
|
45
|
+
* the `Paginated` kind (`kind.userArgs`, `kind.item`, `kind.page`) — the kind
|
|
46
|
+
* container is built eagerly (it is cheap) while the schemas inside it stay
|
|
47
|
+
* lazy. The composed Convex-facing `args`/`returns` are derived lazily from
|
|
48
|
+
* them: `args` spreads the user fields plus `paginationOpts`, and `returns`
|
|
49
|
+
* wraps the item in `PaginationResult`. Composition living here means the
|
|
50
|
+
* composed schemas can never drift from the stored user schemas.
|
|
51
|
+
*/
|
|
52
|
+
const ConfectPaginated = (userArgs, item, error) => {
|
|
53
|
+
const kind = { _tag: "Paginated" };
|
|
54
|
+
const paginatedKind = kind;
|
|
55
|
+
defineProperty(kind, "userArgs", userArgs);
|
|
56
|
+
defineProperty(kind, "item", item);
|
|
57
|
+
defineProperty(kind, "page", () => Schema.mutable(Schema.Array(paginatedKind.item)));
|
|
58
|
+
const provenance = {
|
|
59
|
+
_tag: "Confect",
|
|
60
|
+
kind: paginatedKind
|
|
61
|
+
};
|
|
62
|
+
const self = provenance;
|
|
63
|
+
defineProperty(provenance, "args", () => {
|
|
64
|
+
const fields = paginatedKind.userArgs.fields;
|
|
65
|
+
if ("paginationOpts" in fields) throw new globalThis.Error("A paginated query's args schema must not declare `paginationOpts` — it is added automatically from the `PaginationOptions` schema");
|
|
66
|
+
return Schema.Struct({
|
|
67
|
+
...fields,
|
|
68
|
+
paginationOpts: PaginationOptions
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
defineProperty(provenance, "returns", () => PaginationResult(paginatedKind.item));
|
|
72
|
+
if (error !== void 0) defineProperty(provenance, "error", error);
|
|
73
|
+
return self;
|
|
74
|
+
};
|
|
34
75
|
const Convex = () => FunctionProvenance.Convex({});
|
|
35
76
|
//#endregion
|
|
36
|
-
export { Confect, Convex, FunctionProvenance, FunctionProvenance_exports };
|
|
77
|
+
export { Confect, ConfectPaginated, Convex, FunctionProvenance, FunctionProvenance_exports };
|
|
37
78
|
|
|
38
79
|
//# sourceMappingURL=FunctionProvenance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionProvenance.js","names":[],"sources":["../src/FunctionProvenance.ts"],"sourcesContent":["import type { DefaultFunctionArgs } from \"convex/server\";\nimport
|
|
1
|
+
{"version":3,"file":"FunctionProvenance.js","names":["PaginationOptions.PaginationOptions","PaginationResult.PaginationResult"],"sources":["../src/FunctionProvenance.ts"],"sourcesContent":["import type { DefaultFunctionArgs } from \"convex/server\";\nimport * as Data from \"effect/Data\";\nimport * as Schema from \"effect/Schema\";\nimport * as Lazy from \"./Lazy\";\nimport * as PaginationOptions from \"./PaginationOptions\";\nimport * as PaginationResult from \"./PaginationResult\";\n\nexport type FunctionProvenance = Data.TaggedEnum<{\n Confect: {\n args: Schema.Schema.AnyNoContext;\n returns: Schema.Schema.AnyNoContext;\n error?: Schema.Schema.AnyNoContext;\n kind: ConfectKind;\n };\n Convex: {\n /** @internal */\n _args: DefaultFunctionArgs;\n /** @internal */\n _returns: any;\n };\n}>;\n\n/**\n * The declaration shape of a Confect function — orthogonal to both the\n * provenance origin (Confect vs Convex) and the function type\n * (query/mutation/action). A `Standard` function declares its `args` and\n * `returns` schemas directly; a `Paginated` function declares `userArgs` and\n * `item` schemas from which the Convex-facing `args`/`returns` are composed.\n */\nexport type ConfectKind = Standard | Paginated;\n\nexport interface Standard {\n readonly _tag: \"Standard\";\n}\n\nexport interface Paginated<\n UserArgs extends AnyUserArgs = AnyUserArgs,\n Item extends Schema.Schema.AnyNoContext = Schema.Schema.AnyNoContext,\n> {\n readonly _tag: \"Paginated\";\n /** User-declared args — no `paginationOpts`. */\n readonly userArgs: UserArgs;\n /** Page element schema. */\n readonly item: Item;\n /** Mutable array of items — the page decode target. */\n readonly page: Schema.Schema.AnyNoContext;\n}\n\nexport interface Confect<\n Args extends Schema.Schema.AnyNoContext,\n Returns extends Schema.Schema.AnyNoContext,\n Error extends Schema.Schema.AnyNoContext = never,\n Kind extends ConfectKind = ConfectKind,\n> {\n readonly _tag: \"Confect\";\n readonly args: Args;\n readonly returns: Returns;\n readonly error?: Error;\n readonly kind: Kind;\n}\n\nexport interface AnyConfect extends Confect<\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n> {}\n\nexport interface Convex<Args extends DefaultFunctionArgs, Returns> {\n readonly _tag: \"Convex\";\n readonly _args: Args;\n readonly _returns: Returns;\n}\n\nexport interface AnyConvex extends Convex<DefaultFunctionArgs, any> {}\n\nexport const FunctionProvenance = Data.taggedEnum<FunctionProvenance>();\n\nconst Standard: Standard = { _tag: \"Standard\" };\n\n/**\n * Build a `Confect` provenance from lazy schema thunks. `args`, `returns`,\n * and `error` are exposed as sync lazy memoised getters (via {@link Lazy.defineProperty})\n * that only evaluate their thunk on first access, mirroring how `Table`\n * defers `Fields`/`Doc`/`tableDefinition`. This keeps importing the assembled\n * `_generated/spec.ts` cheap — no `Schema.Struct(...)` / `Schema.Array(...)`\n * work runs at module load; it is deferred to the first invocation that\n * actually compiles validators or runs a codec.\n *\n * The object is built by hand rather than through `FunctionProvenance.Confect`\n * because the `Data` constructor copies its input with `Object.assign`, which\n * would force the getters at construction time and defeat the laziness.\n * `error` is only installed when an `errorThunk` is provided, so its absence\n * is observable via `\"error\" in provenance` without forcing anything; nothing\n * relies on `Data`'s structural `Equal`/`Hash` for provenance values.\n */\nexport const Confect = <\n Args extends Schema.Schema.AnyNoContext,\n Returns extends Schema.Schema.AnyNoContext,\n Error extends Schema.Schema.AnyNoContext = never,\n>(\n args: () => Args,\n returns: () => Returns,\n error?: () => Error,\n): Confect<Args, Returns, Error, Standard> => {\n const provenance = { _tag: \"Confect\" as const, kind: Standard };\n\n Lazy.defineProperty(provenance, \"args\", args);\n Lazy.defineProperty(provenance, \"returns\", returns);\n if (error !== undefined) {\n Lazy.defineProperty(provenance, \"error\", error);\n }\n\n return provenance as Confect<Args, Returns, Error, Standard>;\n};\n\n/**\n * Any struct-shaped, context-free schema usable as a paginated query's user\n * args. A structural bound rather than `Schema.Struct<Schema.Struct.Fields>`\n * because `Schema.Struct` is not covariant in its fields parameter — concrete\n * structs do not extend `Schema.Struct<Schema.Struct.Fields>`.\n */\n// eslint-disable-next-line import/namespace -- oxlint's namespace resolution misses type-only exports, and `Schema` is an interface/namespace\nexport interface AnyUserArgs extends Schema.Schema.AnyNoContext {\n readonly fields: Schema.Struct.Fields;\n}\n\n/**\n * The composed args schema of a paginated query: the user-declared fields\n * plus the `paginationOpts` field managed by Convex's pagination protocol.\n *\n * The `extends infer ... extends` conditional lets TypeScript accept the\n * composed struct where `Schema.Schema.AnyNoContext` is required even while\n * `UserArgs` is an unresolved type parameter; for concrete user args it\n * evaluates away entirely.\n */\nexport type PaginatedArgs<UserArgs extends AnyUserArgs> =\n Schema.Struct<\n UserArgs[\"fields\"] & {\n paginationOpts: typeof PaginationOptions.PaginationOptions;\n }\n > extends infer ComposedArgs extends Schema.Schema.AnyNoContext\n ? ComposedArgs\n : never;\n\n/**\n * The composed returns schema of a paginated query: a `PaginationResult` of\n * the item schema. Same deferred-conditional device as {@link PaginatedArgs}.\n */\nexport type PaginatedReturns<Item extends Schema.Schema.AnyNoContext> =\n PaginationResult.PaginationResult<Item> extends infer ComposedReturns extends\n Schema.Schema.AnyNoContext\n ? ComposedReturns\n : never;\n\nexport interface ConfectPaginated<\n UserArgs extends AnyUserArgs,\n Item extends Schema.Schema.AnyNoContext,\n Error extends Schema.Schema.AnyNoContext = never,\n> extends Confect<\n PaginatedArgs<UserArgs>,\n PaginatedReturns<Item>,\n Error,\n Paginated<UserArgs, Item>\n> {}\n\nexport interface AnyConfectPaginated extends ConfectPaginated<\n AnyUserArgs,\n Schema.Schema.AnyNoContext,\n Schema.Schema.AnyNoContext\n> {}\n\n/**\n * Build the provenance of a paginated query from lazy schema thunks, with the\n * same laziness contract as {@link Confect}. The user-facing schemas live on\n * the `Paginated` kind (`kind.userArgs`, `kind.item`, `kind.page`) — the kind\n * container is built eagerly (it is cheap) while the schemas inside it stay\n * lazy. The composed Convex-facing `args`/`returns` are derived lazily from\n * them: `args` spreads the user fields plus `paginationOpts`, and `returns`\n * wraps the item in `PaginationResult`. Composition living here means the\n * composed schemas can never drift from the stored user schemas.\n */\nexport const ConfectPaginated = <\n UserArgs extends AnyUserArgs,\n Item extends Schema.Schema.AnyNoContext,\n Error extends Schema.Schema.AnyNoContext = never,\n>(\n userArgs: () => UserArgs,\n item: () => Item,\n error?: () => Error,\n): ConfectPaginated<UserArgs, Item, Error> => {\n const kind = { _tag: \"Paginated\" as const };\n const paginatedKind = kind as Paginated<UserArgs, Item>;\n\n Lazy.defineProperty(kind, \"userArgs\", userArgs);\n Lazy.defineProperty(kind, \"item\", item);\n Lazy.defineProperty(kind, \"page\", () =>\n Schema.mutable(Schema.Array(paginatedKind.item)),\n );\n\n const provenance = { _tag: \"Confect\" as const, kind: paginatedKind };\n const self = provenance as ConfectPaginated<UserArgs, Item, Error>;\n\n Lazy.defineProperty(provenance, \"args\", () => {\n const fields = paginatedKind.userArgs.fields;\n if (\"paginationOpts\" in fields) {\n throw new globalThis.Error(\n \"A paginated query's args schema must not declare `paginationOpts` — \" +\n \"it is added automatically from the `PaginationOptions` schema\",\n );\n }\n return Schema.Struct({\n ...fields,\n paginationOpts: PaginationOptions.PaginationOptions,\n });\n });\n Lazy.defineProperty(provenance, \"returns\", () =>\n PaginationResult.PaginationResult(paginatedKind.item),\n );\n if (error !== undefined) {\n Lazy.defineProperty(provenance, \"error\", error);\n }\n\n return self;\n};\n\nexport const Convex = <_Args extends DefaultFunctionArgs, _Returns>() =>\n FunctionProvenance.Convex(\n {} as {\n _args: _Args;\n _returns: _Returns;\n },\n );\n"],"mappings":";;;;;;;;;;;;;AA2EA,MAAa,qBAAqB,KAAK,WAA+B;AAEtE,MAAM,WAAqB,EAAE,MAAM,WAAW;;;;;;;;;;;;;;;;;AAkB9C,MAAa,WAKX,MACA,SACA,UAC4C;CAC5C,MAAM,aAAa;EAAE,MAAM;EAAoB,MAAM;CAAS;CAE9D,eAAoB,YAAY,QAAQ,IAAI;CAC5C,eAAoB,YAAY,WAAW,OAAO;CAClD,IAAI,UAAU,KAAA,GACZ,eAAoB,YAAY,SAAS,KAAK;CAGhD,OAAO;AACT;;;;;;;;;;;AAoEA,MAAa,oBAKX,UACA,MACA,UAC4C;CAC5C,MAAM,OAAO,EAAE,MAAM,YAAqB;CAC1C,MAAM,gBAAgB;CAEtB,eAAoB,MAAM,YAAY,QAAQ;CAC9C,eAAoB,MAAM,QAAQ,IAAI;CACtC,eAAoB,MAAM,cACxB,OAAO,QAAQ,OAAO,MAAM,cAAc,IAAI,CAAC,CACjD;CAEA,MAAM,aAAa;EAAE,MAAM;EAAoB,MAAM;CAAc;CACnE,MAAM,OAAO;CAEb,eAAoB,YAAY,cAAc;EAC5C,MAAM,SAAS,cAAc,SAAS;EACtC,IAAI,oBAAoB,QACtB,MAAM,IAAI,WAAW,MACnB,mIAEF;EAEF,OAAO,OAAO,OAAO;GACnB,GAAG;GACH,gBAAgBA;EAClB,CAAC;CACH,CAAC;CACD,eAAoB,YAAY,iBAC9BC,iBAAkC,cAAc,IAAI,CACtD;CACA,IAAI,UAAU,KAAA,GACZ,eAAoB,YAAY,SAAS,KAAK;CAGhD,OAAO;AACT;AAEA,MAAa,eACX,mBAAmB,OACjB,CAAC,CAIH"}
|
package/dist/FunctionSpec.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FunctionType, FunctionVisibility, RegisteredAction, RegisteredMutation, RegisteredQuery } from "convex/server";
|
|
2
|
-
import
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
3
|
import * as FunctionProvenance from "./FunctionProvenance";
|
|
4
4
|
import * as RuntimeAndFunctionType from "./RuntimeAndFunctionType";
|
|
5
5
|
export declare const TypeId = "@confect/core/FunctionSpec";
|
|
@@ -97,6 +97,17 @@ export type WithFunctionProvenance<FunctionSpec_ extends AnyWithProps, FunctionP
|
|
|
97
97
|
export type WithoutName<FunctionSpec_ extends AnyWithProps, Name_ extends Name<FunctionSpec_>> = Exclude<FunctionSpec_, {
|
|
98
98
|
readonly name: Name_;
|
|
99
99
|
}>;
|
|
100
|
+
/**
|
|
101
|
+
* `Schema.Struct` fields that must not declare `paginationOpts`. Used to
|
|
102
|
+
* reject a user args schema that redeclares the field the paginated
|
|
103
|
+
* constructors add themselves; the check reports at the `args` thunk with an
|
|
104
|
+
* unsatisfiable type when violated.
|
|
105
|
+
*/
|
|
106
|
+
type ForbidPaginationOpts<UserArgs extends FunctionProvenance.AnyUserArgs> = "paginationOpts" extends keyof UserArgs["fields"] ? {
|
|
107
|
+
readonly fields: {
|
|
108
|
+
readonly paginationOpts: never;
|
|
109
|
+
};
|
|
110
|
+
} : unknown;
|
|
100
111
|
export declare const publicQuery: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, returns, error, }: {
|
|
101
112
|
name: Name_;
|
|
102
113
|
args: () => Args_;
|
|
@@ -105,7 +116,7 @@ export declare const publicQuery: <const Name_ extends string, Args_ extends Sch
|
|
|
105
116
|
}) => FunctionSpec<{
|
|
106
117
|
readonly runtime: "Convex";
|
|
107
118
|
readonly functionType: "query";
|
|
108
|
-
}, "public", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_>>;
|
|
119
|
+
}, "public", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_, FunctionProvenance.ConfectKind>>;
|
|
109
120
|
export declare const internalQuery: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, returns, error, }: {
|
|
110
121
|
name: Name_;
|
|
111
122
|
args: () => Args_;
|
|
@@ -114,7 +125,29 @@ export declare const internalQuery: <const Name_ extends string, Args_ extends S
|
|
|
114
125
|
}) => FunctionSpec<{
|
|
115
126
|
readonly runtime: "Convex";
|
|
116
127
|
readonly functionType: "query";
|
|
117
|
-
}, "internal", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_>>;
|
|
128
|
+
}, "internal", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_, FunctionProvenance.ConfectKind>>;
|
|
129
|
+
export declare const publicPaginatedQuery: <const Name_ extends string, Item_ extends Schema.Schema.AnyNoContext, UserArgs_ extends FunctionProvenance.AnyUserArgs = Schema.Struct<{}>, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, item, error, }: {
|
|
130
|
+
name: Name_;
|
|
131
|
+
/** User-declared args, without `paginationOpts` — it is added automatically. */
|
|
132
|
+
args?: (() => UserArgs_) & ForbidPaginationOpts<UserArgs_>;
|
|
133
|
+
/** The page element schema. */
|
|
134
|
+
item: () => Item_;
|
|
135
|
+
error?: () => Error_;
|
|
136
|
+
}) => FunctionSpec<{
|
|
137
|
+
readonly runtime: "Convex";
|
|
138
|
+
readonly functionType: "query";
|
|
139
|
+
}, "public", Name_, FunctionProvenance.ConfectPaginated<UserArgs_, Item_, Error_>>;
|
|
140
|
+
export declare const internalPaginatedQuery: <const Name_ extends string, Item_ extends Schema.Schema.AnyNoContext, UserArgs_ extends FunctionProvenance.AnyUserArgs = Schema.Struct<{}>, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, item, error, }: {
|
|
141
|
+
name: Name_;
|
|
142
|
+
/** User-declared args, without `paginationOpts` — it is added automatically. */
|
|
143
|
+
args?: (() => UserArgs_) & ForbidPaginationOpts<UserArgs_>;
|
|
144
|
+
/** The page element schema. */
|
|
145
|
+
item: () => Item_;
|
|
146
|
+
error?: () => Error_;
|
|
147
|
+
}) => FunctionSpec<{
|
|
148
|
+
readonly runtime: "Convex";
|
|
149
|
+
readonly functionType: "query";
|
|
150
|
+
}, "internal", Name_, FunctionProvenance.ConfectPaginated<UserArgs_, Item_, Error_>>;
|
|
118
151
|
export declare const publicMutation: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, returns, error, }: {
|
|
119
152
|
name: Name_;
|
|
120
153
|
args: () => Args_;
|
|
@@ -123,7 +156,7 @@ export declare const publicMutation: <const Name_ extends string, Args_ extends
|
|
|
123
156
|
}) => FunctionSpec<{
|
|
124
157
|
readonly runtime: "Convex";
|
|
125
158
|
readonly functionType: "mutation";
|
|
126
|
-
}, "public", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_>>;
|
|
159
|
+
}, "public", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_, FunctionProvenance.ConfectKind>>;
|
|
127
160
|
export declare const internalMutation: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, returns, error, }: {
|
|
128
161
|
name: Name_;
|
|
129
162
|
args: () => Args_;
|
|
@@ -132,7 +165,7 @@ export declare const internalMutation: <const Name_ extends string, Args_ extend
|
|
|
132
165
|
}) => FunctionSpec<{
|
|
133
166
|
readonly runtime: "Convex";
|
|
134
167
|
readonly functionType: "mutation";
|
|
135
|
-
}, "internal", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_>>;
|
|
168
|
+
}, "internal", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_, FunctionProvenance.ConfectKind>>;
|
|
136
169
|
export declare const publicAction: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, returns, error, }: {
|
|
137
170
|
name: Name_;
|
|
138
171
|
args: () => Args_;
|
|
@@ -141,7 +174,7 @@ export declare const publicAction: <const Name_ extends string, Args_ extends Sc
|
|
|
141
174
|
}) => FunctionSpec<{
|
|
142
175
|
readonly runtime: "Convex";
|
|
143
176
|
readonly functionType: "action";
|
|
144
|
-
}, "public", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_>>;
|
|
177
|
+
}, "public", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_, FunctionProvenance.ConfectKind>>;
|
|
145
178
|
export declare const internalAction: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, returns, error, }: {
|
|
146
179
|
name: Name_;
|
|
147
180
|
args: () => Args_;
|
|
@@ -150,7 +183,7 @@ export declare const internalAction: <const Name_ extends string, Args_ extends
|
|
|
150
183
|
}) => FunctionSpec<{
|
|
151
184
|
readonly runtime: "Convex";
|
|
152
185
|
readonly functionType: "action";
|
|
153
|
-
}, "internal", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_>>;
|
|
186
|
+
}, "internal", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_, FunctionProvenance.ConfectKind>>;
|
|
154
187
|
export declare const publicNodeAction: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, returns, error, }: {
|
|
155
188
|
name: Name_;
|
|
156
189
|
args: () => Args_;
|
|
@@ -159,7 +192,7 @@ export declare const publicNodeAction: <const Name_ extends string, Args_ extend
|
|
|
159
192
|
}) => FunctionSpec<{
|
|
160
193
|
readonly runtime: "Node";
|
|
161
194
|
readonly functionType: "action";
|
|
162
|
-
}, "public", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_>>;
|
|
195
|
+
}, "public", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_, FunctionProvenance.ConfectKind>>;
|
|
163
196
|
export declare const internalNodeAction: <const Name_ extends string, Args_ extends Schema.Schema.AnyNoContext, Returns_ extends Schema.Schema.AnyNoContext, Error_ extends Schema.Schema.AnyNoContext = never>({ name, args, returns, error, }: {
|
|
164
197
|
name: Name_;
|
|
165
198
|
args: () => Args_;
|
|
@@ -168,7 +201,7 @@ export declare const internalNodeAction: <const Name_ extends string, Args_ exte
|
|
|
168
201
|
}) => FunctionSpec<{
|
|
169
202
|
readonly runtime: "Node";
|
|
170
203
|
readonly functionType: "action";
|
|
171
|
-
}, "internal", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_>>;
|
|
204
|
+
}, "internal", Name_, FunctionProvenance.Confect<Args_, Returns_, Error_, FunctionProvenance.ConfectKind>>;
|
|
172
205
|
type ExtractArgs<F> = F extends RegisteredQuery<any, infer A, any> ? A : F extends RegisteredMutation<any, infer A, any> ? A : F extends RegisteredAction<any, infer A, any> ? A : never;
|
|
173
206
|
type ExtractReturns<F> = F extends RegisteredQuery<any, any, infer R> ? R : F extends RegisteredMutation<any, any, infer R> ? R : F extends RegisteredAction<any, any, infer R> ? R : never;
|
|
174
207
|
export declare const convexPublicQuery: <F extends RegisteredQuery<"public", any, any>>() => <const Name_ extends string>(name: Name_) => FunctionSpec<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionSpec.d.ts","sourceRoot":"","sources":["../src/FunctionSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"FunctionSpec.d.ts","sourceRoot":"","sources":["../src/FunctionSpec.ts"],"names":[],"mappings":"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"}
|
package/dist/FunctionSpec.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
-
import { Confect, Convex } from "./FunctionProvenance.js";
|
|
2
|
+
import { Confect, ConfectPaginated, Convex } from "./FunctionProvenance.js";
|
|
3
3
|
import { validateConfectFunctionIdentifier } from "./Identifier.js";
|
|
4
4
|
import { ConvexAction, ConvexMutation, ConvexQuery, NodeAction } from "./RuntimeAndFunctionType.js";
|
|
5
|
+
import * as Schema from "effect/Schema";
|
|
5
6
|
import * as Predicate from "effect/Predicate";
|
|
6
7
|
//#region src/FunctionSpec.ts
|
|
7
8
|
var FunctionSpec_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -17,11 +18,13 @@ var FunctionSpec_exports = /* @__PURE__ */ __exportAll({
|
|
|
17
18
|
internalAction: () => internalAction,
|
|
18
19
|
internalMutation: () => internalMutation,
|
|
19
20
|
internalNodeAction: () => internalNodeAction,
|
|
21
|
+
internalPaginatedQuery: () => internalPaginatedQuery,
|
|
20
22
|
internalQuery: () => internalQuery,
|
|
21
23
|
isFunctionSpec: () => isFunctionSpec,
|
|
22
24
|
publicAction: () => publicAction,
|
|
23
25
|
publicMutation: () => publicMutation,
|
|
24
26
|
publicNodeAction: () => publicNodeAction,
|
|
27
|
+
publicPaginatedQuery: () => publicPaginatedQuery,
|
|
25
28
|
publicQuery: () => publicQuery
|
|
26
29
|
});
|
|
27
30
|
const TypeId = "@confect/core/FunctionSpec";
|
|
@@ -36,8 +39,19 @@ const make = (runtimeAndFunctionType, functionVisibility) => ({ name, args, retu
|
|
|
36
39
|
functionProvenance: Confect(args, returns, error)
|
|
37
40
|
});
|
|
38
41
|
};
|
|
42
|
+
const makePaginated = (runtimeAndFunctionType, functionVisibility) => ({ name, args, item, error }) => {
|
|
43
|
+
validateConfectFunctionIdentifier(name);
|
|
44
|
+
return Object.assign(Object.create(Proto), {
|
|
45
|
+
runtimeAndFunctionType,
|
|
46
|
+
functionVisibility,
|
|
47
|
+
name,
|
|
48
|
+
functionProvenance: ConfectPaginated(args ?? (() => Schema.Struct({})), item, error)
|
|
49
|
+
});
|
|
50
|
+
};
|
|
39
51
|
const publicQuery = make(ConvexQuery, "public");
|
|
40
52
|
const internalQuery = make(ConvexQuery, "internal");
|
|
53
|
+
const publicPaginatedQuery = makePaginated(ConvexQuery, "public");
|
|
54
|
+
const internalPaginatedQuery = makePaginated(ConvexQuery, "internal");
|
|
41
55
|
const publicMutation = make(ConvexMutation, "public");
|
|
42
56
|
const internalMutation = make(ConvexMutation, "internal");
|
|
43
57
|
const publicAction = make(ConvexAction, "public");
|
|
@@ -62,6 +76,6 @@ const convexInternalAction = makeConvex(ConvexAction, "internal");
|
|
|
62
76
|
const convexPublicNodeAction = makeConvex(NodeAction, "public");
|
|
63
77
|
const convexInternalNodeAction = makeConvex(NodeAction, "internal");
|
|
64
78
|
//#endregion
|
|
65
|
-
export { FunctionSpec_exports, TypeId, convexInternalAction, convexInternalMutation, convexInternalNodeAction, convexInternalQuery, convexPublicAction, convexPublicMutation, convexPublicNodeAction, convexPublicQuery, internalAction, internalMutation, internalNodeAction, internalQuery, isFunctionSpec, publicAction, publicMutation, publicNodeAction, publicQuery };
|
|
79
|
+
export { FunctionSpec_exports, TypeId, convexInternalAction, convexInternalMutation, convexInternalNodeAction, convexInternalQuery, convexPublicAction, convexPublicMutation, convexPublicNodeAction, convexPublicQuery, internalAction, internalMutation, internalNodeAction, internalPaginatedQuery, internalQuery, isFunctionSpec, publicAction, publicMutation, publicNodeAction, publicPaginatedQuery, publicQuery };
|
|
66
80
|
|
|
67
81
|
//# sourceMappingURL=FunctionSpec.js.map
|
package/dist/FunctionSpec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionSpec.js","names":["FunctionProvenance.Confect","RuntimeAndFunctionType.ConvexQuery","RuntimeAndFunctionType.ConvexMutation","RuntimeAndFunctionType.ConvexAction","RuntimeAndFunctionType.NodeAction","FunctionProvenance.Convex"],"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 * as Predicate from \"effect/Predicate\";\nimport * as FunctionProvenance from \"./FunctionProvenance\";\nimport { validateConfectFunctionIdentifier } from \"./Identifier\";\nimport * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType\";\n\nexport const TypeId = \"@confect/core/FunctionSpec\";\nexport type TypeId = typeof TypeId;\n\nexport const isFunctionSpec = (u: unknown): u is AnyWithProps =>\n Predicate.hasProperty(u, TypeId);\n\nexport interface FunctionSpec<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> {\n readonly [TypeId]: TypeId;\n readonly runtimeAndFunctionType: RuntimeAndFunctionType_;\n readonly functionVisibility: FunctionVisibility_;\n readonly name: Name_;\n readonly functionProvenance: FunctionProvenance_;\n}\n\nexport interface Any {\n readonly [TypeId]: TypeId;\n}\n\nexport interface AnyWithProps extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance\n> {}\n\nexport interface AnyConfect extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.AnyConfect\n> {}\n\nexport interface AnyConvex extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.AnyConvex\n> {}\n\nexport interface AnyWithPropsWithRuntime<\n Runtime extends RuntimeAndFunctionType.Runtime,\n> extends FunctionSpec<\n RuntimeAndFunctionType.WithRuntime<Runtime>,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance\n> {}\n\nexport interface AnyWithPropsWithFunctionType<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n> extends FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance\n> {}\n\nexport interface AnyWithPropsWithFunctionProvenance<\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance_\n> {}\n\nexport type GetRuntimeAndFunctionType<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"runtimeAndFunctionType\"];\n\nexport type GetFunctionVisibility<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"functionVisibility\"];\n\nexport type Name<FunctionSpec_ extends AnyWithProps> = FunctionSpec_[\"name\"];\n\nexport type Args<FunctionSpec_ extends AnyWithProps> = FunctionSpec_ extends {\n functionProvenance: {\n _tag: \"Confect\";\n args: infer ArgsSchema_ extends Schema.Schema.AnyNoContext;\n };\n}\n ? ArgsSchema_[\"Type\"]\n : FunctionSpec_ extends {\n functionProvenance: { _tag: \"Convex\"; _args: infer Args_ };\n }\n ? Args_\n : never;\n\nexport type Returns<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n functionProvenance: {\n _tag: \"Confect\";\n returns: infer ReturnsSchema_ extends Schema.Schema.AnyNoContext;\n };\n }\n ? ReturnsSchema_[\"Type\"]\n : FunctionSpec_ extends {\n functionProvenance: { _tag: \"Convex\"; _returns: infer Returns_ };\n }\n ? Awaited<Returns_>\n : never;\n\nexport type EncodedArgs<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n functionProvenance: {\n _tag: \"Confect\";\n args: infer ArgsSchema_ extends Schema.Schema.AnyNoContext;\n };\n }\n ? ArgsSchema_[\"Encoded\"]\n : FunctionSpec_ extends {\n functionProvenance: { _tag: \"Convex\"; _args: infer Args_ };\n }\n ? Args_\n : never;\n\nexport type EncodedReturns<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n functionProvenance: {\n _tag: \"Confect\";\n returns: infer ReturnsSchema_ extends Schema.Schema.AnyNoContext;\n };\n }\n ? ReturnsSchema_[\"Encoded\"]\n : FunctionSpec_ extends {\n functionProvenance: { _tag: \"Convex\"; _returns: infer Returns_ };\n }\n ? Returns_\n : never;\n\nexport type Error<FunctionSpec_ extends AnyWithProps> = FunctionSpec_ extends {\n functionProvenance: FunctionProvenance.Confect<\n any,\n any,\n infer ErrorSchema_ extends Schema.Schema.AnyNoContext\n >;\n}\n ? ErrorSchema_[\"Type\"]\n : never;\n\nexport type EncodedError<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n functionProvenance: FunctionProvenance.Confect<\n any,\n any,\n infer ErrorSchema_ extends Schema.Schema.AnyNoContext\n >;\n }\n ? ErrorSchema_[\"Encoded\"]\n : never;\n\nexport type WithName<\n FunctionSpec_ extends AnyWithProps,\n Name_ extends string,\n> = Extract<FunctionSpec_, { readonly name: Name_ }>;\n\nexport type WithRuntimeAndFunctionType<\n FunctionSpec_ extends AnyWithProps,\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n> = Extract<\n FunctionSpec_,\n { readonly runtimeAndFunctionType: RuntimeAndFunctionType_ }\n>;\n\nexport type WithFunctionType<\n FunctionSpec_ extends AnyWithProps,\n FunctionType_ extends FunctionType,\n> = Extract<\n FunctionSpec_,\n { readonly runtimeAndFunctionType: { readonly functionType: FunctionType_ } }\n>;\n\nexport type WithFunctionProvenance<\n FunctionSpec_ extends AnyWithProps,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> = Extract<\n FunctionSpec_,\n { readonly functionProvenance: FunctionProvenance_ }\n>;\n\nexport type WithoutName<\n FunctionSpec_ extends AnyWithProps,\n Name_ extends Name<FunctionSpec_>,\n> = Exclude<FunctionSpec_, { readonly name: Name_ }>;\n\nconst Proto = {\n [TypeId]: TypeId,\n};\n\nconst make =\n <\n RuntimeAndFunctionType_ extends\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n >(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n ) =>\n <\n const Name_ extends string,\n Args_ extends Schema.Schema.AnyNoContext,\n Returns_ extends Schema.Schema.AnyNoContext,\n Error_ extends Schema.Schema.AnyNoContext = never,\n >({\n name,\n args,\n returns,\n error,\n }: {\n name: Name_;\n args: () => Args_;\n returns: () => Returns_;\n error?: () => Error_;\n }): FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<Args_, Returns_, Error_>\n > => {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n functionProvenance: FunctionProvenance.Confect(args, returns, error),\n });\n };\n\nexport const publicQuery = make(RuntimeAndFunctionType.ConvexQuery, \"public\");\nexport const internalQuery = make(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const publicMutation = make(\n RuntimeAndFunctionType.ConvexMutation,\n \"public\",\n);\nexport const internalMutation = make(\n RuntimeAndFunctionType.ConvexMutation,\n \"internal\",\n);\nexport const publicAction = make(RuntimeAndFunctionType.ConvexAction, \"public\");\nexport const internalAction = make(\n RuntimeAndFunctionType.ConvexAction,\n \"internal\",\n);\n\nexport const publicNodeAction = make(\n RuntimeAndFunctionType.NodeAction,\n \"public\",\n);\nexport const internalNodeAction = make(\n RuntimeAndFunctionType.NodeAction,\n \"internal\",\n);\n\ntype MatchingRegisteredFunction<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n> =\n RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"query\"\n ? RegisteredQuery<FunctionVisibility_, any, any>\n : RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"mutation\"\n ? RegisteredMutation<FunctionVisibility_, any, any>\n : RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"action\"\n ? RegisteredAction<FunctionVisibility_, any, any>\n : never;\n\ntype ExtractArgs<F> =\n F extends RegisteredQuery<any, infer A, any>\n ? A\n : F extends RegisteredMutation<any, infer A, any>\n ? A\n : F extends RegisteredAction<any, infer A, any>\n ? A\n : never;\n\ntype ExtractReturns<F> =\n F extends RegisteredQuery<any, any, infer R>\n ? R\n : F extends RegisteredMutation<any, any, infer R>\n ? R\n : F extends RegisteredAction<any, any, infer R>\n ? R\n : never;\n\nconst makeConvex =\n <\n RuntimeAndFunctionType_ extends\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n >(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n ) =>\n <\n F extends MatchingRegisteredFunction<\n RuntimeAndFunctionType_,\n FunctionVisibility_\n >,\n >() =>\n <const Name_ extends string>(\n name: Name_,\n ): FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Convex<ExtractArgs<F>, ExtractReturns<F>>\n > => {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n functionProvenance: FunctionProvenance.Convex<\n ExtractArgs<F>,\n ExtractReturns<F>\n >(),\n }) as any;\n };\n\nexport const convexPublicQuery = makeConvex(\n RuntimeAndFunctionType.ConvexQuery,\n \"public\",\n);\nexport const convexInternalQuery = makeConvex(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const convexPublicMutation = makeConvex(\n RuntimeAndFunctionType.ConvexMutation,\n \"public\",\n);\nexport const convexInternalMutation = makeConvex(\n RuntimeAndFunctionType.ConvexMutation,\n \"internal\",\n);\nexport const convexPublicAction = makeConvex(\n RuntimeAndFunctionType.ConvexAction,\n \"public\",\n);\nexport const convexInternalAction = makeConvex(\n RuntimeAndFunctionType.ConvexAction,\n \"internal\",\n);\nexport const convexPublicNodeAction = makeConvex(\n RuntimeAndFunctionType.NodeAction,\n \"public\",\n);\nexport const convexInternalNodeAction = makeConvex(\n RuntimeAndFunctionType.NodeAction,\n \"internal\",\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAa,SAAS;AAGtB,MAAa,kBAAkB,MAC7B,UAAU,YAAY,GAAG,MAAM;AAyLjC,MAAM,QAAQ,GACX,SAAS,OACZ;AAEA,MAAM,QAMF,wBACA,wBAOA,EACA,MACA,MACA,SACA,YAWG;CACH,kCAAkC,IAAI;CAEtC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG;EACzC;EACA;EACA;EACA,oBAAoBA,QAA2B,MAAM,SAAS,KAAK;CACrE,CAAC;AACH;AAEF,MAAa,cAAc,KAAKC,aAAoC,QAAQ;AAC5E,MAAa,gBAAgB,KAC3BA,aACA,UACF;AACA,MAAa,iBAAiB,KAC5BC,gBACA,QACF;AACA,MAAa,mBAAmB,KAC9BA,gBACA,UACF;AACA,MAAa,eAAe,KAAKC,cAAqC,QAAQ;AAC9E,MAAa,iBAAiB,KAC5BA,cACA,UACF;AAEA,MAAa,mBAAmB,KAC9BC,YACA,QACF;AACA,MAAa,qBAAqB,KAChCA,YACA,UACF;AAgCA,MAAM,cAMF,wBACA,8BASA,SAMG;CACH,kCAAkC,IAAI;CAEtC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG;EACzC;EACA;EACA;EACA,oBAAoBC,OAGlB;CACJ,CAAC;AACH;AAEF,MAAa,oBAAoB,WAC/BJ,aACA,QACF;AACA,MAAa,sBAAsB,WACjCA,aACA,UACF;AACA,MAAa,uBAAuB,WAClCC,gBACA,QACF;AACA,MAAa,yBAAyB,WACpCA,gBACA,UACF;AACA,MAAa,qBAAqB,WAChCC,cACA,QACF;AACA,MAAa,uBAAuB,WAClCA,cACA,UACF;AACA,MAAa,yBAAyB,WACpCC,YACA,QACF;AACA,MAAa,2BAA2B,WACtCA,YACA,UACF"}
|
|
1
|
+
{"version":3,"file":"FunctionSpec.js","names":["FunctionProvenance.Confect","FunctionProvenance.ConfectPaginated","RuntimeAndFunctionType.ConvexQuery","RuntimeAndFunctionType.ConvexMutation","RuntimeAndFunctionType.ConvexAction","RuntimeAndFunctionType.NodeAction","FunctionProvenance.Convex"],"sources":["../src/FunctionSpec.ts"],"sourcesContent":["import type {\n FunctionType,\n FunctionVisibility,\n RegisteredAction,\n RegisteredMutation,\n RegisteredQuery,\n} from \"convex/server\";\nimport * as Schema from \"effect/Schema\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as FunctionProvenance from \"./FunctionProvenance\";\nimport { validateConfectFunctionIdentifier } from \"./Identifier\";\nimport * as RuntimeAndFunctionType from \"./RuntimeAndFunctionType\";\n\nexport const TypeId = \"@confect/core/FunctionSpec\";\nexport type TypeId = typeof TypeId;\n\nexport const isFunctionSpec = (u: unknown): u is AnyWithProps =>\n Predicate.hasProperty(u, TypeId);\n\nexport interface FunctionSpec<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n Name_ extends string,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> {\n readonly [TypeId]: TypeId;\n readonly runtimeAndFunctionType: RuntimeAndFunctionType_;\n readonly functionVisibility: FunctionVisibility_;\n readonly name: Name_;\n readonly functionProvenance: FunctionProvenance_;\n}\n\nexport interface Any {\n readonly [TypeId]: TypeId;\n}\n\nexport interface AnyWithProps extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance\n> {}\n\nexport interface AnyConfect extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.AnyConfect\n> {}\n\nexport interface AnyConvex extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance.AnyConvex\n> {}\n\nexport interface AnyWithPropsWithRuntime<\n Runtime extends RuntimeAndFunctionType.Runtime,\n> extends FunctionSpec<\n RuntimeAndFunctionType.WithRuntime<Runtime>,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance\n> {}\n\nexport interface AnyWithPropsWithFunctionType<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n> extends FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility,\n string,\n FunctionProvenance.FunctionProvenance\n> {}\n\nexport interface AnyWithPropsWithFunctionProvenance<\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> extends FunctionSpec<\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility,\n string,\n FunctionProvenance_\n> {}\n\nexport type GetRuntimeAndFunctionType<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"runtimeAndFunctionType\"];\n\nexport type GetFunctionVisibility<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_[\"functionVisibility\"];\n\nexport type Name<FunctionSpec_ extends AnyWithProps> = FunctionSpec_[\"name\"];\n\nexport type Args<FunctionSpec_ extends AnyWithProps> = FunctionSpec_ extends {\n functionProvenance: {\n _tag: \"Confect\";\n args: infer ArgsSchema_ extends Schema.Schema.AnyNoContext;\n };\n}\n ? ArgsSchema_[\"Type\"]\n : FunctionSpec_ extends {\n functionProvenance: { _tag: \"Convex\"; _args: infer Args_ };\n }\n ? Args_\n : never;\n\nexport type Returns<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n functionProvenance: {\n _tag: \"Confect\";\n returns: infer ReturnsSchema_ extends Schema.Schema.AnyNoContext;\n };\n }\n ? ReturnsSchema_[\"Type\"]\n : FunctionSpec_ extends {\n functionProvenance: { _tag: \"Convex\"; _returns: infer Returns_ };\n }\n ? Awaited<Returns_>\n : never;\n\nexport type EncodedArgs<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n functionProvenance: {\n _tag: \"Confect\";\n args: infer ArgsSchema_ extends Schema.Schema.AnyNoContext;\n };\n }\n ? ArgsSchema_[\"Encoded\"]\n : FunctionSpec_ extends {\n functionProvenance: { _tag: \"Convex\"; _args: infer Args_ };\n }\n ? Args_\n : never;\n\nexport type EncodedReturns<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n functionProvenance: {\n _tag: \"Confect\";\n returns: infer ReturnsSchema_ extends Schema.Schema.AnyNoContext;\n };\n }\n ? ReturnsSchema_[\"Encoded\"]\n : FunctionSpec_ extends {\n functionProvenance: { _tag: \"Convex\"; _returns: infer Returns_ };\n }\n ? Returns_\n : never;\n\nexport type Error<FunctionSpec_ extends AnyWithProps> = FunctionSpec_ extends {\n functionProvenance: FunctionProvenance.Confect<\n any,\n any,\n infer ErrorSchema_ extends Schema.Schema.AnyNoContext\n >;\n}\n ? ErrorSchema_[\"Type\"]\n : never;\n\nexport type EncodedError<FunctionSpec_ extends AnyWithProps> =\n FunctionSpec_ extends {\n functionProvenance: FunctionProvenance.Confect<\n any,\n any,\n infer ErrorSchema_ extends Schema.Schema.AnyNoContext\n >;\n }\n ? ErrorSchema_[\"Encoded\"]\n : never;\n\nexport type WithName<\n FunctionSpec_ extends AnyWithProps,\n Name_ extends string,\n> = Extract<FunctionSpec_, { readonly name: Name_ }>;\n\nexport type WithRuntimeAndFunctionType<\n FunctionSpec_ extends AnyWithProps,\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n> = Extract<\n FunctionSpec_,\n { readonly runtimeAndFunctionType: RuntimeAndFunctionType_ }\n>;\n\nexport type WithFunctionType<\n FunctionSpec_ extends AnyWithProps,\n FunctionType_ extends FunctionType,\n> = Extract<\n FunctionSpec_,\n { readonly runtimeAndFunctionType: { readonly functionType: FunctionType_ } }\n>;\n\nexport type WithFunctionProvenance<\n FunctionSpec_ extends AnyWithProps,\n FunctionProvenance_ extends FunctionProvenance.FunctionProvenance,\n> = Extract<\n FunctionSpec_,\n { readonly functionProvenance: FunctionProvenance_ }\n>;\n\nexport type WithoutName<\n FunctionSpec_ extends AnyWithProps,\n Name_ extends Name<FunctionSpec_>,\n> = Exclude<FunctionSpec_, { readonly name: Name_ }>;\n\nconst Proto = {\n [TypeId]: TypeId,\n};\n\nconst make =\n <\n RuntimeAndFunctionType_ extends\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n >(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n ) =>\n <\n const Name_ extends string,\n Args_ extends Schema.Schema.AnyNoContext,\n Returns_ extends Schema.Schema.AnyNoContext,\n Error_ extends Schema.Schema.AnyNoContext = never,\n >({\n name,\n args,\n returns,\n error,\n }: {\n name: Name_;\n args: () => Args_;\n returns: () => Returns_;\n error?: () => Error_;\n }): FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Confect<Args_, Returns_, Error_>\n > => {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n functionProvenance: FunctionProvenance.Confect(args, returns, error),\n });\n };\n\n/**\n * `Schema.Struct` fields that must not declare `paginationOpts`. Used to\n * reject a user args schema that redeclares the field the paginated\n * constructors add themselves; the check reports at the `args` thunk with an\n * unsatisfiable type when violated.\n */\ntype ForbidPaginationOpts<UserArgs extends FunctionProvenance.AnyUserArgs> =\n \"paginationOpts\" extends keyof UserArgs[\"fields\"]\n ? { readonly fields: { readonly paginationOpts: never } }\n : unknown;\n\nconst makePaginated =\n <\n RuntimeAndFunctionType_ extends\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n >(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n ) =>\n <\n const Name_ extends string,\n Item_ extends Schema.Schema.AnyNoContext,\n UserArgs_ extends FunctionProvenance.AnyUserArgs = Schema.Struct<{}>,\n Error_ extends Schema.Schema.AnyNoContext = never,\n >({\n name,\n args,\n item,\n error,\n }: {\n name: Name_;\n /** User-declared args, without `paginationOpts` — it is added automatically. */\n args?: (() => UserArgs_) & ForbidPaginationOpts<UserArgs_>;\n /** The page element schema. */\n item: () => Item_;\n error?: () => Error_;\n }): FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.ConfectPaginated<UserArgs_, Item_, Error_>\n > => {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n functionProvenance: FunctionProvenance.ConfectPaginated(\n // When `args` is omitted, `UserArgs_` is its `Schema.Struct<{}>` default.\n args ?? ((() => Schema.Struct({})) as unknown as () => UserArgs_),\n item,\n error,\n ),\n });\n };\n\nexport const publicQuery = make(RuntimeAndFunctionType.ConvexQuery, \"public\");\nexport const internalQuery = make(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const publicPaginatedQuery = makePaginated(\n RuntimeAndFunctionType.ConvexQuery,\n \"public\",\n);\nexport const internalPaginatedQuery = makePaginated(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const publicMutation = make(\n RuntimeAndFunctionType.ConvexMutation,\n \"public\",\n);\nexport const internalMutation = make(\n RuntimeAndFunctionType.ConvexMutation,\n \"internal\",\n);\nexport const publicAction = make(RuntimeAndFunctionType.ConvexAction, \"public\");\nexport const internalAction = make(\n RuntimeAndFunctionType.ConvexAction,\n \"internal\",\n);\n\nexport const publicNodeAction = make(\n RuntimeAndFunctionType.NodeAction,\n \"public\",\n);\nexport const internalNodeAction = make(\n RuntimeAndFunctionType.NodeAction,\n \"internal\",\n);\n\ntype MatchingRegisteredFunction<\n RuntimeAndFunctionType_ extends RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n> =\n RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"query\"\n ? RegisteredQuery<FunctionVisibility_, any, any>\n : RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"mutation\"\n ? RegisteredMutation<FunctionVisibility_, any, any>\n : RuntimeAndFunctionType.GetFunctionType<RuntimeAndFunctionType_> extends \"action\"\n ? RegisteredAction<FunctionVisibility_, any, any>\n : never;\n\ntype ExtractArgs<F> =\n F extends RegisteredQuery<any, infer A, any>\n ? A\n : F extends RegisteredMutation<any, infer A, any>\n ? A\n : F extends RegisteredAction<any, infer A, any>\n ? A\n : never;\n\ntype ExtractReturns<F> =\n F extends RegisteredQuery<any, any, infer R>\n ? R\n : F extends RegisteredMutation<any, any, infer R>\n ? R\n : F extends RegisteredAction<any, any, infer R>\n ? R\n : never;\n\nconst makeConvex =\n <\n RuntimeAndFunctionType_ extends\n RuntimeAndFunctionType.RuntimeAndFunctionType,\n FunctionVisibility_ extends FunctionVisibility,\n >(\n runtimeAndFunctionType: RuntimeAndFunctionType_,\n functionVisibility: FunctionVisibility_,\n ) =>\n <\n F extends MatchingRegisteredFunction<\n RuntimeAndFunctionType_,\n FunctionVisibility_\n >,\n >() =>\n <const Name_ extends string>(\n name: Name_,\n ): FunctionSpec<\n RuntimeAndFunctionType_,\n FunctionVisibility_,\n Name_,\n FunctionProvenance.Convex<ExtractArgs<F>, ExtractReturns<F>>\n > => {\n validateConfectFunctionIdentifier(name);\n\n return Object.assign(Object.create(Proto), {\n runtimeAndFunctionType,\n functionVisibility,\n name,\n functionProvenance: FunctionProvenance.Convex<\n ExtractArgs<F>,\n ExtractReturns<F>\n >(),\n }) as any;\n };\n\nexport const convexPublicQuery = makeConvex(\n RuntimeAndFunctionType.ConvexQuery,\n \"public\",\n);\nexport const convexInternalQuery = makeConvex(\n RuntimeAndFunctionType.ConvexQuery,\n \"internal\",\n);\nexport const convexPublicMutation = makeConvex(\n RuntimeAndFunctionType.ConvexMutation,\n \"public\",\n);\nexport const convexInternalMutation = makeConvex(\n RuntimeAndFunctionType.ConvexMutation,\n \"internal\",\n);\nexport const convexPublicAction = makeConvex(\n RuntimeAndFunctionType.ConvexAction,\n \"public\",\n);\nexport const convexInternalAction = makeConvex(\n RuntimeAndFunctionType.ConvexAction,\n \"internal\",\n);\nexport const convexPublicNodeAction = makeConvex(\n RuntimeAndFunctionType.NodeAction,\n \"public\",\n);\nexport const convexInternalNodeAction = makeConvex(\n RuntimeAndFunctionType.NodeAction,\n \"internal\",\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAa,SAAS;AAGtB,MAAa,kBAAkB,MAC7B,UAAU,YAAY,GAAG,MAAM;AAyLjC,MAAM,QAAQ,GACX,SAAS,OACZ;AAEA,MAAM,QAMF,wBACA,wBAOA,EACA,MACA,MACA,SACA,YAWG;CACH,kCAAkC,IAAI;CAEtC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG;EACzC;EACA;EACA;EACA,oBAAoBA,QAA2B,MAAM,SAAS,KAAK;CACrE,CAAC;AACH;AAaF,MAAM,iBAMF,wBACA,wBAOA,EACA,MACA,MACA,MACA,YAaG;CACH,kCAAkC,IAAI;CAEtC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG;EACzC;EACA;EACA;EACA,oBAAoBC,iBAElB,eAAgB,OAAO,OAAO,CAAC,CAAC,IAChC,MACA,KACF;CACF,CAAC;AACH;AAEF,MAAa,cAAc,KAAKC,aAAoC,QAAQ;AAC5E,MAAa,gBAAgB,KAC3BA,aACA,UACF;AACA,MAAa,uBAAuB,cAClCA,aACA,QACF;AACA,MAAa,yBAAyB,cACpCA,aACA,UACF;AACA,MAAa,iBAAiB,KAC5BC,gBACA,QACF;AACA,MAAa,mBAAmB,KAC9BA,gBACA,UACF;AACA,MAAa,eAAe,KAAKC,cAAqC,QAAQ;AAC9E,MAAa,iBAAiB,KAC5BA,cACA,UACF;AAEA,MAAa,mBAAmB,KAC9BC,YACA,QACF;AACA,MAAa,qBAAqB,KAChCA,YACA,UACF;AAgCA,MAAM,cAMF,wBACA,8BASA,SAMG;CACH,kCAAkC,IAAI;CAEtC,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG;EACzC;EACA;EACA;EACA,oBAAoBC,OAGlB;CACJ,CAAC;AACH;AAEF,MAAa,oBAAoB,WAC/BJ,aACA,QACF;AACA,MAAa,sBAAsB,WACjCA,aACA,UACF;AACA,MAAa,uBAAuB,WAClCC,gBACA,QACF;AACA,MAAa,yBAAyB,WACpCA,gBACA,UACF;AACA,MAAa,qBAAqB,WAChCC,cACA,QACF;AACA,MAAa,uBAAuB,WAClCA,cACA,UACF;AACA,MAAa,yBAAyB,WACpCC,YACA,QACF;AACA,MAAa,2BAA2B,WACtCA,YACA,UACF"}
|