@gaganref/confect-server 10.3.1-fork.25 → 10.3.1-fork.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ActionCall.d.ts +30 -0
- package/dist/ActionCall.d.ts.map +1 -0
- package/dist/ActionCall.js +41 -0
- package/dist/ActionCall.js.map +1 -0
- package/dist/ActionRunner.js +2 -2
- package/dist/AiGatewayDecisionClient.js +1 -1
- package/dist/AiGatewayLanguageClient.js +1 -1
- package/dist/Auth.js +1 -1
- package/dist/Callback.js +3 -3
- package/dist/ConvexConfigProvider.js +2 -2
- package/dist/ConvexFunctionDefinitions.js +2 -2
- package/dist/ConvexLogger.js +1 -1
- package/dist/CronJobs.js +6 -6
- package/dist/DatabaseSchema.js +2 -2
- package/dist/DatabaseWriter.d.ts +36 -2
- package/dist/DatabaseWriter.d.ts.map +1 -1
- package/dist/DatabaseWriter.js +33 -6
- package/dist/DatabaseWriter.js.map +1 -1
- package/dist/ExecutionMetadata.js +1 -1
- package/dist/FunctionImpl.js +2 -2
- package/dist/FunctionRegistryItem.js +1 -1
- package/dist/GroupImpl.js +5 -5
- package/dist/Handler.d.ts +7 -3
- package/dist/Handler.d.ts.map +1 -1
- package/dist/Handler.js.map +1 -1
- package/dist/HttpRouter.js +2 -2
- package/dist/MiddlewareImpl.js +1 -1
- package/dist/MutationRunner.js +2 -2
- package/dist/MutationTransactionContext.js +2 -2
- package/dist/QueryInitializer.js +2 -2
- package/dist/QueryRunner.js +2 -2
- package/dist/QueryStream.js +3 -3
- package/dist/QueryStreamCursor.js +1 -1
- package/dist/QueryStreamIndexPrefix.js +1 -1
- package/dist/QueryStreamIndexRange.js +2 -2
- package/dist/QueryStreamKey.js +1 -1
- package/dist/QueryStreamKeyBounds.js +2 -2
- package/dist/QueryStreamKeyLayout.js +2 -2
- package/dist/QueryStreamKeyValues.js +1 -1
- package/dist/QueryStreamPagination.js +1 -1
- package/dist/QueryStreamReadBudget.js +2 -2
- package/dist/QueryTransactionContext.js +2 -2
- package/dist/RegisteredConvexFunction.js +19 -19
- package/dist/RegisteredConvexFunction.js.map +1 -1
- package/dist/RegisteredFunction.d.ts.map +1 -1
- package/dist/RegisteredFunction.js +55 -13
- package/dist/RegisteredFunction.js.map +1 -1
- package/dist/RegisteredNodeFunction.js +1 -1
- package/dist/RegistryItems.js +1 -1
- package/dist/RequestMetadata.js +1 -1
- package/dist/Scheduler.js +2 -2
- package/dist/Storage.js +1 -1
- package/dist/StorageActionWriter.js +1 -1
- package/dist/StorageReader.js +1 -1
- package/dist/StorageWriter.js +1 -1
- package/dist/TransactionMetadata.js +1 -1
- package/dist/VectorSearch.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -9
- package/dist/internal/AiGatewayDecisionClient.js +1 -1
- package/dist/internal/AiGatewayLanguageClient.js +1 -1
- package/dist/internal/AiGatewayServiceToken.js +1 -1
- package/dist/internal/DocumentPatch.js +1 -1
- package/package.json +2 -2
- package/src/ActionCall.ts +82 -0
- package/src/DatabaseWriter.ts +90 -5
- package/src/Handler.ts +20 -5
- package/src/RegisteredFunction.ts +54 -1
- package/src/index.ts +1 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type * as DatabaseSchema from "./DatabaseSchema.js";
|
|
2
|
+
import * as MiddlewareImpl from "./MiddlewareImpl.js";
|
|
3
|
+
declare const ActionCallAlreadyUsed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
4
|
+
readonly _tag: "ActionCallAlreadyUsed";
|
|
5
|
+
} & Readonly<A>;
|
|
6
|
+
export declare class ActionCallAlreadyUsed extends ActionCallAlreadyUsed_base<{}> {
|
|
7
|
+
}
|
|
8
|
+
declare const ActionCallNotUsed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
9
|
+
readonly _tag: "ActionCallNotUsed";
|
|
10
|
+
} & Readonly<A>;
|
|
11
|
+
export declare class ActionCallNotUsed extends ActionCallNotUsed_base<{}> {
|
|
12
|
+
}
|
|
13
|
+
declare const MissingFunctionType_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
14
|
+
readonly _tag: "MissingFunctionType";
|
|
15
|
+
} & Readonly<A>;
|
|
16
|
+
export declare class MissingFunctionType extends MissingFunctionType_base<{}> {
|
|
17
|
+
}
|
|
18
|
+
declare const NestedActionNotAllowed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
19
|
+
readonly _tag: "NestedActionNotAllowed";
|
|
20
|
+
} & Readonly<A>;
|
|
21
|
+
export declare class NestedActionNotAllowed extends NestedActionNotAllowed_base<{}> {
|
|
22
|
+
}
|
|
23
|
+
declare const SchedulingNotAllowed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
24
|
+
readonly _tag: "SchedulingNotAllowed";
|
|
25
|
+
} & Readonly<A>;
|
|
26
|
+
export declare class SchedulingNotAllowed extends SchedulingNotAllowed_base<{}> {
|
|
27
|
+
}
|
|
28
|
+
export declare const layer: <S extends DatabaseSchema.AnyWithProps>(schema: S) => import("effect/Layer").Layer<MiddlewareImpl.MiddlewareImpl<"@confect/core/ActionCall/Middleware">, never, never>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=ActionCall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionCall.d.ts","sourceRoot":"","sources":["../src/ActionCall.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAG3D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;;;;AAKtD,qBAAa,qBAAsB,SAAQ,2BAEzC,EAAE,CAAC;CAAG;;;;AACR,qBAAa,iBAAkB,SAAQ,uBAErC,EAAE,CAAC;CAAG;;;;AACR,qBAAa,mBAAoB,SAAQ,yBAEvC,EAAE,CAAC;CAAG;;;;AACR,qBAAa,sBAAuB,SAAQ,4BAE1C,EAAE,CAAC;CAAG;;;;AAER,qBAAa,oBAAqB,SAAQ,0BAExC,EAAE,CAAC;CAAG;AAER,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,cAAc,CAAC,YAAY,UAAU,CAAC,qHAgDnE,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { ActionCtx } from "./ActionCtx.js";
|
|
3
|
+
import { ActionRunner } from "./ActionRunner.js";
|
|
4
|
+
import { make } from "./MiddlewareImpl.js";
|
|
5
|
+
import { MutationRunner } from "./MutationRunner.js";
|
|
6
|
+
import { QueryRunner } from "./QueryRunner.js";
|
|
7
|
+
import { Scheduler } from "./Scheduler.js";
|
|
8
|
+
import * as ActionCall from "@confect/core/ActionCall";
|
|
9
|
+
import * as Ref from "@confect/core/Ref";
|
|
10
|
+
import * as Context from "effect/Context";
|
|
11
|
+
import * as Data from "effect/Data";
|
|
12
|
+
import * as Effect from "effect/Effect";
|
|
13
|
+
//#region src/ActionCall.ts
|
|
14
|
+
var ActionCall_exports = /* @__PURE__ */ __exportAll({
|
|
15
|
+
ActionCallAlreadyUsed: () => ActionCallAlreadyUsed,
|
|
16
|
+
ActionCallNotUsed: () => ActionCallNotUsed,
|
|
17
|
+
MissingFunctionType: () => MissingFunctionType,
|
|
18
|
+
NestedActionNotAllowed: () => NestedActionNotAllowed,
|
|
19
|
+
SchedulingNotAllowed: () => SchedulingNotAllowed,
|
|
20
|
+
layer: () => layer
|
|
21
|
+
});
|
|
22
|
+
var ActionCallAlreadyUsed = class extends Data.TaggedError("ActionCallAlreadyUsed") {};
|
|
23
|
+
var ActionCallNotUsed = class extends Data.TaggedError("ActionCallNotUsed") {};
|
|
24
|
+
var MissingFunctionType = class extends Data.TaggedError("MissingFunctionType") {};
|
|
25
|
+
var NestedActionNotAllowed = class extends Data.TaggedError("NestedActionNotAllowed") {};
|
|
26
|
+
var SchedulingNotAllowed = class extends Data.TaggedError("SchedulingNotAllowed") {};
|
|
27
|
+
const layer = (schema) => make(schema, ActionCall.Middleware, (effect) => Effect.gen(function* () {
|
|
28
|
+
const ctx = yield* ActionCtx();
|
|
29
|
+
let claimed = false;
|
|
30
|
+
const call = (ref, ...args) => Effect.suspend(() => {
|
|
31
|
+
if (claimed) return Effect.die(new ActionCallAlreadyUsed());
|
|
32
|
+
claimed = true;
|
|
33
|
+
if (ref.functionType !== "query" && ref.functionType !== "mutation") return Effect.die(new MissingFunctionType());
|
|
34
|
+
return Ref.runWithCodec(ref, args[0] ?? {}, (native, encoded) => ref.functionType === "query" ? ctx.runQuery(native, encoded) : ctx.runMutation(native, encoded));
|
|
35
|
+
});
|
|
36
|
+
return yield* effect.pipe(Effect.provideService(ActionCall.ActionCall, call), Effect.updateContext((context) => Context.omit(QueryRunner, MutationRunner, ActionRunner, ActionCtx(), Scheduler)(context)));
|
|
37
|
+
}));
|
|
38
|
+
//#endregion
|
|
39
|
+
export { ActionCallAlreadyUsed, ActionCallNotUsed, ActionCall_exports, MissingFunctionType, NestedActionNotAllowed, SchedulingNotAllowed, layer };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=ActionCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionCall.js","names":["MiddlewareImpl.make","ActionCtx.ActionCtx","QueryRunner.QueryRunner","MutationRunner.MutationRunner","ActionRunner.ActionRunner","Scheduler.Scheduler"],"sources":["../src/ActionCall.ts"],"sourcesContent":["import * as ActionCall from \"@confect/core/ActionCall\";\nimport * as Ref from \"@confect/core/Ref\";\nimport type { FunctionReference } from \"convex/server\";\nimport * as Context from \"effect/Context\";\nimport * as Data from \"effect/Data\";\nimport * as Effect from \"effect/Effect\";\nimport * as ActionCtx from \"./ActionCtx.js\";\nimport * as ActionRunner from \"./ActionRunner.js\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport type * as Handler from \"./Handler.js\";\nimport * as MiddlewareImpl from \"./MiddlewareImpl.js\";\nimport * as MutationRunner from \"./MutationRunner.js\";\nimport * as QueryRunner from \"./QueryRunner.js\";\nimport * as Scheduler from \"./Scheduler.js\";\n\nexport class ActionCallAlreadyUsed extends Data.TaggedError(\n \"ActionCallAlreadyUsed\",\n)<{}> {}\nexport class ActionCallNotUsed extends Data.TaggedError(\n \"ActionCallNotUsed\",\n)<{}> {}\nexport class MissingFunctionType extends Data.TaggedError(\n \"MissingFunctionType\",\n)<{}> {}\nexport class NestedActionNotAllowed extends Data.TaggedError(\n \"NestedActionNotAllowed\",\n)<{}> {}\n\nexport class SchedulingNotAllowed extends Data.TaggedError(\n \"SchedulingNotAllowed\",\n)<{}> {}\n\nexport const layer = <S extends DatabaseSchema.AnyWithProps>(schema: S) =>\n MiddlewareImpl.make(schema, ActionCall.Middleware, (effect) =>\n Effect.gen(function* () {\n const ctx = yield* ActionCtx.ActionCtx<\n DataModel.ToConvex<DataModel.FromSchema<S>>,\n DatabaseSchema.Scope<S>\n >();\n let claimed = false;\n const call: ActionCall.Call = <\n Target extends Ref.AnyQuery | Ref.AnyMutation,\n >(\n ref: Target,\n ...args: Ref.OptionalArgs<NoInfer<Target>>\n ) =>\n Effect.suspend(() => {\n if (claimed) return Effect.die(new ActionCallAlreadyUsed());\n claimed = true;\n if (ref.functionType !== \"query\" && ref.functionType !== \"mutation\")\n return Effect.die(new MissingFunctionType());\n return Ref.runWithCodec(\n ref,\n (args[0] ?? {}) as Ref.Args<Target>,\n (native, encoded) =>\n ref.functionType === \"query\"\n ? ctx.runQuery(\n native as FunctionReference<\"query\">,\n encoded as never,\n )\n : ctx.runMutation(\n native as FunctionReference<\"mutation\">,\n encoded as never,\n ),\n );\n });\n return yield* effect.pipe(\n Effect.provideService(ActionCall.ActionCall, call),\n Effect.updateContext(\n (context: Context.Context<Handler.ActionServices<S>>) =>\n Context.omit(\n QueryRunner.QueryRunner,\n MutationRunner.MutationRunner,\n ActionRunner.ActionRunner,\n ActionCtx.ActionCtx(),\n Scheduler.Scheduler,\n )(context),\n ),\n );\n }),\n );\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgBA,IAAa,wBAAb,cAA2C,KAAK,YAC9C,uBACF,CAAC,CAAK,CAAC;AACP,IAAa,oBAAb,cAAuC,KAAK,YAC1C,mBACF,CAAC,CAAK,CAAC;AACP,IAAa,sBAAb,cAAyC,KAAK,YAC5C,qBACF,CAAC,CAAK,CAAC;AACP,IAAa,yBAAb,cAA4C,KAAK,YAC/C,wBACF,CAAC,CAAK,CAAC;AAEP,IAAa,uBAAb,cAA0C,KAAK,YAC7C,sBACF,CAAC,CAAK,CAAC;AAEP,MAAa,SAAgD,WAC3DA,KAAoB,QAAQ,WAAW,aAAa,WAClD,OAAO,IAAI,aAAa;CACtB,MAAM,MAAM,OAAOC,UAGjB;CACF,IAAI,UAAU;CACd,MAAM,QAGJ,KACA,GAAG,SAEH,OAAO,cAAc;EACnB,IAAI,SAAS,OAAO,OAAO,IAAI,IAAI,sBAAsB,CAAC;EAC1D,UAAU;EACV,IAAI,IAAI,iBAAiB,WAAW,IAAI,iBAAiB,YACvD,OAAO,OAAO,IAAI,IAAI,oBAAoB,CAAC;EAC7C,OAAO,IAAI,aACT,KACC,KAAK,MAAM,CAAC,IACZ,QAAQ,YACP,IAAI,iBAAiB,UACjB,IAAI,SACF,QACA,OACF,IACA,IAAI,YACF,QACA,OACF,CACR;CACF,CAAC;CACH,OAAO,OAAO,OAAO,KACnB,OAAO,eAAe,WAAW,YAAY,IAAI,GACjD,OAAO,eACJ,YACC,QAAQ,KACNC,aACAC,gBACAC,cACAH,UAAoB,GACpBI,SACF,CAAC,CAAC,OAAO,CACb,CACF;AACF,CAAC,CACH"}
|
package/dist/ActionRunner.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
-
import * as Context from "effect/Context";
|
|
3
|
-
import * as Layer from "effect/Layer";
|
|
4
2
|
import * as Ref from "@confect/core/Ref";
|
|
3
|
+
import * as Context from "effect/Context";
|
|
5
4
|
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Layer from "effect/Layer";
|
|
6
6
|
//#region src/ActionRunner.ts
|
|
7
7
|
var ActionRunner_exports = /* @__PURE__ */ __exportAll({
|
|
8
8
|
ActionRunner: () => ActionRunner,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { AiGatewayDisabled, AiGatewayError, AiGatewayUnavailable, layer as layer$1 } from "./internal/AiGatewayServiceToken.js";
|
|
3
3
|
import { layer as layer$2, make as make$1 } from "./internal/AiGatewayDecisionClient.js";
|
|
4
|
-
import * as Layer from "effect/Layer";
|
|
5
4
|
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Layer from "effect/Layer";
|
|
6
6
|
import * as OpenRouterClient from "@effect/ai-openrouter/OpenRouterClient";
|
|
7
7
|
//#region src/AiGatewayDecisionClient.ts
|
|
8
8
|
var AiGatewayDecisionClient_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { AiGatewayDisabled, AiGatewayError, AiGatewayUnavailable, layer as layer$1 } from "./internal/AiGatewayServiceToken.js";
|
|
3
3
|
import { layer as layer$2, make as make$1 } from "./internal/AiGatewayLanguageClient.js";
|
|
4
|
-
import * as Layer from "effect/Layer";
|
|
5
4
|
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Layer from "effect/Layer";
|
|
6
6
|
import * as OpenAiClient from "@effect/ai-openai-compat/OpenAiClient";
|
|
7
7
|
//#region src/AiGatewayLanguageClient.ts
|
|
8
8
|
var AiGatewayLanguageClient_exports = /* @__PURE__ */ __exportAll({
|
package/dist/Auth.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import * as Context from "effect/Context";
|
|
3
|
-
import * as Layer from "effect/Layer";
|
|
4
3
|
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
5
|
import * as Schema from "effect/Schema";
|
|
6
6
|
import { flow } from "effect/Function";
|
|
7
7
|
import * as Match from "effect/Match";
|
package/dist/Callback.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import * as Ref from "@confect/core/Ref";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as MiddlewareSpec from "@confect/core/MiddlewareSpec";
|
|
5
|
+
import * as Predicate from "effect/Predicate";
|
|
6
|
+
import * as Array from "effect/Array";
|
|
4
7
|
import { createFunctionHandle } from "convex/server";
|
|
5
8
|
import * as Schema from "effect/Schema";
|
|
6
9
|
import { pipe } from "effect/Function";
|
|
7
10
|
import * as Option from "effect/Option";
|
|
8
11
|
import * as Callback from "@confect/core/Callback";
|
|
9
|
-
import * as MiddlewareSpec from "@confect/core/MiddlewareSpec";
|
|
10
12
|
import { UnsupportedPropertySignatureKeyTypeError, compileAst } from "@confect/core/SchemaToValidator";
|
|
11
13
|
import { convexToJson, v } from "convex/values";
|
|
12
|
-
import * as Array from "effect/Array";
|
|
13
14
|
import * as Number from "effect/Number";
|
|
14
15
|
import * as Order from "effect/Order";
|
|
15
|
-
import * as Predicate from "effect/Predicate";
|
|
16
16
|
import * as Result from "effect/Result";
|
|
17
17
|
import * as SchemaAST from "effect/SchemaAST";
|
|
18
18
|
//#region src/Callback.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
-
import * as Layer from "effect/Layer";
|
|
3
2
|
import * as Effect from "effect/Effect";
|
|
4
|
-
import
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
5
4
|
import * as Array from "effect/Array";
|
|
5
|
+
import { pipe } from "effect/Function";
|
|
6
6
|
import * as ConfigProvider from "effect/ConfigProvider";
|
|
7
7
|
//#region src/ConvexConfigProvider.ts
|
|
8
8
|
var ConvexConfigProvider_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { mapLeaves } from "./internal/utils.js";
|
|
2
3
|
import { make } from "./GroupRegistry.js";
|
|
3
4
|
import { isFunctionRegistryItem } from "./FunctionRegistryItem.js";
|
|
4
5
|
import { Definition, prepare, register as register$1 } from "./RegisteredConvexFunction.js";
|
|
5
6
|
import { resolve } from "./ResolvedMiddleware.js";
|
|
6
|
-
import { mapLeaves } from "./internal/utils.js";
|
|
7
|
-
import * as Match from "effect/Match";
|
|
8
7
|
import * as Record from "effect/Record";
|
|
8
|
+
import * as Match from "effect/Match";
|
|
9
9
|
//#region src/ConvexFunctionDefinitions.ts
|
|
10
10
|
var ConvexFunctionDefinitions_exports = /* @__PURE__ */ __exportAll({
|
|
11
11
|
buildForGroup: () => buildForGroup,
|
package/dist/ConvexLogger.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
-
import * as Layer from "effect/Layer";
|
|
3
2
|
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
4
|
import * as Match from "effect/Match";
|
|
5
5
|
import * as Console from "effect/Console";
|
|
6
6
|
import * as Logger from "effect/Logger";
|
package/dist/CronJobs.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
+
import * as Predicate from "effect/Predicate";
|
|
3
|
+
import * as Array from "effect/Array";
|
|
4
|
+
import * as Record from "effect/Record";
|
|
5
|
+
import { Ref } from "@confect/core";
|
|
6
|
+
import * as DateTime from "effect/DateTime";
|
|
7
|
+
import * as Duration from "effect/Duration";
|
|
2
8
|
import { cronJobs } from "convex/server";
|
|
3
9
|
import { pipe } from "effect/Function";
|
|
4
10
|
import * as Match from "effect/Match";
|
|
5
11
|
import * as Option from "effect/Option";
|
|
6
|
-
import * as Array from "effect/Array";
|
|
7
12
|
import * as Order from "effect/Order";
|
|
8
|
-
import * as Predicate from "effect/Predicate";
|
|
9
|
-
import * as Record from "effect/Record";
|
|
10
|
-
import * as Duration from "effect/Duration";
|
|
11
|
-
import { Ref } from "@confect/core";
|
|
12
|
-
import * as DateTime from "effect/DateTime";
|
|
13
13
|
import * as Cron from "effect/Cron";
|
|
14
14
|
//#region src/CronJobs.ts
|
|
15
15
|
var CronJobs_exports = /* @__PURE__ */ __exportAll({
|
package/dist/DatabaseSchema.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
+
import * as Data from "effect/Data";
|
|
2
3
|
import * as Predicate from "effect/Predicate";
|
|
3
|
-
import * as Result from "effect/Result";
|
|
4
4
|
import * as Record from "effect/Record";
|
|
5
|
-
import * as
|
|
5
|
+
import * as Result from "effect/Result";
|
|
6
6
|
import * as IdScope from "@confect/core/IdScope";
|
|
7
7
|
//#region src/DatabaseSchema.ts
|
|
8
8
|
var DatabaseSchema_exports = /* @__PURE__ */ __exportAll({
|
package/dist/DatabaseWriter.d.ts
CHANGED
|
@@ -37,8 +37,42 @@ export interface DatabaseWriterService<DatabaseSchema_ extends DatabaseSchema.An
|
|
|
37
37
|
* interfaces.
|
|
38
38
|
*/
|
|
39
39
|
export type DatabaseWriterTag<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Docs = {}> = Context.Service<DatabaseWriterService<DatabaseSchema_>, DatabaseWriterService<DatabaseSchema_, Docs>>;
|
|
40
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Decoded documents surrounding one successful write.
|
|
42
|
+
*/
|
|
43
|
+
export type Change<S extends DatabaseSchema.AnyWithProps> = {
|
|
44
|
+
[Name in DataModel.TableNames<DataModel.FromSchema<S>>]: {
|
|
45
|
+
readonly tableName: Name;
|
|
46
|
+
} & ({
|
|
47
|
+
readonly operation: "insert";
|
|
48
|
+
readonly oldDoc: null;
|
|
49
|
+
readonly newDoc: DocumentByName_<DataModel.FromSchema<S>, Name>;
|
|
50
|
+
} | {
|
|
51
|
+
readonly operation: "update";
|
|
52
|
+
readonly oldDoc: DocumentByName_<DataModel.FromSchema<S>, Name>;
|
|
53
|
+
readonly newDoc: DocumentByName_<DataModel.FromSchema<S>, Name>;
|
|
54
|
+
} | {
|
|
55
|
+
readonly operation: "delete";
|
|
56
|
+
readonly oldDoc: DocumentByName_<DataModel.FromSchema<S>, Name>;
|
|
57
|
+
readonly newDoc: null;
|
|
58
|
+
});
|
|
59
|
+
}[DataModel.TableNames<DataModel.FromSchema<S>>];
|
|
60
|
+
/**
|
|
61
|
+
* Runs after the write, in its transaction. A defect aborts the mutation.
|
|
62
|
+
*
|
|
63
|
+
* Only writes through this writer are observed. Raw `ctx.db`, `MutationCtx`
|
|
64
|
+
* writes and a second `DatabaseWriter.make` bypass the hook, so a host that
|
|
65
|
+
* relies on it keeps raw writers out of its functions. Component writers and
|
|
66
|
+
* nested `runMutation` calls each need their own hook installation.
|
|
67
|
+
*
|
|
68
|
+
* Concurrent writes to one document (for example under `Effect.all`) can
|
|
69
|
+
* interleave the read-write-read steps. Await them sequentially when the hook
|
|
70
|
+
* needs exact per-write snapshots. The writer takes no lock, because a hook
|
|
71
|
+
* that writes through the same writer would deadlock under one.
|
|
72
|
+
*/
|
|
73
|
+
export type Hook<S extends DatabaseSchema.AnyWithProps> = (change: Change<S>) => Effect.Effect<void>;
|
|
74
|
+
export declare const make: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(databaseSchema: DatabaseSchema_, convexDatabaseWriter: GenericDatabaseWriter<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>>, hook?: Hook<DatabaseSchema_>) => DatabaseWriterService<DatabaseSchema_>;
|
|
41
75
|
export declare const DatabaseWriter: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Docs = {}>() => DatabaseWriterTag<DatabaseSchema_, Docs>;
|
|
42
76
|
export type DatabaseWriter<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = DatabaseWriterService<DatabaseSchema_>;
|
|
43
|
-
export declare const layer: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(databaseSchema: DatabaseSchema_, convexDatabaseWriter: GenericDatabaseWriter<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_
|
|
77
|
+
export declare const layer: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(databaseSchema: DatabaseSchema_, convexDatabaseWriter: GenericDatabaseWriter<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>>, hook?: Hook<DatabaseSchema_>) => Layer.Layer<DatabaseWriterService<DatabaseSchema_, {}>, never, never>;
|
|
44
78
|
//# sourceMappingURL=DatabaseWriter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseWriter.d.ts","sourceRoot":"","sources":["../src/DatabaseWriter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DatabaseWriter.d.ts","sourceRoot":"","sources":["../src/DatabaseWriter.ts"],"names":[],"mappings":"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"}
|
package/dist/DatabaseWriter.js
CHANGED
|
@@ -4,19 +4,19 @@ import { DocumentEncodeError, decode, encode } from "./Document.js";
|
|
|
4
4
|
import { GetByIdFailure, getById } from "./QueryInitializer.js";
|
|
5
5
|
import { encoder } from "./internal/DocumentPatch.js";
|
|
6
6
|
import * as Context from "effect/Context";
|
|
7
|
-
import * as Layer from "effect/Layer";
|
|
8
7
|
import * as Effect from "effect/Effect";
|
|
9
|
-
import
|
|
8
|
+
import * as Layer from "effect/Layer";
|
|
10
9
|
import * as Predicate from "effect/Predicate";
|
|
11
|
-
import * as Result from "effect/Result";
|
|
12
10
|
import * as Record from "effect/Record";
|
|
11
|
+
import { pipe } from "effect/Function";
|
|
12
|
+
import * as Result from "effect/Result";
|
|
13
13
|
//#region src/DatabaseWriter.ts
|
|
14
14
|
var DatabaseWriter_exports = /* @__PURE__ */ __exportAll({
|
|
15
15
|
DatabaseWriter: () => DatabaseWriter,
|
|
16
16
|
layer: () => layer,
|
|
17
17
|
make: () => make
|
|
18
18
|
});
|
|
19
|
-
const make = (databaseSchema, convexDatabaseWriter) => {
|
|
19
|
+
const make = (databaseSchema, convexDatabaseWriter, hook) => {
|
|
20
20
|
const table = (tableName) => {
|
|
21
21
|
const tableDef = tables(databaseSchema)[tableName];
|
|
22
22
|
const insert = Effect.fn("DatabaseWriter.insert")(function* (document) {
|
|
@@ -50,17 +50,44 @@ const make = (databaseSchema, convexDatabaseWriter) => {
|
|
|
50
50
|
yield* Effect.promise(() => convexDatabaseWriter.replace(id, updatedEncodedDoc));
|
|
51
51
|
});
|
|
52
52
|
const delete_ = (id) => Effect.promise(() => convexDatabaseWriter.delete(id));
|
|
53
|
-
|
|
53
|
+
const accessor = {
|
|
54
54
|
insert,
|
|
55
55
|
patch,
|
|
56
56
|
replace,
|
|
57
57
|
delete: delete_
|
|
58
58
|
};
|
|
59
|
+
if (hook === void 0) return accessor;
|
|
60
|
+
const read = (id) => getById(convexDatabaseWriter, tableDef)(id);
|
|
61
|
+
const notify = (operation, oldDoc, newDoc) => hook({
|
|
62
|
+
tableName,
|
|
63
|
+
operation,
|
|
64
|
+
oldDoc,
|
|
65
|
+
newDoc
|
|
66
|
+
});
|
|
67
|
+
const update = (before, write) => (id, ...args) => Effect.gen(function* () {
|
|
68
|
+
const oldDoc = yield* before(id);
|
|
69
|
+
yield* write(id, ...args);
|
|
70
|
+
yield* notify("update", oldDoc, yield* read(id).pipe(Effect.orDie));
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
insert: (document) => Effect.gen(function* () {
|
|
74
|
+
const id = yield* insert(document);
|
|
75
|
+
yield* notify("insert", null, yield* read(id).pipe(Effect.orDie));
|
|
76
|
+
return id;
|
|
77
|
+
}),
|
|
78
|
+
patch: update(read, patch),
|
|
79
|
+
replace: update((id) => read(id).pipe(Effect.orDie), replace),
|
|
80
|
+
delete: (id) => Effect.gen(function* () {
|
|
81
|
+
const oldDoc = yield* read(id).pipe(Effect.orDie);
|
|
82
|
+
yield* delete_(id);
|
|
83
|
+
yield* notify("delete", oldDoc, null);
|
|
84
|
+
})
|
|
85
|
+
};
|
|
59
86
|
};
|
|
60
87
|
return { table };
|
|
61
88
|
};
|
|
62
89
|
const DatabaseWriter = () => Context.Service("@confect/server/DatabaseWriter");
|
|
63
|
-
const layer = (databaseSchema, convexDatabaseWriter) => Layer.succeed(DatabaseWriter(), make(databaseSchema, convexDatabaseWriter));
|
|
90
|
+
const layer = (databaseSchema, convexDatabaseWriter, hook) => Layer.succeed(DatabaseWriter(), make(databaseSchema, convexDatabaseWriter, hook));
|
|
64
91
|
//#endregion
|
|
65
92
|
export { DatabaseWriter, DatabaseWriter_exports, layer, make };
|
|
66
93
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseWriter.js","names":["DatabaseSchema.tables","Document.encode","QueryInitializer.getById","DocumentPatch.encoder","QueryInitializer.GetByIdFailure","Document.decode","Document.DocumentEncodeError"],"sources":["../src/DatabaseWriter.ts"],"sourcesContent":["import type {\n BetterOmit,\n DocumentByName,\n Expand,\n GenericDatabaseWriter,\n WithoutSystemFields,\n} from \"convex/server\";\nimport type { GenericId } from \"convex/values\";\nimport { pipe } from \"effect/Function\";\nimport * as Context from \"effect/Context\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Record from \"effect/Record\";\nimport * as Result from \"effect/Result\";\nimport * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport type { DocumentByName as DocumentByName_ } from \"./DataModel.js\";\nimport * as Document from \"./Document.js\";\nimport * as DocumentPatch from \"./internal/DocumentPatch.js\";\nimport * as QueryInitializer from \"./QueryInitializer.js\";\nimport type * as Table from \"./Table.js\";\n\n/**\n * The argument accepted by `patch`: like `Partial<Doc>` without system fields,\n * but the fields that are already optional also accept `undefined`, since\n * setting a field to `undefined` unsets it.\n */\nexport type PatchValue<Doc> = {\n [\n K in keyof Doc as K extends \"_id\" | \"_creationTime\" ? never : K\n ]?: undefined extends Doc[K] ? Doc[K] | undefined : Doc[K];\n};\n\nexport interface DatabaseWriterTableAccessor<\n DataModel_ extends DataModel.AnyWithProps,\n TableName extends DataModel.TableNames<DataModel_>,\n Doc = DocumentByName_<DataModel_, TableName>,\n> {\n readonly insert: (\n document: Document.WithoutSystemFields<Doc>,\n ) => Effect.Effect<\n DataModel.Id<DataModel_, TableName>,\n Document.DocumentEncodeError\n >;\n readonly patch: (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<Doc>,\n ) => Effect.Effect<\n void,\n | QueryInitializer.GetByIdFailure\n | Document.DocumentDecodeError\n | Document.DocumentEncodeError\n >;\n readonly replace: (\n id: DataModel.Id<DataModel_, TableName>,\n value: Document.WithoutSystemFields<Doc>,\n ) => Effect.Effect<void, Document.DocumentEncodeError>;\n readonly delete: (\n id: DataModel.Id<DataModel_, TableName>,\n ) => Effect.Effect<void>;\n}\n\n/**\n * The service shape backing the `DatabaseWriter` tag. Named (rather than an\n * inferred anonymous object) so declaration emit prints\n * `DatabaseWriterService<…>` by reference instead of expanding the data model.\n * `Docs` is the optional named document registry (see\n * `DatabaseReaderService`).\n */\nexport interface DatabaseWriterService<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> {\n readonly table: <\n const TableName extends DataModel.TableNames<\n DataModel.FromSchema<DatabaseSchema_>\n >,\n >(\n tableName: TableName,\n ) => DatabaseWriterTableAccessor<\n DataModel.FromSchema<DatabaseSchema_>,\n TableName,\n TableName extends keyof Docs\n ? Docs[TableName]\n : DocumentByName_<DataModel.FromSchema<DatabaseSchema_>, TableName>\n >;\n}\n\n/**\n * The tag's _Identifier_ is `Docs`-independent (see `DatabaseReaderTag`); only\n * the _Service_ carries `Docs` so writer inputs print the named doc\n * interfaces.\n */\nexport type DatabaseWriterTag<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> = Context.Service<\n DatabaseWriterService<DatabaseSchema_>,\n DatabaseWriterService<DatabaseSchema_, Docs>\n>;\n\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n): DatabaseWriterService<DatabaseSchema_> => {\n type DataModel_ = DataModel.FromSchema<DatabaseSchema_>;\n\n const table = <const TableName extends DataModel.TableNames<DataModel_>>(\n tableName: TableName,\n ) => {\n const tableDef = DatabaseSchema.tables(databaseSchema)[tableName];\n\n const insert = Effect.fn(\"DatabaseWriter.insert\")(function* (\n document: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) {\n const encodedDocument = yield* Document.encode(document, tableDef);\n\n const id = yield* Effect.promise(() =>\n convexDatabaseWriter.insert(\n tableName,\n encodedDocument as WithoutSystemFields<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>\n >,\n ),\n );\n\n // The database supplies the ID in this table's execution scope. Its\n // scope brand is erased at the Convex syscall boundary.\n return id as unknown as DataModel.Id<DataModel_, TableName>;\n });\n\n // A codec whose encoding spans fields cannot encode a patch on its own, so\n // the patch is merged into the decoded document and the result replaces it.\n const replacePatched = (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<\n Document.WithoutSystemFields<DocumentByName_<DataModel_, TableName>>\n >,\n ) =>\n Effect.gen(function* () {\n const originalDecodedDoc = yield* QueryInitializer.getById<\n Table.AnyWithProps,\n TableName\n >(\n convexDatabaseWriter as any,\n tableDef,\n )(id as unknown as GenericId<TableName>);\n\n const updatedEncodedDoc = yield* pipe(\n patchedValues,\n Record.reduce(originalDecodedDoc, (acc, value, key) =>\n value === undefined\n ? Record.remove(acc, key)\n : Record.set(acc, key, value),\n ),\n Document.encode(tableDef),\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id as unknown as GenericId<TableName>,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const patch = Effect.fn(\"DatabaseWriter.patch\")(function* (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<\n Document.WithoutSystemFields<DocumentByName_<DataModel_, TableName>>\n >,\n ) {\n const encodePatch = DocumentPatch.encoder(tableDef);\n if (encodePatch === undefined) {\n return yield* replacePatched(id, patchedValues);\n }\n\n const storedDoc = yield* pipe(\n Effect.promise(() =>\n convexDatabaseWriter.get(id as unknown as GenericId<TableName>),\n ),\n Effect.andThen((value) =>\n Effect.fromResult(\n Result.fromNullishOr(\n value,\n () =>\n new QueryInitializer.GetByIdFailure({\n tableName,\n id,\n }),\n ),\n ),\n ),\n );\n // The patch must encode and the patched document must decode. When\n // either fails, the stored document decides whose fault that is.\n const encodedPatch = yield* pipe(\n encodePatch(patchedValues),\n Effect.mapError(({ message }) => message),\n Effect.tap((delta) =>\n pipe(\n { ...storedDoc, ...delta },\n Record.filter(Predicate.isNotUndefined),\n Document.decode(tableDef),\n Effect.mapError(({ parseError }) => parseError),\n ),\n ),\n Effect.catch((parseError) =>\n pipe(\n Document.decode(storedDoc, tableDef),\n Effect.andThen(\n Effect.fail(\n new Document.DocumentEncodeError({\n tableName,\n id,\n parseError,\n }),\n ),\n ),\n ),\n ),\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.patch(\n id as unknown as GenericId<TableName>,\n encodedPatch as Partial<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>\n >,\n ),\n );\n });\n\n const replace = Effect.fn(\"DatabaseWriter.replace\")(function* (\n id: DataModel.Id<DataModel_, TableName>,\n value: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) {\n const updatedEncodedDoc = yield* Document.encode(value, tableDef);\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id as unknown as GenericId<TableName>,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const delete_ = (id: DataModel.Id<DataModel_, TableName>) =>\n Effect.promise(() =>\n convexDatabaseWriter.delete(id as unknown as GenericId<TableName>),\n );\n\n return {\n insert,\n patch,\n replace,\n delete: delete_,\n };\n };\n\n return {\n table,\n } as DatabaseWriterService<DatabaseSchema_>;\n};\n\nexport const DatabaseWriter = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n>(): DatabaseWriterTag<DatabaseSchema_, Docs> =>\n Context.Service<\n DatabaseWriterService<DatabaseSchema_>,\n DatabaseWriterService<DatabaseSchema_, Docs>\n >(\"@confect/server/DatabaseWriter\");\n\nexport type DatabaseWriter<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = DatabaseWriterService<DatabaseSchema_>;\n\nexport const layer = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n) =>\n Layer.succeed(\n DatabaseWriter<DatabaseSchema_>(),\n make(databaseSchema, convexDatabaseWriter),\n );\n"],"mappings":";;;;;;;;;;;;;;;;;;AAsGA,MAAa,QACX,gBACA,yBAG2C;CAG3C,MAAM,SACJ,cACG;EACH,MAAM,WAAWA,OAAsB,cAAc,CAAC,CAAC;EAEvD,MAAM,SAAS,OAAO,GAAG,uBAAuB,CAAC,CAAC,WAChD,UAGA;GACA,MAAM,kBAAkB,OAAOC,OAAgB,UAAU,QAAQ;GAajE,OAAO,OAXW,OAAO,cACvB,qBAAqB,OACnB,WACA,eAGF,CACF;EAKF,CAAC;EAID,MAAM,kBACJ,IACA,kBAIA,OAAO,IAAI,aAAa;GACtB,MAAM,qBAAqB,OAAOC,QAIhC,sBACA,QACF,CAAC,CAAC,EAAqC;GAEvC,MAAM,oBAAoB,OAAO,KAC/B,eACA,OAAO,OAAO,qBAAqB,KAAK,OAAO,QAC7C,UAAU,KAAA,IACN,OAAO,OAAO,KAAK,GAAG,IACtB,OAAO,IAAI,KAAK,KAAK,KAAK,CAChC,GACAD,OAAgB,QAAQ,CAC1B;GAEA,OAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,iBAMF,CACF;EACF,CAAC;EAEH,MAAM,QAAQ,OAAO,GAAG,sBAAsB,CAAC,CAAC,WAC9C,IACA,eAGA;GACA,MAAM,cAAcE,QAAsB,QAAQ;GAClD,IAAI,gBAAgB,KAAA,GAClB,OAAO,OAAO,eAAe,IAAI,aAAa;GAGhD,MAAM,YAAY,OAAO,KACvB,OAAO,cACL,qBAAqB,IAAI,EAAqC,CAChE,GACA,OAAO,SAAS,UACd,OAAO,WACL,OAAO,cACL,aAEE,IAAIC,eAAgC;IAClC;IACA;GACF,CAAC,CACL,CACF,CACF,CACF;GAGA,MAAM,eAAe,OAAO,KAC1B,YAAY,aAAa,GACzB,OAAO,UAAU,EAAE,cAAc,OAAO,GACxC,OAAO,KAAK,UACV,KACE;IAAE,GAAG;IAAW,GAAG;GAAM,GACzB,OAAO,OAAO,UAAU,cAAc,GACtCC,OAAgB,QAAQ,GACxB,OAAO,UAAU,EAAE,iBAAiB,UAAU,CAChD,CACF,GACA,OAAO,OAAO,eACZ,KACEA,OAAgB,WAAW,QAAQ,GACnC,OAAO,QACL,OAAO,KACL,IAAIC,oBAA6B;IAC/B;IACA;IACA;GACF,CAAC,CACH,CACF,CACF,CACF,CACF;GAEA,OAAO,OAAO,cACZ,qBAAqB,MACnB,IACA,YAGF,CACF;EACF,CAAC;EAED,MAAM,UAAU,OAAO,GAAG,wBAAwB,CAAC,CAAC,WAClD,IACA,OAGA;GACA,MAAM,oBAAoB,OAAOL,OAAgB,OAAO,QAAQ;GAEhE,OAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,iBAMF,CACF;EACF,CAAC;EAED,MAAM,WAAW,OACf,OAAO,cACL,qBAAqB,OAAO,EAAqC,CACnE;EAEF,OAAO;GACL;GACA;GACA;GACA,QAAQ;EACV;CACF;CAEA,OAAO,EACL,MACF;AACF;AAEA,MAAa,uBAIX,QAAQ,QAGN,gCAAgC;AAMpC,MAAa,SACX,gBACA,yBAIA,MAAM,QACJ,eAAgC,GAChC,KAAK,gBAAgB,oBAAoB,CAC3C"}
|
|
1
|
+
{"version":3,"file":"DatabaseWriter.js","names":["DatabaseSchema.tables","Document.encode","QueryInitializer.getById","DocumentPatch.encoder","QueryInitializer.GetByIdFailure","Document.decode","Document.DocumentEncodeError"],"sources":["../src/DatabaseWriter.ts"],"sourcesContent":["import type {\n BetterOmit,\n DocumentByName,\n Expand,\n GenericDatabaseWriter,\n WithoutSystemFields,\n} from \"convex/server\";\nimport type { GenericId } from \"convex/values\";\nimport { pipe } from \"effect/Function\";\nimport * as Context from \"effect/Context\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Record from \"effect/Record\";\nimport * as Result from \"effect/Result\";\nimport * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport type { DocumentByName as DocumentByName_ } from \"./DataModel.js\";\nimport * as Document from \"./Document.js\";\nimport * as DocumentPatch from \"./internal/DocumentPatch.js\";\nimport * as QueryInitializer from \"./QueryInitializer.js\";\nimport type * as Table from \"./Table.js\";\n\n/**\n * The argument accepted by `patch`: like `Partial<Doc>` without system fields,\n * but the fields that are already optional also accept `undefined`, since\n * setting a field to `undefined` unsets it.\n */\nexport type PatchValue<Doc> = {\n [\n K in keyof Doc as K extends \"_id\" | \"_creationTime\" ? never : K\n ]?: undefined extends Doc[K] ? Doc[K] | undefined : Doc[K];\n};\n\nexport interface DatabaseWriterTableAccessor<\n DataModel_ extends DataModel.AnyWithProps,\n TableName extends DataModel.TableNames<DataModel_>,\n Doc = DocumentByName_<DataModel_, TableName>,\n> {\n readonly insert: (\n document: Document.WithoutSystemFields<Doc>,\n ) => Effect.Effect<\n DataModel.Id<DataModel_, TableName>,\n Document.DocumentEncodeError\n >;\n readonly patch: (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<Doc>,\n ) => Effect.Effect<\n void,\n | QueryInitializer.GetByIdFailure\n | Document.DocumentDecodeError\n | Document.DocumentEncodeError\n >;\n readonly replace: (\n id: DataModel.Id<DataModel_, TableName>,\n value: Document.WithoutSystemFields<Doc>,\n ) => Effect.Effect<void, Document.DocumentEncodeError>;\n readonly delete: (\n id: DataModel.Id<DataModel_, TableName>,\n ) => Effect.Effect<void>;\n}\n\n/**\n * The service shape backing the `DatabaseWriter` tag. Named (rather than an\n * inferred anonymous object) so declaration emit prints\n * `DatabaseWriterService<…>` by reference instead of expanding the data model.\n * `Docs` is the optional named document registry (see\n * `DatabaseReaderService`).\n */\nexport interface DatabaseWriterService<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> {\n readonly table: <\n const TableName extends DataModel.TableNames<\n DataModel.FromSchema<DatabaseSchema_>\n >,\n >(\n tableName: TableName,\n ) => DatabaseWriterTableAccessor<\n DataModel.FromSchema<DatabaseSchema_>,\n TableName,\n TableName extends keyof Docs\n ? Docs[TableName]\n : DocumentByName_<DataModel.FromSchema<DatabaseSchema_>, TableName>\n >;\n}\n\n/**\n * The tag's _Identifier_ is `Docs`-independent (see `DatabaseReaderTag`); only\n * the _Service_ carries `Docs` so writer inputs print the named doc\n * interfaces.\n */\nexport type DatabaseWriterTag<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> = Context.Service<\n DatabaseWriterService<DatabaseSchema_>,\n DatabaseWriterService<DatabaseSchema_, Docs>\n>;\n\n/**\n * Decoded documents surrounding one successful write.\n */\nexport type Change<S extends DatabaseSchema.AnyWithProps> = {\n [Name in DataModel.TableNames<DataModel.FromSchema<S>>]: {\n readonly tableName: Name;\n } & (\n | {\n readonly operation: \"insert\";\n readonly oldDoc: null;\n readonly newDoc: DocumentByName_<DataModel.FromSchema<S>, Name>;\n }\n | {\n readonly operation: \"update\";\n readonly oldDoc: DocumentByName_<DataModel.FromSchema<S>, Name>;\n readonly newDoc: DocumentByName_<DataModel.FromSchema<S>, Name>;\n }\n | {\n readonly operation: \"delete\";\n readonly oldDoc: DocumentByName_<DataModel.FromSchema<S>, Name>;\n readonly newDoc: null;\n }\n );\n}[DataModel.TableNames<DataModel.FromSchema<S>>];\n\n/**\n * Runs after the write, in its transaction. A defect aborts the mutation.\n *\n * Only writes through this writer are observed. Raw `ctx.db`, `MutationCtx`\n * writes and a second `DatabaseWriter.make` bypass the hook, so a host that\n * relies on it keeps raw writers out of its functions. Component writers and\n * nested `runMutation` calls each need their own hook installation.\n *\n * Concurrent writes to one document (for example under `Effect.all`) can\n * interleave the read-write-read steps. Await them sequentially when the hook\n * needs exact per-write snapshots. The writer takes no lock, because a hook\n * that writes through the same writer would deadlock under one.\n */\nexport type Hook<S extends DatabaseSchema.AnyWithProps> = (\n change: Change<S>,\n) => Effect.Effect<void>;\n\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n hook?: Hook<DatabaseSchema_>,\n): DatabaseWriterService<DatabaseSchema_> => {\n type DataModel_ = DataModel.FromSchema<DatabaseSchema_>;\n\n const table = <const TableName extends DataModel.TableNames<DataModel_>>(\n tableName: TableName,\n ) => {\n const tableDef = DatabaseSchema.tables(databaseSchema)[tableName];\n\n const insert = Effect.fn(\"DatabaseWriter.insert\")(function* (\n document: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) {\n const encodedDocument = yield* Document.encode(document, tableDef);\n\n const id = yield* Effect.promise(() =>\n convexDatabaseWriter.insert(\n tableName,\n encodedDocument as WithoutSystemFields<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>\n >,\n ),\n );\n\n // The database supplies the ID in this table's execution scope. Its\n // scope brand is erased at the Convex syscall boundary.\n return id as unknown as DataModel.Id<DataModel_, TableName>;\n });\n\n // A codec whose encoding spans fields cannot encode a patch on its own, so\n // the patch is merged into the decoded document and the result replaces it.\n const replacePatched = (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<\n Document.WithoutSystemFields<DocumentByName_<DataModel_, TableName>>\n >,\n ) =>\n Effect.gen(function* () {\n const originalDecodedDoc = yield* QueryInitializer.getById<\n Table.AnyWithProps,\n TableName\n >(\n convexDatabaseWriter as any,\n tableDef,\n )(id as unknown as GenericId<TableName>);\n\n const updatedEncodedDoc = yield* pipe(\n patchedValues,\n Record.reduce(originalDecodedDoc, (acc, value, key) =>\n value === undefined\n ? Record.remove(acc, key)\n : Record.set(acc, key, value),\n ),\n Document.encode(tableDef),\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id as unknown as GenericId<TableName>,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const patch = Effect.fn(\"DatabaseWriter.patch\")(function* (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<\n Document.WithoutSystemFields<DocumentByName_<DataModel_, TableName>>\n >,\n ) {\n const encodePatch = DocumentPatch.encoder(tableDef);\n if (encodePatch === undefined) {\n return yield* replacePatched(id, patchedValues);\n }\n\n const storedDoc = yield* pipe(\n Effect.promise(() =>\n convexDatabaseWriter.get(id as unknown as GenericId<TableName>),\n ),\n Effect.andThen((value) =>\n Effect.fromResult(\n Result.fromNullishOr(\n value,\n () =>\n new QueryInitializer.GetByIdFailure({\n tableName,\n id,\n }),\n ),\n ),\n ),\n );\n // The patch must encode and the patched document must decode. When\n // either fails, the stored document decides whose fault that is.\n const encodedPatch = yield* pipe(\n encodePatch(patchedValues),\n Effect.mapError(({ message }) => message),\n Effect.tap((delta) =>\n pipe(\n { ...storedDoc, ...delta },\n Record.filter(Predicate.isNotUndefined),\n Document.decode(tableDef),\n Effect.mapError(({ parseError }) => parseError),\n ),\n ),\n Effect.catch((parseError) =>\n pipe(\n Document.decode(storedDoc, tableDef),\n Effect.andThen(\n Effect.fail(\n new Document.DocumentEncodeError({\n tableName,\n id,\n parseError,\n }),\n ),\n ),\n ),\n ),\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.patch(\n id as unknown as GenericId<TableName>,\n encodedPatch as Partial<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>\n >,\n ),\n );\n });\n\n const replace = Effect.fn(\"DatabaseWriter.replace\")(function* (\n id: DataModel.Id<DataModel_, TableName>,\n value: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) {\n const updatedEncodedDoc = yield* Document.encode(value, tableDef);\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id as unknown as GenericId<TableName>,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const delete_ = (id: DataModel.Id<DataModel_, TableName>) =>\n Effect.promise(() =>\n convexDatabaseWriter.delete(id as unknown as GenericId<TableName>),\n );\n\n const accessor = { insert, patch, replace, delete: delete_ };\n if (hook === undefined) return accessor;\n\n const read = (id: DataModel.Id<DataModel_, TableName>) =>\n QueryInitializer.getById<Table.AnyWithProps, TableName>(\n convexDatabaseWriter as any,\n tableDef,\n )(id as unknown as GenericId<TableName>);\n const notify = (\n operation: \"insert\" | \"update\" | \"delete\",\n oldDoc: unknown,\n newDoc: unknown,\n ) =>\n hook({ tableName, operation, oldDoc, newDoc } as Change<DatabaseSchema_>);\n const update =\n <A extends ReadonlyArray<unknown>, E, BeforeError>(\n before: (\n id: DataModel.Id<DataModel_, TableName>,\n ) => Effect.Effect<unknown, BeforeError>,\n write: (\n id: DataModel.Id<DataModel_, TableName>,\n ...args: A\n ) => Effect.Effect<void, E>,\n ) =>\n (id: DataModel.Id<DataModel_, TableName>, ...args: A) =>\n Effect.gen(function* () {\n const oldDoc = yield* before(id);\n yield* write(id, ...args);\n yield* notify(\"update\", oldDoc, yield* read(id).pipe(Effect.orDie));\n });\n\n return {\n insert: (document: Parameters<typeof insert>[0]) =>\n Effect.gen(function* () {\n const id = yield* insert(document);\n yield* notify(\"insert\", null, yield* read(id).pipe(Effect.orDie));\n return id;\n }),\n patch: update(read, patch),\n replace: update((id) => read(id).pipe(Effect.orDie), replace),\n delete: (id: DataModel.Id<DataModel_, TableName>) =>\n Effect.gen(function* () {\n const oldDoc = yield* read(id).pipe(Effect.orDie);\n yield* delete_(id);\n yield* notify(\"delete\", oldDoc, null);\n }),\n };\n };\n\n return {\n table,\n } as DatabaseWriterService<DatabaseSchema_>;\n};\n\nexport const DatabaseWriter = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n>(): DatabaseWriterTag<DatabaseSchema_, Docs> =>\n Context.Service<\n DatabaseWriterService<DatabaseSchema_>,\n DatabaseWriterService<DatabaseSchema_, Docs>\n >(\"@confect/server/DatabaseWriter\");\n\nexport type DatabaseWriter<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = DatabaseWriterService<DatabaseSchema_>;\n\nexport const layer = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n hook?: Hook<DatabaseSchema_>,\n) =>\n Layer.succeed(\n DatabaseWriter<DatabaseSchema_>(),\n make(databaseSchema, convexDatabaseWriter, hook),\n );\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import * as Context from "effect/Context";
|
|
3
|
-
import * as Layer from "effect/Layer";
|
|
4
3
|
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
5
|
//#region src/ExecutionMetadata.ts
|
|
6
6
|
var ExecutionMetadata_exports = /* @__PURE__ */ __exportAll({
|
|
7
7
|
ExecutionMetadata: () => ExecutionMetadata,
|
package/dist/FunctionImpl.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { Registry } from "./Registry.js";
|
|
3
|
-
import { make as make$1 } from "./FunctionRegistryItem.js";
|
|
4
3
|
import { setNestedProperty } from "./internal/utils.js";
|
|
4
|
+
import { make as make$1 } from "./FunctionRegistryItem.js";
|
|
5
5
|
import * as Context from "effect/Context";
|
|
6
|
-
import * as Layer from "effect/Layer";
|
|
7
6
|
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as Layer from "effect/Layer";
|
|
8
8
|
import * as Ref from "effect/Ref";
|
|
9
9
|
//#region src/FunctionImpl.ts
|
|
10
10
|
var FunctionImpl_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
2
|
-
import * as Match from "effect/Match";
|
|
3
2
|
import * as Predicate from "effect/Predicate";
|
|
3
|
+
import * as Match from "effect/Match";
|
|
4
4
|
import * as Lazy from "@confect/core/Lazy";
|
|
5
5
|
//#region src/FunctionRegistryItem.ts
|
|
6
6
|
var FunctionRegistryItem_exports = /* @__PURE__ */ __exportAll({
|
package/dist/GroupImpl.js
CHANGED
|
@@ -2,13 +2,13 @@ import { __exportAll } from "./_virtual/_rolldown/runtime.js";
|
|
|
2
2
|
import { Registry } from "./Registry.js";
|
|
3
3
|
import { functionNames, middlewareKeys, missingRequired } from "./RegistryItems.js";
|
|
4
4
|
import * as Context from "effect/Context";
|
|
5
|
-
import * as
|
|
5
|
+
import * as Data from "effect/Data";
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
|
-
import * as
|
|
8
|
-
import * as Array from "effect/Array";
|
|
9
|
-
import * as Predicate from "effect/Predicate";
|
|
7
|
+
import * as Layer from "effect/Layer";
|
|
10
8
|
import * as Ref from "effect/Ref";
|
|
11
|
-
import * as
|
|
9
|
+
import * as Predicate from "effect/Predicate";
|
|
10
|
+
import * as Array from "effect/Array";
|
|
11
|
+
import * as Option from "effect/Option";
|
|
12
12
|
//#region src/GroupImpl.ts
|
|
13
13
|
var GroupImpl_exports = /* @__PURE__ */ __exportAll({
|
|
14
14
|
GroupImpl: () => GroupImpl,
|
package/dist/Handler.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ActionCall } from "@confect/core/ActionCall";
|
|
1
2
|
import type { FunctionSpec, RuntimeAndFunctionType } from "@confect/core";
|
|
2
3
|
import type * as FunctionProvenance from "@confect/core/FunctionProvenance";
|
|
3
4
|
import type * as NodeServices from "@effect/platform-node/NodeServices";
|
|
@@ -33,11 +34,14 @@ export type MutationServices<DatabaseSchema_ extends DatabaseSchema.AnyWithProps
|
|
|
33
34
|
/**
|
|
34
35
|
* Shared by both action runtimes.
|
|
35
36
|
*/
|
|
36
|
-
|
|
37
|
+
type RawActionServices<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Auth.Auth) | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageActionWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | ExecutionMetadata | RequestMetadata | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Storage) | QueryRunner.QueryRunner | MutationRunner.MutationRunner | ActionRunner.ActionRunner | VectorSearch.VectorSearch<DataModel.FromSchema<DatabaseSchema_>> | ActionCtx.ActionCtx<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>, DatabaseSchema.Scope<DatabaseSchema_>>;
|
|
38
|
+
export type ActionServices<S extends DatabaseSchema.AnyWithProps, R = never> = [
|
|
39
|
+
Extract<R, ActionCall>
|
|
40
|
+
] extends [never] ? RawActionServices<S> : Exclude<RawActionServices<S>, Scheduler.ForScope<DatabaseSchema.Scope<S>> | QueryRunner.QueryRunner | MutationRunner.MutationRunner | ActionRunner.ActionRunner | ActionCtx.ActionCtx<DataModel.ToConvex<DataModel.FromSchema<S>>, DatabaseSchema.Scope<S>>>;
|
|
37
41
|
export type ConfectProvenanceQuery<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyQuery>, R = never> = Base<FunctionSpec_, QueryServices<DatabaseSchema_> | R>;
|
|
38
42
|
export type ConfectProvenanceMutation<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyMutation>, R = never> = Base<FunctionSpec_, MutationServices<DatabaseSchema_> | R>;
|
|
39
|
-
export type ConvexRuntimeAction<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyAction>, R = never> = Base<FunctionSpec_, ActionServices<DatabaseSchema_> | R>;
|
|
40
|
-
export type NodeRuntimeAction<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.NodeAction>, R = never> = Base<FunctionSpec_, ActionServices<DatabaseSchema_> | NodeServices.NodeServices | R>;
|
|
43
|
+
export type ConvexRuntimeAction<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyAction>, R = never> = Base<FunctionSpec_, ActionServices<DatabaseSchema_, R> | R>;
|
|
44
|
+
export type NodeRuntimeAction<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.NodeAction>, R = never> = Base<FunctionSpec_, ActionServices<DatabaseSchema_, R> | NodeServices.NodeServices | R>;
|
|
41
45
|
type Base<FunctionSpec_ extends FunctionSpec.AnyWithProps, R> = (args: FunctionSpec.Args<FunctionSpec_>) => Effect.Effect<FunctionSpec.Returns<FunctionSpec_>, FunctionSpec.Error<FunctionSpec_>, R>;
|
|
42
46
|
export type Any = AnyConfectProvenance | AnyConvexProvenance;
|
|
43
47
|
export type AnyConfectProvenance = Base<FunctionSpec.AnyConfect, any>;
|
package/dist/Handler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../src/Handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../src/Handler.ts"],"names":[],"mappings":"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"}
|
package/dist/Handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.js","names":[],"sources":["../src/Handler.ts"],"sourcesContent":["import type { FunctionSpec, RuntimeAndFunctionType } from \"@confect/core\";\nimport type * as FunctionProvenance from \"@confect/core/FunctionProvenance\";\nimport type * as NodeServices from \"@effect/platform-node/NodeServices\";\nimport type { Effect } from \"effect\";\nimport type * as ActionCtx from \"./ActionCtx.js\";\nimport type * as ActionRunner from \"./ActionRunner.js\";\nimport type * as Auth from \"./Auth.js\";\nimport type * as DatabaseReader from \"./DatabaseReader.js\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as DatabaseWriter from \"./DatabaseWriter.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport type { ExecutionMetadata } from \"./ExecutionMetadata.js\";\nimport type { RequestMetadata } from \"./RequestMetadata.js\";\nimport type { TransactionMetadata } from \"./TransactionMetadata.js\";\nimport type * as MutationCtx from \"./MutationCtx.js\";\nimport type * as MutationRunner from \"./MutationRunner.js\";\nimport type { MutationTransactionContext } from \"./MutationTransactionContext.js\";\nimport type * as QueryCtx from \"./QueryCtx.js\";\nimport type * as QueryRunner from \"./QueryRunner.js\";\nimport type { QueryTransactionContext } from \"./QueryTransactionContext.js\";\nimport type * as RegisteredFunction from \"./RegisteredFunction.js\";\nimport type * as Scheduler from \"./Scheduler.js\";\nimport type { Storage } from \"./Storage.js\";\nimport type * as StorageActionWriter from \"./StorageActionWriter.js\";\nimport type * as StorageReader from \"./StorageReader.js\";\nimport type * as StorageWriter from \"./StorageWriter.js\";\nimport type * as VectorSearch from \"./VectorSearch.js\";\n\nexport type Handler<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n R = never,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConvex\n >\n ? ConvexProvenanceHandler<FunctionSpec_>\n : FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConfect\n >\n ? ConfectProvenanceHandler<DatabaseSchema_, FunctionSpec_, R>\n : never;\n\ntype ConvexProvenanceHandler<\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConvex>,\n> = RegisteredFunction.ConvexRegisteredFunction<FunctionSpec_>;\n\ntype ConfectProvenanceHandler<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConfect>,\n R = never,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionType<FunctionSpec_, \"query\">\n ? ConfectProvenanceQuery<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithFunctionType<\n FunctionSpec_,\n \"mutation\"\n >\n ? ConfectProvenanceMutation<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<\n FunctionSpec_,\n RuntimeAndFunctionType.ConvexAction\n >\n ? ConvexRuntimeAction<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<\n FunctionSpec_,\n RuntimeAndFunctionType.NodeAction\n >\n ? NodeRuntimeAction<DatabaseSchema_, FunctionSpec_, R>\n : never;\n\nexport type QueryServices<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> =\n | DatabaseReader.DatabaseReader<DatabaseSchema_>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | TransactionMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | QueryTransactionContext\n | QueryCtx.QueryCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\nexport type MutationServices<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> =\n | DatabaseReader.DatabaseReader<DatabaseSchema_>\n | DatabaseWriter.DatabaseWriter<DatabaseSchema_>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | TransactionMetadata\n | RequestMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | MutationRunner.MutationRunner\n | QueryTransactionContext\n | MutationTransactionContext\n | MutationCtx.MutationCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\n/**\n * Shared by both action runtimes.\n */\
|
|
1
|
+
{"version":3,"file":"Handler.js","names":[],"sources":["../src/Handler.ts"],"sourcesContent":["import type { ActionCall } from \"@confect/core/ActionCall\";\nimport type { FunctionSpec, RuntimeAndFunctionType } from \"@confect/core\";\nimport type * as FunctionProvenance from \"@confect/core/FunctionProvenance\";\nimport type * as NodeServices from \"@effect/platform-node/NodeServices\";\nimport type { Effect } from \"effect\";\nimport type * as ActionCtx from \"./ActionCtx.js\";\nimport type * as ActionRunner from \"./ActionRunner.js\";\nimport type * as Auth from \"./Auth.js\";\nimport type * as DatabaseReader from \"./DatabaseReader.js\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as DatabaseWriter from \"./DatabaseWriter.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport type { ExecutionMetadata } from \"./ExecutionMetadata.js\";\nimport type { RequestMetadata } from \"./RequestMetadata.js\";\nimport type { TransactionMetadata } from \"./TransactionMetadata.js\";\nimport type * as MutationCtx from \"./MutationCtx.js\";\nimport type * as MutationRunner from \"./MutationRunner.js\";\nimport type { MutationTransactionContext } from \"./MutationTransactionContext.js\";\nimport type * as QueryCtx from \"./QueryCtx.js\";\nimport type * as QueryRunner from \"./QueryRunner.js\";\nimport type { QueryTransactionContext } from \"./QueryTransactionContext.js\";\nimport type * as RegisteredFunction from \"./RegisteredFunction.js\";\nimport type * as Scheduler from \"./Scheduler.js\";\nimport type { Storage } from \"./Storage.js\";\nimport type * as StorageActionWriter from \"./StorageActionWriter.js\";\nimport type * as StorageReader from \"./StorageReader.js\";\nimport type * as StorageWriter from \"./StorageWriter.js\";\nimport type * as VectorSearch from \"./VectorSearch.js\";\n\nexport type Handler<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n R = never,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConvex\n >\n ? ConvexProvenanceHandler<FunctionSpec_>\n : FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConfect\n >\n ? ConfectProvenanceHandler<DatabaseSchema_, FunctionSpec_, R>\n : never;\n\ntype ConvexProvenanceHandler<\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConvex>,\n> = RegisteredFunction.ConvexRegisteredFunction<FunctionSpec_>;\n\ntype ConfectProvenanceHandler<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConfect>,\n R = never,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionType<FunctionSpec_, \"query\">\n ? ConfectProvenanceQuery<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithFunctionType<\n FunctionSpec_,\n \"mutation\"\n >\n ? ConfectProvenanceMutation<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<\n FunctionSpec_,\n RuntimeAndFunctionType.ConvexAction\n >\n ? ConvexRuntimeAction<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<\n FunctionSpec_,\n RuntimeAndFunctionType.NodeAction\n >\n ? NodeRuntimeAction<DatabaseSchema_, FunctionSpec_, R>\n : never;\n\nexport type QueryServices<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> =\n | DatabaseReader.DatabaseReader<DatabaseSchema_>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | TransactionMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | QueryTransactionContext\n | QueryCtx.QueryCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\nexport type MutationServices<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> =\n | DatabaseReader.DatabaseReader<DatabaseSchema_>\n | DatabaseWriter.DatabaseWriter<DatabaseSchema_>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | TransactionMetadata\n | RequestMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | MutationRunner.MutationRunner\n | QueryTransactionContext\n | MutationTransactionContext\n | MutationCtx.MutationCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\n/**\n * Shared by both action runtimes.\n */\ntype RawActionServices<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> =\n | Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageActionWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | RequestMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | MutationRunner.MutationRunner\n | ActionRunner.ActionRunner\n | VectorSearch.VectorSearch<DataModel.FromSchema<DatabaseSchema_>>\n | ActionCtx.ActionCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\nexport type ActionServices<S extends DatabaseSchema.AnyWithProps, R = never> = [\n Extract<R, ActionCall>,\n] extends [never]\n ? RawActionServices<S>\n : Exclude<\n RawActionServices<S>,\n | Scheduler.ForScope<DatabaseSchema.Scope<S>>\n | QueryRunner.QueryRunner\n | MutationRunner.MutationRunner\n | ActionRunner.ActionRunner\n | ActionCtx.ActionCtx<\n DataModel.ToConvex<DataModel.FromSchema<S>>,\n DatabaseSchema.Scope<S>\n >\n >;\n\nexport type ConfectProvenanceQuery<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyQuery>,\n R = never,\n> = Base<FunctionSpec_, QueryServices<DatabaseSchema_> | R>;\n\nexport type ConfectProvenanceMutation<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyMutation>,\n R = never,\n> = Base<FunctionSpec_, MutationServices<DatabaseSchema_> | R>;\n\nexport type ConvexRuntimeAction<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyAction>,\n R = never,\n> = Base<FunctionSpec_, ActionServices<DatabaseSchema_, R> | R>;\n\nexport type NodeRuntimeAction<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.NodeAction>,\n R = never,\n> = Base<\n FunctionSpec_,\n ActionServices<DatabaseSchema_, R> | NodeServices.NodeServices | R\n>;\n\ntype Base<FunctionSpec_ extends FunctionSpec.AnyWithProps, R> = (\n args: FunctionSpec.Args<FunctionSpec_>,\n) => Effect.Effect<\n FunctionSpec.Returns<FunctionSpec_>,\n FunctionSpec.Error<FunctionSpec_>,\n R\n>;\n\nexport type Any = AnyConfectProvenance | AnyConvexProvenance;\n\nexport type AnyConfectProvenance = Base<FunctionSpec.AnyConfect, any>;\n\nexport type AnyConvexProvenance = RegisteredFunction.Any;\n\nexport type WithName<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n FunctionName extends string,\n R = never,\n> = Handler<\n DatabaseSchema_,\n FunctionSpec.WithName<FunctionSpec_, FunctionName>,\n R\n>;\n"],"mappings":""}
|