@confect/foldkit 10.0.0-next.22 → 10.0.0-next.23

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 CHANGED
@@ -1,5 +1,9 @@
1
1
  # @confect/foldkit
2
2
 
3
+ ## 10.0.0-next.23
4
+
5
+ No changes in this release.
6
+
3
7
  ## 10.0.0-next.22
4
8
 
5
9
  ### Minor Changes
package/dist/Command.d.ts CHANGED
@@ -4,16 +4,17 @@ import type * as Schema from "effect/Schema";
4
4
  import * as FoldkitCommand from "foldkit/command";
5
5
  import * as Client from "./Client";
6
6
  /**
7
- * Everything a Command against `Ref_` can fail with before it is folded into
8
- * an `onError` Message: the ref's typed error (if it declares an `error`
9
- * schema), a transport-level `WebSocketClientError`, or a `SchemaError` from
10
- * encoding args or decoding returns.
7
+ * Everything a Command against `Ref_` can fail with before it is folded into an
8
+ * `onError` Message: the ref's typed error (if it declares an `error` schema),
9
+ * a transport-level `WebSocketClientError`, or a `SchemaError` from encoding
10
+ * args or decoding returns.
11
11
  */
12
12
  export type Error<Ref_ extends Ref.AnyConfect> = Ref.Error<Ref_> | Client.WebSocketClientError | Schema.SchemaError;
13
13
  /**
14
- * Maps a Confect function's outcome into the app's Messages. Every failure—the ref's typed error, a transport error, or a codec error—arrives via
15
- * `onError`, so the resulting Command's error channel is `never`, as Foldkit
16
- * requires. Follow Foldkit's naming convention: past-tense facts like
14
+ * Maps a Confect function's outcome into the app's Messages. Every failure—the
15
+ * ref's typed error, a transport error, or a codec error—arrives via `onError`,
16
+ * so the resulting Command's error channel is `never`, as Foldkit requires.
17
+ * Follow Foldkit's naming convention: past-tense facts like
17
18
  * `SucceededSaveNote`/`FailedSaveNote`.
18
19
  */
19
20
  export interface Handlers<Ref_ extends Ref.AnyConfect, SuccessMessage, ErrorMessage> {
@@ -30,13 +31,13 @@ type Instance<Name extends string, Ref_ extends Ref.AnyConfect, Message> = Reado
30
31
  }>;
31
32
  type SchemaArgs<Ref_ extends Ref.AnyConfect> = Schema.Schema.Type<Schema.Struct<Ref.ArgsSchema<Ref_>["fields"]>>;
32
33
  /**
33
- * A Foldkit Command definition whose args are the ref's args: our
34
- * ref-derived call signature (args optional when the ref declares none)
35
- * intersected with Foldkit's own `CommandDefinitionWithArgs`, which supplies
36
- * the `CommandDefinitionTypeId` brand and makes the definition assignable
37
- * wherever Foldkit accepts one—including Story/Scene `Command.resolve`
38
- * and `expectExact` matchers. Call it from `update` to construct a Command
39
- * instance; nothing runs until the Foldkit runtime executes it.
34
+ * A Foldkit Command definition whose args are the ref's args: our ref-derived
35
+ * call signature (args optional when the ref declares none) intersected with
36
+ * Foldkit's own `CommandDefinitionWithArgs`, which supplies the
37
+ * `CommandDefinitionTypeId` brand and makes the definition assignable wherever
38
+ * Foldkit accepts one—including Story/Scene `Command.resolve` and `expectExact`
39
+ * matchers. Call it from `update` to construct a Command instance; nothing runs
40
+ * until the Foldkit runtime executes it.
40
41
  */
41
42
  export type Definition<Name extends string, Ref_ extends Ref.AnyConfect, Message> = ((...args: Ref.OptionalArgs<Ref_>) => Instance<Name, Ref_, Message>) & FoldkitCommand.CommandDefinitionWithArgs<Name, Ref.ArgsSchema<Ref_>["fields"], Effect.Effect<Message, never, Client.Client>>;
42
43
  /**
@@ -47,8 +48,8 @@ export type Definition<Name extends string, Ref_ extends Ref.AnyConfect, Message
47
48
  * invocations can be targeted independently.
48
49
  *
49
50
  * Interrupting stops the client-side Effect and guarantees the invocation's
50
- * result Messages never dispatch—it does not cancel the Convex function on
51
- * the server, which runs to completion once the call is on the wire.
51
+ * result Messages never dispatch—it does not cancel the Convex function on the
52
+ * server, which runs to completion once the call is on the wire.
52
53
  */
53
54
  export type InterruptOption<Ref_ extends Ref.AnyConfect, KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> & string> = FoldkitCommand.InterruptOption<SchemaArgs<Ref_>, KeyField>;
54
55
  /**
@@ -59,8 +60,8 @@ export type KeyedInterrupt<Ref_ extends Ref.AnyConfect, KeyField extends keyof S
59
60
  /**
60
61
  * An interruptible Command definition whose key is the Command name—the
61
62
  * ref-derived call signature intersected with Foldkit's
62
- * `Interruptible.DefinitionWithArgsNameKeyed`, which supplies the brand and
63
- * the `Interrupt` constructor.
63
+ * `Interruptible.DefinitionWithArgsNameKeyed`, which supplies the brand and the
64
+ * `Interrupt` constructor.
64
65
  */
65
66
  export type InterruptibleDefinition<Name extends string, Ref_ extends Ref.AnyConfect, Message> = ((...args: Ref.OptionalArgs<Ref_>) => Instance<Name, Ref_, Message> & Readonly<{
66
67
  key: string;
@@ -76,8 +77,8 @@ export type KeyedInterruptibleDefinition<Name extends string, Ref_ extends Ref.A
76
77
  }>) & FoldkitCommand.Interruptible.DefinitionWithArgs<Name, Ref.ArgsSchema<Ref_>["fields"], Pick<SchemaArgs<Ref_>, KeyField>, Effect.Effect<Message, never, Client.Client>>;
77
78
  /**
78
79
  * An execute body for a hand-written `Command.define`—every failure already
79
- * folded into a Message. Reach for these when the factory below doesn't fit:
80
- * a custom args schema, `interrupt`, or a Command that makes several calls.
80
+ * folded into a Message. Reach for these when the factory below doesn't fit: a
81
+ * custom args schema, `interrupt`, or a Command that makes several calls.
81
82
  */
82
83
  export declare const queryEffect: <Query extends Ref.AnyConfectPublicQuery, SuccessMessage, ErrorMessage>(ref: Query, handlers: Handlers<Query, SuccessMessage, ErrorMessage>) => (...args: Ref.OptionalArgs<Query>) => Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client>;
83
84
  /**
@@ -122,22 +123,26 @@ declare const makeFactory: <BoundRef extends Ref.AnyConfect>(effectHelper: <Ref_
122
123
  * messages: [SucceededGetNote, FailedGetNote],
123
124
  * onSuccess: (note) => SucceededGetNote({ note }),
124
125
  * onError: (error) => FailedGetNote({ message: String(error) }),
125
- * })
126
+ * });
126
127
  * // In update:
127
128
  * // [model, [FetchNote({ noteId })]]
128
129
  * ```
129
130
  *
130
131
  * Pass `interrupt` to make invocations interruptible via the returned
131
- * definition's `Interrupt` constructor—`true` keys them by the Command
132
- * name, `{ keyFields, toKey }` by a part derived from the ref's args:
132
+ * definition's `Interrupt` constructor—`true` keys them by the Command name, `{
133
+ * keyFields, toKey }` by a part derived from the ref's args:
133
134
  *
134
135
  * ```ts
135
- * const SaveDraft = Command.mutation("SaveDraft", refs.public.notes.insert, {
136
- * messages: [SucceededSaveDraft, FailedSaveDraft],
137
- * onSuccess: (noteId) => SucceededSaveDraft({ noteId }),
138
- * onError: (error) => FailedSaveDraft({ message: String(error) }),
139
- * interrupt: true,
140
- * })
136
+ * const SaveDraft = Command.mutation(
137
+ * "SaveDraft",
138
+ * refs.public.notes.insert,
139
+ * {
140
+ * messages: [SucceededSaveDraft, FailedSaveDraft],
141
+ * onSuccess: (noteId) => SucceededSaveDraft({ noteId }),
142
+ * onError: (error) => FailedSaveDraft({ message: String(error) }),
143
+ * interrupt: true,
144
+ * },
145
+ * );
141
146
  * // In update:
142
147
  * // [model, [SaveDraft.Interrupt((outcome) => CompletedCancelSaveDraft({ outcome }))]]
143
148
  * ```
@@ -149,8 +154,8 @@ export declare const query: ReturnType<typeof makeFactory<Ref.AnyConfectPublicQu
149
154
  */
150
155
  export declare const mutation: ReturnType<typeof makeFactory<Ref.AnyConfectPublicMutation>>;
151
156
  /**
152
- * A Foldkit Command definition for a Confect action whose Command args are
153
- * the ref's args. See `query`.
157
+ * A Foldkit Command definition for a Confect action whose Command args are the
158
+ * ref's args. See `query`.
154
159
  */
155
160
  export declare const action: ReturnType<typeof makeFactory<Ref.AnyConfectPublicAction>>;
156
161
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../src/Command.ts"],"names":[],"mappings":"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"}
package/dist/Command.js CHANGED
@@ -18,8 +18,8 @@ const run = (handlers, invoke) => Effect.flatMap(Client, invoke).pipe(Effect.mat
18
18
  }));
19
19
  /**
20
20
  * An execute body for a hand-written `Command.define`—every failure already
21
- * folded into a Message. Reach for these when the factory below doesn't fit:
22
- * a custom args schema, `interrupt`, or a Command that makes several calls.
21
+ * folded into a Message. Reach for these when the factory below doesn't fit: a
22
+ * custom args schema, `interrupt`, or a Command that makes several calls.
23
23
  */
24
24
  const queryEffect = (ref, handlers) => (...args) => run(handlers, (client) => client.query(ref, ...args));
25
25
  /**
@@ -74,22 +74,26 @@ const makeFactory = (effectHelper) => {
74
74
  * messages: [SucceededGetNote, FailedGetNote],
75
75
  * onSuccess: (note) => SucceededGetNote({ note }),
76
76
  * onError: (error) => FailedGetNote({ message: String(error) }),
77
- * })
77
+ * });
78
78
  * // In update:
79
79
  * // [model, [FetchNote({ noteId })]]
80
80
  * ```
81
81
  *
82
82
  * Pass `interrupt` to make invocations interruptible via the returned
83
- * definition's `Interrupt` constructor—`true` keys them by the Command
84
- * name, `{ keyFields, toKey }` by a part derived from the ref's args:
83
+ * definition's `Interrupt` constructor—`true` keys them by the Command name, `{
84
+ * keyFields, toKey }` by a part derived from the ref's args:
85
85
  *
86
86
  * ```ts
87
- * const SaveDraft = Command.mutation("SaveDraft", refs.public.notes.insert, {
88
- * messages: [SucceededSaveDraft, FailedSaveDraft],
89
- * onSuccess: (noteId) => SucceededSaveDraft({ noteId }),
90
- * onError: (error) => FailedSaveDraft({ message: String(error) }),
91
- * interrupt: true,
92
- * })
87
+ * const SaveDraft = Command.mutation(
88
+ * "SaveDraft",
89
+ * refs.public.notes.insert,
90
+ * {
91
+ * messages: [SucceededSaveDraft, FailedSaveDraft],
92
+ * onSuccess: (noteId) => SucceededSaveDraft({ noteId }),
93
+ * onError: (error) => FailedSaveDraft({ message: String(error) }),
94
+ * interrupt: true,
95
+ * },
96
+ * );
93
97
  * // In update:
94
98
  * // [model, [SaveDraft.Interrupt((outcome) => CompletedCancelSaveDraft({ outcome }))]]
95
99
  * ```
@@ -101,8 +105,8 @@ const query = makeFactory(queryEffect);
101
105
  */
102
106
  const mutation = makeFactory(mutationEffect);
103
107
  /**
104
- * A Foldkit Command definition for a Confect action whose Command args are
105
- * the ref's args. See `query`.
108
+ * A Foldkit Command definition for a Confect action whose Command args are the
109
+ * ref's args. See `query`.
106
110
  */
107
111
  const action = makeFactory(actionEffect);
108
112
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","names":["Client.Client"],"sources":["../src/Command.ts"],"sourcesContent":["import type * as Ref from \"@confect/core/Ref\";\nimport * as Effect from \"effect/Effect\";\nimport * as Match from \"effect/Match\";\nimport type * as Schema from \"effect/Schema\";\nimport * as FoldkitCommand from \"foldkit/command\";\nimport * as Client from \"./Client\";\n\n/**\n * Everything a Command against `Ref_` can fail with before it is folded into\n * an `onError` Message: the ref's typed error (if it declares an `error`\n * schema), a transport-level `WebSocketClientError`, or a `SchemaError` from\n * encoding args or decoding returns.\n */\nexport type Error<Ref_ extends Ref.AnyConfect> =\n | Ref.Error<Ref_>\n | Client.WebSocketClientError\n | Schema.SchemaError;\n\n/**\n * Maps a Confect function's outcome into the app's Messages. Every failure—the ref's typed error, a transport error, or a codec error—arrives via\n * `onError`, so the resulting Command's error channel is `never`, as Foldkit\n * requires. Follow Foldkit's naming convention: past-tense facts like\n * `SucceededSaveNote`/`FailedSaveNote`.\n */\nexport interface Handlers<\n Ref_ extends Ref.AnyConfect,\n SuccessMessage,\n ErrorMessage,\n> {\n readonly onSuccess: (returns: Ref.Returns<Ref_>) => SuccessMessage;\n readonly onError: (error: Error<Ref_>) => ErrorMessage;\n}\n\n/**\n * The Command instance a definition call constructs.\n */\ntype Instance<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = Readonly<{\n name: Name;\n args: Ref.Args<Ref_>;\n effect: Effect.Effect<Message, never, Client.Client>;\n}>;\n\ntype SchemaArgs<Ref_ extends Ref.AnyConfect> = Schema.Schema.Type<\n Schema.Struct<Ref.ArgsSchema<Ref_>[\"fields\"]>\n>;\n\n/**\n * A Foldkit Command definition whose args are the ref's args: our\n * ref-derived call signature (args optional when the ref declares none)\n * intersected with Foldkit's own `CommandDefinitionWithArgs`, which supplies\n * the `CommandDefinitionTypeId` brand and makes the definition assignable\n * wherever Foldkit accepts one—including Story/Scene `Command.resolve`\n * and `expectExact` matchers. Call it from `update` to construct a Command\n * instance; nothing runs until the Foldkit runtime executes it.\n */\nexport type Definition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = ((...args: Ref.OptionalArgs<Ref_>) => Instance<Name, Ref_, Message>) &\n FoldkitCommand.CommandDefinitionWithArgs<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Effect.Effect<Message, never, Client.Client>\n >;\n\n/**\n * Makes a factory-built Command interruptible—Foldkit's `InterruptOption`\n * applied to the ref's args. `true` keys every invocation by the Command\n * name—right when at most one invocation is meaningfully in flight; a\n * `KeyedInterrupt` derives the key part from the ref's args, so concurrent\n * invocations can be targeted independently.\n *\n * Interrupting stops the client-side Effect and guarantees the invocation's\n * result Messages never dispatch—it does not cancel the Convex function on\n * the server, which runs to completion once the call is on the wire.\n */\nexport type InterruptOption<\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> &\n string,\n> = FoldkitCommand.InterruptOption<SchemaArgs<Ref_>, KeyField>;\n\n/**\n * The keyed arm of `InterruptOption`: `keyFields` declares the args the\n * `Interrupt` constructor requires; `toKey` derives the key part from them.\n */\nexport type KeyedInterrupt<\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n> = Exclude<InterruptOption<Ref_, KeyField>, true>;\n\n/**\n * An interruptible Command definition whose key is the Command name—the\n * ref-derived call signature intersected with Foldkit's\n * `Interruptible.DefinitionWithArgsNameKeyed`, which supplies the brand and\n * the `Interrupt` constructor.\n */\nexport type InterruptibleDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = ((\n ...args: Ref.OptionalArgs<Ref_>\n) => Instance<Name, Ref_, Message> & Readonly<{ key: string }>) &\n FoldkitCommand.Interruptible.DefinitionWithArgsNameKeyed<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Effect.Effect<Message, never, Client.Client>\n >;\n\n/**\n * An interruptible Command definition whose key is derived from the ref's\n * args—the ref-derived call signature intersected with Foldkit's\n * `Interruptible.DefinitionWithArgs`, which supplies the brand and the\n * key-args-taking `Interrupt` constructor.\n */\nexport type KeyedInterruptibleDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n Message,\n> = ((\n ...args: Ref.OptionalArgs<Ref_>\n) => Instance<Name, Ref_, Message> & Readonly<{ key: string }>) &\n FoldkitCommand.Interruptible.DefinitionWithArgs<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Pick<SchemaArgs<Ref_>, KeyField>,\n Effect.Effect<Message, never, Client.Client>\n >;\n\nconst run = <Ref_ extends Ref.AnyConfect, SuccessMessage, ErrorMessage>(\n handlers: Handlers<Ref_, SuccessMessage, ErrorMessage>,\n invoke: (\n client: Client.Client,\n ) => Effect.Effect<Ref.Returns<Ref_>, Error<Ref_>>,\n): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n Effect.flatMap(Client.Client, invoke).pipe(\n Effect.match({\n onSuccess: handlers.onSuccess,\n onFailure: handlers.onError,\n }),\n );\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. Reach for these when the factory below doesn't fit:\n * a custom args schema, `interrupt`, or a Command that makes several calls.\n */\nexport const queryEffect =\n <Query extends Ref.AnyConfectPublicQuery, SuccessMessage, ErrorMessage>(\n ref: Query,\n handlers: Handlers<Query, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Query>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.query(ref, ...args));\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. See `queryEffect`.\n */\nexport const mutationEffect =\n <Mutation extends Ref.AnyConfectPublicMutation, SuccessMessage, ErrorMessage>(\n ref: Mutation,\n handlers: Handlers<Mutation, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Mutation>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.mutation(ref, ...args));\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. See `queryEffect`.\n */\nexport const actionEffect =\n <Action extends Ref.AnyConfectPublicAction, SuccessMessage, ErrorMessage>(\n ref: Action,\n handlers: Handlers<Action, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Action>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.action(ref, ...args));\n\ntype RunWithArgs<Ref_ extends Ref.AnyConfect, Message> = (\n ...args: Ref.OptionalArgs<Ref_>\n) => Effect.Effect<Message, never, Client.Client>;\n\nfunction makeDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> &\n string,\n>(\n name: Name,\n ref: Ref_,\n messages: ReadonlyArray<Schema.Top>,\n runWithArgs: RunWithArgs<Ref_, SuccessMessage | ErrorMessage>,\n interrupt?: InterruptOption<Ref_, KeyField>,\n): Definition<Name, Ref_, SuccessMessage | ErrorMessage> {\n type Fields = Ref.ArgsSchema<Ref_>[\"fields\"];\n type FoldkitArgs = SchemaArgs<Ref_>;\n\n const fields: Fields = ref.args.fields;\n const execute = (args: FoldkitArgs | undefined) =>\n runWithArgs(\n ...((args === undefined ? [] : [args]) as Ref.OptionalArgs<Ref_>),\n );\n\n return Match.value(interrupt).pipe(\n Match.withReturnType<\n Definition<Name, Ref_, SuccessMessage | ErrorMessage>\n >(),\n Match.when(\n undefined,\n () =>\n FoldkitCommand.define(name, {\n args: fields,\n messages,\n execute,\n }) as Definition<Name, Ref_, SuccessMessage | ErrorMessage>,\n ),\n Match.when(\n true,\n (nameKeyedInterrupt) =>\n FoldkitCommand.define(name, {\n args: fields,\n messages,\n interrupt: nameKeyedInterrupt,\n execute,\n }) as InterruptibleDefinition<\n Name,\n Ref_,\n SuccessMessage | ErrorMessage\n >,\n ),\n Match.when(Match.defined, (keyedInterrupt) => {\n const definition: FoldkitCommand.CommandDefinitionWithArgs<\n Name,\n Fields,\n ReturnType<typeof execute>\n > = FoldkitCommand.define(name, {\n args: fields,\n messages,\n interrupt: keyedInterrupt,\n execute,\n });\n return definition as Definition<\n Name,\n Ref_,\n SuccessMessage | ErrorMessage\n >;\n }),\n Match.exhaustive,\n );\n}\n\ntype FactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = Handlers<Ref_, SuccessMessage, ErrorMessage> & {\n readonly messages: Messages;\n};\n\ntype KeyedFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt: KeyedInterrupt<Ref_, KeyField>;\n};\n\ntype NameKeyedFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt: true;\n};\n\ntype StandardFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt?: never;\n};\n\n/**\n * Builds the overload set for one ref kind. Each arm preserves whether\n * `interrupt` is absent, `true`, or args-keyed all the way to\n * `makeDefinition`.\n */\nconst makeFactory = <BoundRef extends Ref.AnyConfect>(\n effectHelper: <Ref_ extends BoundRef, SuccessMessage, ErrorMessage>(\n ref: Ref_,\n handlers: Handlers<Ref_, SuccessMessage, ErrorMessage>,\n ) => RunWithArgs<Ref_, SuccessMessage | ErrorMessage>,\n) => {\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n >(\n name: Name,\n ref: Ref_,\n config: KeyedFactoryConfig<\n Ref_,\n Messages,\n SuccessMessage,\n ErrorMessage,\n KeyField\n >,\n ): KeyedInterruptibleDefinition<\n Name,\n Ref_,\n KeyField,\n SuccessMessage | ErrorMessage\n >;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n >(\n name: Name,\n ref: Ref_,\n config: NameKeyedFactoryConfig<\n Ref_,\n Messages,\n SuccessMessage,\n ErrorMessage\n >,\n ): InterruptibleDefinition<Name, Ref_, SuccessMessage | ErrorMessage>;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n >(\n name: Name,\n ref: Ref_,\n config: StandardFactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage>,\n ): Definition<Name, Ref_, SuccessMessage | ErrorMessage>;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n >(\n name: Name,\n ref: Ref_,\n config: FactoryConfig<\n Ref_,\n ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage\n > & {\n readonly interrupt?: InterruptOption<Ref_, KeyField>;\n },\n ): Definition<Name, Ref_, SuccessMessage | ErrorMessage> {\n const runWithArgs = effectHelper(ref, config);\n return Match.value(config.interrupt).pipe(\n Match.withReturnType<\n Definition<Name, Ref_, SuccessMessage | ErrorMessage>\n >(),\n Match.when(undefined, () =>\n makeDefinition(name, ref, config.messages, runWithArgs),\n ),\n Match.when(true, (interrupt) =>\n makeDefinition(name, ref, config.messages, runWithArgs, interrupt),\n ),\n Match.when(Match.defined, (interrupt) =>\n makeDefinition(name, ref, config.messages, runWithArgs, interrupt),\n ),\n Match.exhaustive,\n );\n }\n\n return factory;\n};\n\n/**\n * A Foldkit Command definition for a Confect query whose Command args are the\n * ref's args:\n *\n * ```ts\n * const FetchNote = Command.query(\"FetchNote\", refs.public.notes.get, {\n * messages: [SucceededGetNote, FailedGetNote],\n * onSuccess: (note) => SucceededGetNote({ note }),\n * onError: (error) => FailedGetNote({ message: String(error) }),\n * })\n * // In update:\n * // [model, [FetchNote({ noteId })]]\n * ```\n *\n * Pass `interrupt` to make invocations interruptible via the returned\n * definition's `Interrupt` constructor—`true` keys them by the Command\n * name, `{ keyFields, toKey }` by a part derived from the ref's args:\n *\n * ```ts\n * const SaveDraft = Command.mutation(\"SaveDraft\", refs.public.notes.insert, {\n * messages: [SucceededSaveDraft, FailedSaveDraft],\n * onSuccess: (noteId) => SucceededSaveDraft({ noteId }),\n * onError: (error) => FailedSaveDraft({ message: String(error) }),\n * interrupt: true,\n * })\n * // In update:\n * // [model, [SaveDraft.Interrupt((outcome) => CompletedCancelSaveDraft({ outcome }))]]\n * ```\n */\nexport const query: ReturnType<typeof makeFactory<Ref.AnyConfectPublicQuery>> =\n makeFactory(queryEffect);\n\n/**\n * A Foldkit Command definition for a Confect mutation whose Command args are\n * the ref's args. See `query`.\n */\nexport const mutation: ReturnType<\n typeof makeFactory<Ref.AnyConfectPublicMutation>\n> = makeFactory(mutationEffect);\n\n/**\n * A Foldkit Command definition for a Confect action whose Command args are\n * the ref's args. See `query`.\n */\nexport const action: ReturnType<\n typeof makeFactory<Ref.AnyConfectPublicAction>\n> = makeFactory(actionEffect);\n"],"mappings":";;;;;;;;;;;;;;AAwIA,MAAM,OACJ,UACA,WAIA,OAAO,QAAQA,QAAe,MAAM,CAAC,CAAC,KACpC,OAAO,MAAM;CACX,WAAW,SAAS;CACpB,WAAW,SAAS;AACtB,CAAC,CACH;;;;;;AAOF,MAAa,eAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,MAAM,KAAK,GAAG,IAAI,CAAC;;;;;AAMxD,MAAa,kBAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,SAAS,KAAK,GAAG,IAAI,CAAC;;;;;AAM3D,MAAa,gBAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,OAAO,KAAK,GAAG,IAAI,CAAC;AAMzD,SAAS,eAQP,MACA,KACA,UACA,aACA,WACuD;CAIvD,MAAM,SAAiB,IAAI,KAAK;CAChC,MAAM,WAAW,SACf,YACE,GAAK,SAAS,KAAA,IAAY,CAAC,IAAI,CAAC,IAAI,CACtC;CAEF,OAAO,MAAM,MAAM,SAAS,CAAC,CAAC,KAC5B,MAAM,eAEJ,GACF,MAAM,KACJ,KAAA,SAEE,eAAe,OAAO,MAAM;EAC1B,MAAM;EACN;EACA;CACF,CAAC,CACL,GACA,MAAM,KACJ,OACC,uBACC,eAAe,OAAO,MAAM;EAC1B,MAAM;EACN;EACA,WAAW;EACX;CACF,CAAC,CAKL,GACA,MAAM,KAAK,MAAM,UAAU,mBAAmB;EAW5C,OANI,eAAe,OAAO,MAAM;GAC9B,MAAM;GACN;GACA,WAAW;GACX;EACF,CACgB;CAKlB,CAAC,GACD,MAAM,UACR;AACF;;;;;;AA4CA,MAAM,eACJ,iBAIG;CAmDH,SAAS,QAOP,MACA,KACA,QAQuD;EACvD,MAAM,cAAc,aAAa,KAAK,MAAM;EAC5C,OAAO,MAAM,MAAM,OAAO,SAAS,CAAC,CAAC,KACnC,MAAM,eAEJ,GACF,MAAM,KAAK,KAAA,SACT,eAAe,MAAM,KAAK,OAAO,UAAU,WAAW,CACxD,GACA,MAAM,KAAK,OAAO,cAChB,eAAe,MAAM,KAAK,OAAO,UAAU,aAAa,SAAS,CACnE,GACA,MAAM,KAAK,MAAM,UAAU,cACzB,eAAe,MAAM,KAAK,OAAO,UAAU,aAAa,SAAS,CACnE,GACA,MAAM,UACR;CACF;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAa,QACX,YAAY,WAAW;;;;;AAMzB,MAAa,WAET,YAAY,cAAc;;;;;AAM9B,MAAa,SAET,YAAY,YAAY"}
1
+ {"version":3,"file":"Command.js","names":["Client.Client"],"sources":["../src/Command.ts"],"sourcesContent":["import type * as Ref from \"@confect/core/Ref\";\nimport * as Effect from \"effect/Effect\";\nimport * as Match from \"effect/Match\";\nimport type * as Schema from \"effect/Schema\";\nimport * as FoldkitCommand from \"foldkit/command\";\nimport * as Client from \"./Client\";\n\n/**\n * Everything a Command against `Ref_` can fail with before it is folded into an\n * `onError` Message: the ref's typed error (if it declares an `error` schema),\n * a transport-level `WebSocketClientError`, or a `SchemaError` from encoding\n * args or decoding returns.\n */\nexport type Error<Ref_ extends Ref.AnyConfect> =\n | Ref.Error<Ref_>\n | Client.WebSocketClientError\n | Schema.SchemaError;\n\n/**\n * Maps a Confect function's outcome into the app's Messages. Every failure—the\n * ref's typed error, a transport error, or a codec error—arrives via `onError`,\n * so the resulting Command's error channel is `never`, as Foldkit requires.\n * Follow Foldkit's naming convention: past-tense facts like\n * `SucceededSaveNote`/`FailedSaveNote`.\n */\nexport interface Handlers<\n Ref_ extends Ref.AnyConfect,\n SuccessMessage,\n ErrorMessage,\n> {\n readonly onSuccess: (returns: Ref.Returns<Ref_>) => SuccessMessage;\n readonly onError: (error: Error<Ref_>) => ErrorMessage;\n}\n\n/**\n * The Command instance a definition call constructs.\n */\ntype Instance<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = Readonly<{\n name: Name;\n args: Ref.Args<Ref_>;\n effect: Effect.Effect<Message, never, Client.Client>;\n}>;\n\ntype SchemaArgs<Ref_ extends Ref.AnyConfect> = Schema.Schema.Type<\n Schema.Struct<Ref.ArgsSchema<Ref_>[\"fields\"]>\n>;\n\n/**\n * A Foldkit Command definition whose args are the ref's args: our ref-derived\n * call signature (args optional when the ref declares none) intersected with\n * Foldkit's own `CommandDefinitionWithArgs`, which supplies the\n * `CommandDefinitionTypeId` brand and makes the definition assignable wherever\n * Foldkit accepts one—including Story/Scene `Command.resolve` and `expectExact`\n * matchers. Call it from `update` to construct a Command instance; nothing runs\n * until the Foldkit runtime executes it.\n */\nexport type Definition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = ((...args: Ref.OptionalArgs<Ref_>) => Instance<Name, Ref_, Message>) &\n FoldkitCommand.CommandDefinitionWithArgs<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Effect.Effect<Message, never, Client.Client>\n >;\n\n/**\n * Makes a factory-built Command interruptible—Foldkit's `InterruptOption`\n * applied to the ref's args. `true` keys every invocation by the Command\n * name—right when at most one invocation is meaningfully in flight; a\n * `KeyedInterrupt` derives the key part from the ref's args, so concurrent\n * invocations can be targeted independently.\n *\n * Interrupting stops the client-side Effect and guarantees the invocation's\n * result Messages never dispatch—it does not cancel the Convex function on the\n * server, which runs to completion once the call is on the wire.\n */\nexport type InterruptOption<\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> &\n string,\n> = FoldkitCommand.InterruptOption<SchemaArgs<Ref_>, KeyField>;\n\n/**\n * The keyed arm of `InterruptOption`: `keyFields` declares the args the\n * `Interrupt` constructor requires; `toKey` derives the key part from them.\n */\nexport type KeyedInterrupt<\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n> = Exclude<InterruptOption<Ref_, KeyField>, true>;\n\n/**\n * An interruptible Command definition whose key is the Command name—the\n * ref-derived call signature intersected with Foldkit's\n * `Interruptible.DefinitionWithArgsNameKeyed`, which supplies the brand and the\n * `Interrupt` constructor.\n */\nexport type InterruptibleDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n Message,\n> = ((\n ...args: Ref.OptionalArgs<Ref_>\n) => Instance<Name, Ref_, Message> & Readonly<{ key: string }>) &\n FoldkitCommand.Interruptible.DefinitionWithArgsNameKeyed<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Effect.Effect<Message, never, Client.Client>\n >;\n\n/**\n * An interruptible Command definition whose key is derived from the ref's\n * args—the ref-derived call signature intersected with Foldkit's\n * `Interruptible.DefinitionWithArgs`, which supplies the brand and the\n * key-args-taking `Interrupt` constructor.\n */\nexport type KeyedInterruptibleDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n Message,\n> = ((\n ...args: Ref.OptionalArgs<Ref_>\n) => Instance<Name, Ref_, Message> & Readonly<{ key: string }>) &\n FoldkitCommand.Interruptible.DefinitionWithArgs<\n Name,\n Ref.ArgsSchema<Ref_>[\"fields\"],\n Pick<SchemaArgs<Ref_>, KeyField>,\n Effect.Effect<Message, never, Client.Client>\n >;\n\nconst run = <Ref_ extends Ref.AnyConfect, SuccessMessage, ErrorMessage>(\n handlers: Handlers<Ref_, SuccessMessage, ErrorMessage>,\n invoke: (\n client: Client.Client,\n ) => Effect.Effect<Ref.Returns<Ref_>, Error<Ref_>>,\n): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n Effect.flatMap(Client.Client, invoke).pipe(\n Effect.match({\n onSuccess: handlers.onSuccess,\n onFailure: handlers.onError,\n }),\n );\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. Reach for these when the factory below doesn't fit: a\n * custom args schema, `interrupt`, or a Command that makes several calls.\n */\nexport const queryEffect =\n <Query extends Ref.AnyConfectPublicQuery, SuccessMessage, ErrorMessage>(\n ref: Query,\n handlers: Handlers<Query, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Query>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.query(ref, ...args));\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. See `queryEffect`.\n */\nexport const mutationEffect =\n <Mutation extends Ref.AnyConfectPublicMutation, SuccessMessage, ErrorMessage>(\n ref: Mutation,\n handlers: Handlers<Mutation, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Mutation>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.mutation(ref, ...args));\n\n/**\n * An execute body for a hand-written `Command.define`—every failure already\n * folded into a Message. See `queryEffect`.\n */\nexport const actionEffect =\n <Action extends Ref.AnyConfectPublicAction, SuccessMessage, ErrorMessage>(\n ref: Action,\n handlers: Handlers<Action, SuccessMessage, ErrorMessage>,\n ) =>\n (\n ...args: Ref.OptionalArgs<Action>\n ): Effect.Effect<SuccessMessage | ErrorMessage, never, Client.Client> =>\n run(handlers, (client) => client.action(ref, ...args));\n\ntype RunWithArgs<Ref_ extends Ref.AnyConfect, Message> = (\n ...args: Ref.OptionalArgs<Ref_>\n) => Effect.Effect<Message, never, Client.Client>;\n\nfunction makeDefinition<\n Name extends string,\n Ref_ extends Ref.AnyConfect,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string = keyof SchemaArgs<Ref_> &\n string,\n>(\n name: Name,\n ref: Ref_,\n messages: ReadonlyArray<Schema.Top>,\n runWithArgs: RunWithArgs<Ref_, SuccessMessage | ErrorMessage>,\n interrupt?: InterruptOption<Ref_, KeyField>,\n): Definition<Name, Ref_, SuccessMessage | ErrorMessage> {\n type Fields = Ref.ArgsSchema<Ref_>[\"fields\"];\n type FoldkitArgs = SchemaArgs<Ref_>;\n\n const fields: Fields = ref.args.fields;\n const execute = (args: FoldkitArgs | undefined) =>\n runWithArgs(\n ...((args === undefined ? [] : [args]) as Ref.OptionalArgs<Ref_>),\n );\n\n return Match.value(interrupt).pipe(\n Match.withReturnType<\n Definition<Name, Ref_, SuccessMessage | ErrorMessage>\n >(),\n Match.when(\n undefined,\n () =>\n FoldkitCommand.define(name, {\n args: fields,\n messages,\n execute,\n }) as Definition<Name, Ref_, SuccessMessage | ErrorMessage>,\n ),\n Match.when(\n true,\n (nameKeyedInterrupt) =>\n FoldkitCommand.define(name, {\n args: fields,\n messages,\n interrupt: nameKeyedInterrupt,\n execute,\n }) as InterruptibleDefinition<\n Name,\n Ref_,\n SuccessMessage | ErrorMessage\n >,\n ),\n Match.when(Match.defined, (keyedInterrupt) => {\n const definition: FoldkitCommand.CommandDefinitionWithArgs<\n Name,\n Fields,\n ReturnType<typeof execute>\n > = FoldkitCommand.define(name, {\n args: fields,\n messages,\n interrupt: keyedInterrupt,\n execute,\n });\n return definition as Definition<\n Name,\n Ref_,\n SuccessMessage | ErrorMessage\n >;\n }),\n Match.exhaustive,\n );\n}\n\ntype FactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = Handlers<Ref_, SuccessMessage, ErrorMessage> & {\n readonly messages: Messages;\n};\n\ntype KeyedFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt: KeyedInterrupt<Ref_, KeyField>;\n};\n\ntype NameKeyedFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt: true;\n};\n\ntype StandardFactoryConfig<\n Ref_ extends Ref.AnyConfect,\n Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage,\n> = FactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage> & {\n readonly interrupt?: never;\n};\n\n/**\n * Builds the overload set for one ref kind. Each arm preserves whether\n * `interrupt` is absent, `true`, or args-keyed all the way to\n * `makeDefinition`.\n */\nconst makeFactory = <BoundRef extends Ref.AnyConfect>(\n effectHelper: <Ref_ extends BoundRef, SuccessMessage, ErrorMessage>(\n ref: Ref_,\n handlers: Handlers<Ref_, SuccessMessage, ErrorMessage>,\n ) => RunWithArgs<Ref_, SuccessMessage | ErrorMessage>,\n) => {\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n >(\n name: Name,\n ref: Ref_,\n config: KeyedFactoryConfig<\n Ref_,\n Messages,\n SuccessMessage,\n ErrorMessage,\n KeyField\n >,\n ): KeyedInterruptibleDefinition<\n Name,\n Ref_,\n KeyField,\n SuccessMessage | ErrorMessage\n >;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n >(\n name: Name,\n ref: Ref_,\n config: NameKeyedFactoryConfig<\n Ref_,\n Messages,\n SuccessMessage,\n ErrorMessage\n >,\n ): InterruptibleDefinition<Name, Ref_, SuccessMessage | ErrorMessage>;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n const Messages extends ReadonlyArray<Schema.Top>,\n SuccessMessage extends Schema.Schema.Type<Messages[number]>,\n ErrorMessage extends Schema.Schema.Type<Messages[number]>,\n >(\n name: Name,\n ref: Ref_,\n config: StandardFactoryConfig<Ref_, Messages, SuccessMessage, ErrorMessage>,\n ): Definition<Name, Ref_, SuccessMessage | ErrorMessage>;\n function factory<\n const Name extends string,\n Ref_ extends BoundRef,\n SuccessMessage,\n ErrorMessage,\n KeyField extends keyof SchemaArgs<Ref_> & string,\n >(\n name: Name,\n ref: Ref_,\n config: FactoryConfig<\n Ref_,\n ReadonlyArray<Schema.Top>,\n SuccessMessage,\n ErrorMessage\n > & {\n readonly interrupt?: InterruptOption<Ref_, KeyField>;\n },\n ): Definition<Name, Ref_, SuccessMessage | ErrorMessage> {\n const runWithArgs = effectHelper(ref, config);\n return Match.value(config.interrupt).pipe(\n Match.withReturnType<\n Definition<Name, Ref_, SuccessMessage | ErrorMessage>\n >(),\n Match.when(undefined, () =>\n makeDefinition(name, ref, config.messages, runWithArgs),\n ),\n Match.when(true, (interrupt) =>\n makeDefinition(name, ref, config.messages, runWithArgs, interrupt),\n ),\n Match.when(Match.defined, (interrupt) =>\n makeDefinition(name, ref, config.messages, runWithArgs, interrupt),\n ),\n Match.exhaustive,\n );\n }\n\n return factory;\n};\n\n/**\n * A Foldkit Command definition for a Confect query whose Command args are the\n * ref's args:\n *\n * ```ts\n * const FetchNote = Command.query(\"FetchNote\", refs.public.notes.get, {\n * messages: [SucceededGetNote, FailedGetNote],\n * onSuccess: (note) => SucceededGetNote({ note }),\n * onError: (error) => FailedGetNote({ message: String(error) }),\n * });\n * // In update:\n * // [model, [FetchNote({ noteId })]]\n * ```\n *\n * Pass `interrupt` to make invocations interruptible via the returned\n * definition's `Interrupt` constructor—`true` keys them by the Command name, `{\n * keyFields, toKey }` by a part derived from the ref's args:\n *\n * ```ts\n * const SaveDraft = Command.mutation(\n * \"SaveDraft\",\n * refs.public.notes.insert,\n * {\n * messages: [SucceededSaveDraft, FailedSaveDraft],\n * onSuccess: (noteId) => SucceededSaveDraft({ noteId }),\n * onError: (error) => FailedSaveDraft({ message: String(error) }),\n * interrupt: true,\n * },\n * );\n * // In update:\n * // [model, [SaveDraft.Interrupt((outcome) => CompletedCancelSaveDraft({ outcome }))]]\n * ```\n */\nexport const query: ReturnType<typeof makeFactory<Ref.AnyConfectPublicQuery>> =\n makeFactory(queryEffect);\n\n/**\n * A Foldkit Command definition for a Confect mutation whose Command args are\n * the ref's args. See `query`.\n */\nexport const mutation: ReturnType<\n typeof makeFactory<Ref.AnyConfectPublicMutation>\n> = makeFactory(mutationEffect);\n\n/**\n * A Foldkit Command definition for a Confect action whose Command args are the\n * ref's args. See `query`.\n */\nexport const action: ReturnType<\n typeof makeFactory<Ref.AnyConfectPublicAction>\n> = makeFactory(actionEffect);\n"],"mappings":";;;;;;;;;;;;;;AAyIA,MAAM,OACJ,UACA,WAIA,OAAO,QAAQA,QAAe,MAAM,CAAC,CAAC,KACpC,OAAO,MAAM;CACX,WAAW,SAAS;CACpB,WAAW,SAAS;AACtB,CAAC,CACH;;;;;;AAOF,MAAa,eAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,MAAM,KAAK,GAAG,IAAI,CAAC;;;;;AAMxD,MAAa,kBAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,SAAS,KAAK,GAAG,IAAI,CAAC;;;;;AAM3D,MAAa,gBAET,KACA,cAGA,GAAG,SAEH,IAAI,WAAW,WAAW,OAAO,OAAO,KAAK,GAAG,IAAI,CAAC;AAMzD,SAAS,eAQP,MACA,KACA,UACA,aACA,WACuD;CAIvD,MAAM,SAAiB,IAAI,KAAK;CAChC,MAAM,WAAW,SACf,YACE,GAAK,SAAS,KAAA,IAAY,CAAC,IAAI,CAAC,IAAI,CACtC;CAEF,OAAO,MAAM,MAAM,SAAS,CAAC,CAAC,KAC5B,MAAM,eAEJ,GACF,MAAM,KACJ,KAAA,SAEE,eAAe,OAAO,MAAM;EAC1B,MAAM;EACN;EACA;CACF,CAAC,CACL,GACA,MAAM,KACJ,OACC,uBACC,eAAe,OAAO,MAAM;EAC1B,MAAM;EACN;EACA,WAAW;EACX;CACF,CAAC,CAKL,GACA,MAAM,KAAK,MAAM,UAAU,mBAAmB;EAW5C,OANI,eAAe,OAAO,MAAM;GAC9B,MAAM;GACN;GACA,WAAW;GACX;EACF,CACgB;CAKlB,CAAC,GACD,MAAM,UACR;AACF;;;;;;AA4CA,MAAM,eACJ,iBAIG;CAmDH,SAAS,QAOP,MACA,KACA,QAQuD;EACvD,MAAM,cAAc,aAAa,KAAK,MAAM;EAC5C,OAAO,MAAM,MAAM,OAAO,SAAS,CAAC,CAAC,KACnC,MAAM,eAEJ,GACF,MAAM,KAAK,KAAA,SACT,eAAe,MAAM,KAAK,OAAO,UAAU,WAAW,CACxD,GACA,MAAM,KAAK,OAAO,cAChB,eAAe,MAAM,KAAK,OAAO,UAAU,aAAa,SAAS,CACnE,GACA,MAAM,KAAK,MAAM,UAAU,cACzB,eAAe,MAAM,KAAK,OAAO,UAAU,aAAa,SAAS,CACnE,GACA,MAAM,UACR;CACF;CAEA,OAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAa,QACX,YAAY,WAAW;;;;;AAMzB,MAAa,WAET,YAAY,cAAc;;;;;AAM9B,MAAa,SAET,YAAY,YAAY"}
@@ -5,7 +5,9 @@ import * as Option from "effect/Option";
5
5
  import * as Result from "effect/Result";
6
6
  import * as Schema from "effect/Schema";
7
7
  import * as Client from "./Client";
8
- /** Identifies the cursor range fetched for one page. */
8
+ /**
9
+ * Identifies the cursor range fetched for one page.
10
+ */
9
11
  export interface PageDescriptor {
10
12
  readonly cursor: string | null;
11
13
  readonly endCursor: Option.Option<string>;
@@ -14,7 +16,9 @@ export declare const PageDescriptor: Schema.Struct<{
14
16
  readonly cursor: Schema.Union<readonly [Schema.String, Schema.Null]>;
15
17
  readonly endCursor: Schema.Option<Schema.String>;
16
18
  }>;
17
- /** Options that remain fixed for one pagination session. */
19
+ /**
20
+ * Options that remain fixed for one pagination session.
21
+ */
18
22
  export interface Options {
19
23
  readonly initialNumItems: number;
20
24
  readonly maximumRowsRead?: number;
@@ -25,9 +29,13 @@ export declare const Options: Schema.Struct<{
25
29
  readonly maximumRowsRead: Schema.optionalKey<Schema.Int>;
26
30
  readonly maximumBytesRead: Schema.optionalKey<Schema.Int>;
27
31
  }>;
28
- /** Why the machine is fetching its current target. */
32
+ /**
33
+ * Why the machine is fetching its current target.
34
+ */
29
35
  export type Direction = "Initial" | "Next" | "Previous" | "First" | "Split" | "Reset";
30
- /** A complete page that can remain on screen while another page is fetched. */
36
+ /**
37
+ * A complete page that can remain on screen while another page is fetched.
38
+ */
31
39
  export interface Page<Item_> {
32
40
  readonly descriptor: PageDescriptor;
33
41
  readonly number: number;
@@ -63,13 +71,17 @@ export type Stale<Item_, Error_> = Data.TaggedEnum<{
63
71
  };
64
72
  }>;
65
73
  export type Phase<Item_, Error_> = Loading | Refreshing<Item_> | Success<Item_> | Failure<Error_> | Stale<Item_, Error_>;
66
- /** A closed machine that retains its generation for stale-result rejection. */
74
+ /**
75
+ * A closed machine that retains its generation for stale-result rejection.
76
+ */
67
77
  export type Idle = Data.TaggedEnum<{
68
78
  Idle: {
69
79
  readonly generation: number;
70
80
  };
71
81
  }>;
72
- /** A live cursor-pagination session. */
82
+ /**
83
+ * A live cursor-pagination session.
84
+ */
73
85
  export type Active<Item_, UserArgs_, Error_> = Data.TaggedEnum<{
74
86
  Active: {
75
87
  readonly generation: number;
@@ -82,9 +94,13 @@ export type Active<Item_, UserArgs_, Error_> = Data.TaggedEnum<{
82
94
  readonly phase: Phase<Item_, Error_>;
83
95
  };
84
96
  }>;
85
- /** A schema-backed cursor-pagination machine. */
97
+ /**
98
+ * A schema-backed cursor-pagination machine.
99
+ */
86
100
  export type State<Item_, UserArgs_, Error_> = Idle | Active<Item_, UserArgs_, Error_>;
87
- /** The logical request from which a subscription allocates a session id. */
101
+ /**
102
+ * The logical request from which a subscription allocates a session id.
103
+ */
88
104
  export interface SubscriptionRequest<UserArgs_> {
89
105
  readonly generation: number;
90
106
  readonly args: UserArgs_;
@@ -93,7 +109,9 @@ export interface SubscriptionRequest<UserArgs_> {
93
109
  readonly requestId: number;
94
110
  readonly descriptor: PageDescriptor;
95
111
  }
96
- /** The complete identity and arguments of a subscribed page request. */
112
+ /**
113
+ * The complete identity and arguments of a subscribed page request.
114
+ */
97
115
  export interface Request<UserArgs_> {
98
116
  readonly generation: number;
99
117
  readonly args: UserArgs_;
@@ -102,7 +120,9 @@ export interface Request<UserArgs_> {
102
120
  readonly requestId: number;
103
121
  readonly descriptor: PageDescriptor;
104
122
  }
105
- /** The successful payload returned by a Convex paginated query. */
123
+ /**
124
+ * The successful payload returned by a Convex paginated query.
125
+ */
106
126
  export interface PageResult<Item_> {
107
127
  readonly page: ReadonlyArray<Item_>;
108
128
  readonly isDone: boolean;
@@ -111,8 +131,8 @@ export interface PageResult<Item_> {
111
131
  readonly pageStatus?: "SplitRecommended" | "SplitRequired" | null;
112
132
  }
113
133
  /**
114
- * One correlated subscription outcome. Both success and failure travel
115
- * through this value so `settle` can mirror `AsyncData.settle`.
134
+ * One correlated subscription outcome. Both success and failure travel through
135
+ * this value so `settle` can mirror `AsyncData.settle`.
116
136
  */
117
137
  export interface Settlement<Item_, UserArgs_, Error_> {
118
138
  readonly request: Request<UserArgs_>;
@@ -125,23 +145,31 @@ type TaggedFunctionError<Error_> = Data.TaggedEnum<{
125
145
  readonly error: Error_;
126
146
  };
127
147
  }>;
128
- /** Constructs a declared function or middleware failure envelope. */
148
+ /**
149
+ * Constructs a declared function or middleware failure envelope.
150
+ */
129
151
  export declare const FunctionError: <A>(args: {
130
152
  readonly error: A;
131
153
  }) => {
132
154
  readonly _tag: "FunctionError";
133
155
  readonly error: A;
134
156
  };
135
- /** A declared function or middleware failure, kept distinct from client errors. */
157
+ /**
158
+ * A declared function or middleware failure, kept distinct from client errors.
159
+ */
136
160
  export type FunctionError<Query extends Ref.AnyConfectPublicPaginatedQuery> = [
137
161
  Ref.Error<Query>
138
162
  ] extends [never] ? never : TaggedFunctionError<Ref.Error<Query>>;
139
- /** Every failure a paginated query subscription can settle with. */
163
+ /**
164
+ * Every failure a paginated query subscription can settle with.
165
+ */
140
166
  export type Error<Query extends Ref.AnyConfectPublicPaginatedQuery> = FunctionError<Query> | PaginationError.InvalidCursor | Client.WebSocketClientError | Schema.SchemaError;
141
167
  export { InvalidCursor } from "@confect/core/PaginationError";
142
168
  type MachineState<Query extends Ref.AnyConfectPublicPaginatedQuery> = State<Item<Query>, UserArgs<Query>, Error<Query>>;
143
169
  type MachineActive<Query extends Ref.AnyConfectPublicPaginatedQuery> = Active<Item<Query>, UserArgs<Query>, Error<Query>>;
144
- /** The schema-and-constructor bundle returned by `make`. */
170
+ /**
171
+ * The schema-and-constructor bundle returned by `make`.
172
+ */
145
173
  export interface PaginatedQuery<Query extends Ref.AnyConfectPublicPaginatedQuery> {
146
174
  readonly ref: Query;
147
175
  readonly schema: Schema.Codec<MachineState<Query>, unknown>;
@@ -153,33 +181,49 @@ export interface PaginatedQuery<Query extends Ref.AnyConfectPublicPaginatedQuery
153
181
  readonly reinitialize: keyof UserArgs<Query> extends never ? (state: MachineActive<Query>, options?: Options) => MachineActive<Query> : (state: MachineActive<Query>, args: UserArgs<Query>, options?: Options) => MachineActive<Query>;
154
182
  }
155
183
  export type Any = PaginatedQuery<Ref.AnyConfectPublicPaginatedQuery>;
156
- /** Builds a page machine from a paginated ref. */
184
+ /**
185
+ * Builds a page machine from a paginated ref.
186
+ */
157
187
  export declare const make: <Query extends Ref.AnyConfectPublicPaginatedQuery>(ref: Query) => PaginatedQuery<Query>;
158
- /** Returns the logical request currently driving the subscription. */
188
+ /**
189
+ * Returns the logical request currently driving the subscription.
190
+ */
159
191
  export declare const getSubscriptionRequest: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => SubscriptionRequest<UserArgs_>;
160
- /** Attaches the client-allocated pagination id to a logical request. */
192
+ /**
193
+ * Attaches the client-allocated pagination id to a logical request.
194
+ */
161
195
  export declare const allocateRequest: <UserArgs_>(request: SubscriptionRequest<UserArgs_>, paginationId: number) => Request<UserArgs_>;
162
- /** Close the subscription while retaining its generation tombstone. */
196
+ /**
197
+ * Close the subscription while retaining its generation tombstone.
198
+ */
163
199
  export declare const close: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Idle;
164
- /** Start a fresh pagination session at page one while retaining visible data. */
200
+ /**
201
+ * Start a fresh pagination session at page one while retaining visible data.
202
+ */
165
203
  export declare const reset: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Active<Item_, UserArgs_, Error_>;
166
204
  /**
167
205
  * Navigate to the next page, retaining the current page while it loads.
168
206
  *
169
- * The page being left is pushed onto the stack *pinned* to the range it
170
- * displayed—its cursor to its continuation cursor—so `prev` reloads
171
- * exactly that range rather than the first `initialNumItems` documents
172
- * after its cursor, however the data has moved meanwhile. Convex's own
173
- * pagination keeps that range in its query journal; stream-paginated
174
- * queries have no journal, so the pin is what keeps consecutive pages
175
- * gap-free and duplicate-free for them.
207
+ * The page being left is pushed onto the stack _pinned_ to the range it
208
+ * displayed—its cursor to its continuation cursor—so `prev` reloads exactly
209
+ * that range rather than the first `initialNumItems` documents after its
210
+ * cursor, however the data has moved meanwhile. Convex's own pagination keeps
211
+ * that range in its query journal; stream-paginated queries have no journal, so
212
+ * the pin is what keeps consecutive pages gap-free and duplicate-free for
213
+ * them.
176
214
  */
177
215
  export declare const next: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Option.Option<Active<Item_, UserArgs_, Error_>>;
178
- /** Navigate to the previous page, retaining the current page while it loads. */
216
+ /**
217
+ * Navigate to the previous page, retaining the current page while it loads.
218
+ */
179
219
  export declare const prev: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Option.Option<Active<Item_, UserArgs_, Error_>>;
180
- /** Navigate to page one without invalidating the current pagination session. */
220
+ /**
221
+ * Navigate to page one without invalidating the current pagination session.
222
+ */
181
223
  export declare const first: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => Option.Option<Active<Item_, UserArgs_, Error_>>;
182
- /** Whether a request still names the machine's live pagination session/page. */
224
+ /**
225
+ * Whether a request still names the machine's live pagination session/page.
226
+ */
183
227
  export declare const isCurrentRequest: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>, candidate: Request<UserArgs_>) => boolean;
184
228
  /**
185
229
  * Fold a correlated `Result` into the machine. Like `AsyncData.settle`, a
@@ -191,13 +235,21 @@ export declare const settle: {
191
235
  <Item_, UserArgs_, Error_>(settlement: Settlement<Item_, UserArgs_, Error_>): (state: State<Item_, UserArgs_, Error_>) => State<Item_, UserArgs_, Error_>;
192
236
  <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>, settlement: Settlement<Item_, UserArgs_, Error_>): State<Item_, UserArgs_, Error_>;
193
237
  };
194
- /** The complete page currently available to render. */
238
+ /**
239
+ * The complete page currently available to render.
240
+ */
195
241
  export declare const getPage: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => Option.Option<Page<Item_>>;
196
- /** The items currently available to render. */
242
+ /**
243
+ * The items currently available to render.
244
+ */
197
245
  export declare const getItems: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => Option.Option<ReadonlyArray<Item_>>;
198
- /** The error from the most recent failed request, if any. */
246
+ /**
247
+ * The error from the most recent failed request, if any.
248
+ */
199
249
  export declare const getError: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => Option.Option<Error_>;
200
- /** The 1-indexed page number currently targeted by the subscription. */
250
+ /**
251
+ * The 1-indexed page number currently targeted by the subscription.
252
+ */
201
253
  export declare const targetPageNumber: <Item_, UserArgs_, Error_>(state: Active<Item_, UserArgs_, Error_>) => number;
202
254
  export declare const hasPage: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
203
255
  export declare const hasError: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
@@ -215,7 +267,9 @@ export declare const isStale: <Item_, UserArgs_, Error_>(state: State<Item_, Use
215
267
  export declare const isPending: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
216
268
  export declare const canNext: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
217
269
  export declare const canPrev: <Item_, UserArgs_, Error_>(state: State<Item_, UserArgs_, Error_>) => boolean;
218
- /** Pattern-match exhaustively on the machine's AsyncData-style state. */
270
+ /**
271
+ * Pattern-match exhaustively on the machine's AsyncData-style state.
272
+ */
219
273
  export declare const match: {
220
274
  <Item_, Error_, A, B, C, D, E, F>(handlers: {
221
275
  readonly onIdle: (idle: Idle) => A;
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedQuery.d.ts","sourceRoot":"","sources":["../src/PaginatedQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PaginatedQuery.d.ts","sourceRoot":"","sources":["../src/PaginatedQuery.ts"],"names":[],"mappings":"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"}